Raspberry Pi 2 model B が到着!

Raspberry Pi 2 model B を入手しました.
注文したのはRSオンライン( http://jp.rs-online.com/web/ )で 2015/02/02, 月曜日, 19:48
受け取りは 2/6 でした.
丁度大分に向かうので受け取れるか微妙だったので営業所止にしてもらい受け取ってから大分に向かいました.
IMG_20150206_194411IMG_20150206_194419
途中のバスの待ち時間に写真を撮ってみました.
IMGP0250
箱がカラフルに!
IMGP0251
IMGP0257IMGP0252
中身はぱっと見 Raspberry Pi model B+ と見分けが付かない感じ.
IMGP0253
RAM のChip が別れてウラ面に張り付いてました.
IMGP0254
IMGP0255IMGP0256
大分で起動してみると4Coreになったので Raspberry が4個!
IMG_20150207_092908
未だ出先なので家に帰ったら色々触ってみるつもりです :)

追記)
Element14 扱いだと箱も説明書も違うみたい.特に説明書.

端末で動くTwitterClient Rainbowstream

確かOSSJで見かけて知ったのだと思うのですが,

端末上で動作するTwitterのRainbowstreamというソフトウェアを知りました.

ユーザーストリーム対応で端末上にユーザストリームや検索結果リストなどが表示できます.画像をアスキーアートで表示する機能もあります.

導入

pipで入る

$ sudo apt-get install python-pip python-dev
$ sudo pip install rainbowstream PySocks Pillow

初回起動時に認証のためブラウザが起動する.認証ご表示されたpinを端末に貼り付ける.認証情報は ~/.rainbow_oauth に保存されるので要らなくなったら消す.
無くても動くけど無いと設定変更が出来ないので設定ファイルの用意をする.

% wget https://raw.githubusercontent.com/DTVD/rainbowstream/master/rainbowstream/colorset/config -O /tmp/config
% mv /tmp/config ~/.rainbow_config.json

GNU Screen のウィンドウ分割モードだと崩れてしまうので,小さめのウィンドウに表示するといい感じです.以下の画像はawesome で端末を2つ表示してRainbowstreamを実行した端末を小さくしているところです.
20150202_07:02:05-608

画像のアスキーアート表示は楽しいのですが,一気にログが流れてしまうのでoffにしちゃいました.
自作のPerl Script で昔作ったものがあるのですが,Rainbowstreamのほうがカラフルで見た目がいい感じです.

Ubuntu 10.04 LTS そろそろeol

先日の所謂GHOST脆弱性騒ぎの時に Ubuntu 10.04 LTS の修正を見かけて気付いたのですが,Ubuntu 10.04 LTS サーバーのサポートが4月いっぱいまでです.デスクトップは既に2012年にサポートが終わっているので利用者は少ないでしょうがサーバで使っている人で移行していない人はそろそろ移行しないとですね.

LTS の移行先としてはUbuntu 12.04 LTS が2017年04月迄.Ubuntu 14.04 LTS が2019年04月迄です.10.04 LTS から12.04 LTS には一気にアップグレードできるはずですが,10.04 LTS から14.04 LTS へは一気にアップグレードは出来ないと思います.環境によりますが新環境を14.04 LTS で作って移行したほうが楽かもですね.

Snappy Ubuntu Core on Raspberry Pi 2

Screenshot from 2015-02-05 07:30:48

Raspberry Pi のOS ダウンロードページに SNAPPY UBUNTU CORE が.未だAlpha 2 だけど.

Snappy Ubuntu Core の要件はARMv7 128RAM なのでRaspberry Pi 2 以降でないとダメだけどRaspberry Pi で動かすのも面白そうですね.
ちなみにBBB のSnappy Ubuntu Core はこの辺に

Raspberry Pi な同人誌以下で頒布中です.

Raspberry Pi 新モデル Raspberry Pi 2 model B 登場

Raspberry Pi B+ / A+ が出たばかりですが,Raspberry Pi 2 model B というものが発表されました.もう出荷も始まっていて注文も可能です.

Raspberry Pi 2 on sale now at $35 | Raspberry Pi
Pi2ModB1GB_-comp

ぱっと見の見た目はRaspberry Pi model B+ と一緒な感じですね.RAMは基板裏に言ったらしいので裏返すと違い分かりそう.
CPUがARMv6からQuadCoreのARMv7,RAM 1GBになって6倍に高速化とか.値段は据え置き$35で旧モデルも併売.Raspberry Pi 2 model A+ は少なくとも2015年には出さないとのこと.個人的にはあまり惹かれないのですがWindows10も無償で提供されるようです.WindowsRT のような感じになるのでしょうか.とはいえこれで注目度はまた上がるでしょうね.

ARMv7 QuadCore RAM1GB になったのでARMv6を捨てたディストリビューションも動くようになりそうだし,Xのアプリも大分さくさく動くようになりそうな気がします.
これから買うなら RaspberryPi 2 model B か Raspberry Pi Model A+ という感じになりそうですね.
今回は前回と違ってリークもなくSoCに更新はしばらくないと思っていたのでいきなりの発表でびっくりしました.しかしRaspberry Pi model B+ を買う理由が殆ど無いのでなんか可愛そうです….

A B A+ B+ 2 B
RAM 256MB 512MB 256MB 512MB 1GB
ネットワーク
USB 1 2 1 4 4
GPIOピン数 26 40 26 40 40
ストレージ SD SD microSD microSD microSD
消費電力 300mA(1.5W) 700mA(3.5W) 300mA(1.5W)より低い 600mA(3.0W) ?
サイズ 85mm×56mm 85mm×56mm 65mmx56mm 85mm×56mm 85mm×56mm
価格 $20 $35 $20 $35 $35

私はとりあえず2/2の夜にRS-Components から注文しました.1~5営業日でお届け。 になっていてま台本への移動中のようなので恐らく英国在庫ですね.(土曜あたりになりそうだけど土曜OKのオプションを付け忘れたので月曜かな?)値段はこんな感じでした.

RS品番 数量 単価 合計 商品の概要
832-6274 1 ¥3,966 ¥3,966 Raspberry Pi 2 Model B
商品本体の合計 ¥3,966
配送料 ¥450
消費税 ¥353
合計 ¥4,769

\8,000-以上で送料無料だったと思うので3枚買うと割安になりますね.

しかし,今から注文すると2月末の到着になるようです.割高になりますが在庫のあるケースやさんとかで購入したほうが早く手に入りそうです.

そういえばコミケット87で頒布した Raspberry Pi な同人誌以下で頒布中です.

NEXUS5 を落っことしてしまいISAI LGL22 を買った(Linux環境でのroot取得とカメラ無音化)

Nexus5 をどこかに落っことしてしまい(体調が悪い時で記憶があやふや.桜島港から家の間のどこかに多分落ちている)不便なので代替機を探して中古のISAI LGL22 を入手した.兄弟機で面白みはあまりないが,LTE でmineo が使えるのとUnLock が安価&安易でDocomo の電波も掴みそこそこ安いということで….

とりあえず初期化してroot 取ってカメラ無音化までした.root 取得の手順は確立されているけれどWindows向けでバッチファイルを叩くものしか見当たらなかったのでLinux 向けにメモ.(WinでもMacでも同じだけど)

  • 初期化
  • OS Update
    TAO で 4.4.2 に.
  • 画面のロックをパスワードに
  • 所有者情報設定
  • mineo 設定
  • 暗号化
    ※充電が80%以上になってから出ないと実行できない.
  • root取得
    isai_rootkit_kk_only.rar を以下から入手して利用した.https://mega.co.nz/#!h5EAmY7K!rrM2jZlCnRGc-EzhPhrxQ8gfPtGAcuv_mPPH8lYo7_M

    sha1sum    0a048c7be86ca64dc755a31a3c3a8d32455a3361
    sha256sum    67b3481f15e5f597e60397b9294074354877cd283ecede5bd8ba171e14392cd2
    

    前準備としてUSBデバッグを有効にしてPCと接続しUSBデバッグを有効にしておく.
    isai_rootkit_kk_only.rar を展開して install.bat を見ながら以下のような感じでコマンドを叩く.
    ※要開発環境.

    cd isai_rootkit_kk_only
    adb wait-for-device
    adb push "files" /data/local/tmp
    adb shell chmod 755 /data/local/tmp/getroot
    adb shell chmod 755 /data/local/tmp/busybox_file
    adb shell chmod 755 /data/local/tmp/install.sh
    adb shell chmod 755 /data/local/tmp/remove_apps_and_bins.sh
    adb pull /system/app/LGDMSClient.odex ./backup/system/app/LGDMSClient.odex
    adb pull /system/app/LGDMSClient.apk ./backup/system/app/LGDMSClient.apk
    adb pull /system/bin/subsystem_ramdump ./backup/system/bin/subsystem_ramdump
    adb pull /system/bin/dumpstate ./backup/system/bin/dumpstate
    adb pull /system/bin/fssamond ./backup/system/bin/fssamond
    adb shell "/data/local/tmp/getroot /data/local/tmp/remove_apps_and_bins.sh"
    adb wait-for-device
    adb shell "/data/local/tmp/getroot /data/local/tmp/install.sh"
    adb wait-for-device
    adb shell "rm /data/local/tmp/getroot"
    adb shell "rm /data/local/tmp/busybox_file"
    adb shell "rm /data/local/tmp/eu.chainfire.supersu-193.apk"
    adb shell "rm /data/local/tmp/remove_apps_and_bins.sh"
    adb shell "rm /data/local/tmp/install.sh"
    adb shell "rm -rf /data/local/tmp/system"
    
  • カメラ無音化
    /system/media/audio/ui/camera_click.ogg と /system/media/audio/ui/VideoRecord.ogg を退避する.

    adb shell
    su
    mount -o remount,rw /system
    cd /system/media/audio/ui/
    mv camera_click.ogg camera_click.ogg-
    mv VideoRecord.ogg VideoRecord.ogg-
    cd
    sync
    mount -o remount,ro /system
    exit
    exit
    

    #起動音と起動後のパスフレーズ入力時のキークリック音も消したいが見当たらず.

  • アプリ入れたり

ibus-mozc から fcitx-mozc に変更したら JOSM で日本語入力できなくなって困る

JOSM はマルチプラットホームでLinux/Windows/Mac で動作しますが,以下の話はLinux固有の問題です.

日本語入力のためのインプットメソッドフレームワークを iBus から fcitx に切り替えたのですが,JOSM で日本語入力ができなくなってしまっていました.Ctrl+Space でトルグするようにしているのですが,他のアプリケーションでは問題ないのにJOSM の場合は無反応で日本語入力ができなくなってしまいました,
そこで一時的にiBus/fcitx の両方が動作するようにしてJOSM 利用時だけiBus を使うようにしていました.

この話を #osckansai で(確か)武山さんに話したところ環境変数か何かが足りないのでは?と教えてもらいました.

少し試したところ XMODIFIERS=”@im=fcitx” を設定するとfcitx でJOSM に日本語入力が出来るようになりました.

% XMODIFIERS=”@im=fcitx” java -jar ~/bin/josm-tested.jar

変換候補がウィンドウの下に表示されちゃいますがまあ許容範囲かなと.

Screenshot from 2014-09-21 13:08:09

毎回コマンドを打つのもあれなのでこんな感じでショートカットを作成しておきました.
#何気にこっちのほうが時間掛かったorz
##環境変数を指定するには env を付ける.~/, $HOME は使えなかったのでフルパス.

mysqldump の警告を修正(Warning: Using unique option prefix event instead of events is deprecated and will be removed in a future release. Please use the full name instead.)

mysql のバックアップ時に警告が出ているのに気づきました.

Warning: Using unique option prefix event instead of events is deprecated and will be removed in a future release. Please use the full name instead.

メッセージで検索するとちょっと前のリリースノートにそれらしいものが.

Previously, program options could be specified in full or as any unambiguous prefix. For example, the –compress option could be given to mysqldump as –compr, but not as –comp because the latter is ambiguous. Option prefixes now are deprecated. They can cause problems when new options are implemented for programs. A prefix that is currently unambiguous might become ambiguous in the future. If an unambiguous prefix is given, a warning now occurs to provide feedback. For example: Warning: Using unique option prefix compr instead of compress is deprecated and will be removed in a future release. Please use the full name instead. Option prefixes are no longer supported in MySQL 5.7; only full options are accepted. (Bug #16996656) MySQL :: MySQL 5.6 Release Notes :: Changes in MySQL 5.6.13 (2013-07-31)

オプションを省略したりすると警告を出すようになったよ.5.7から使えなくなるよ.ということのようです.

バックアップはssh 経由のリモートで取得していて, ~/.ssh/authorized_keys に以下のような感じで書いていました.

command="/usr/bin/mysqldump --defaults-file=/home/user/.my.cnf --opt --all-databases --event | /usr/bin/xz -9",from="nnn.nnn.nnn.nnn",no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ecdsa-sha2-nistp521 AAAA...

–event 部分は本来は –events の様なので以下のように修正して解決しました.

command="/usr/bin/mysqldump --defaults-file=/home/user/.my.cnf --opt --all-databases --events | /usr/bin/xz -9",from="nnn.nnn.nnn.nnn",no-pty,no-port-forwarding,no-X11-forwarding,no-agent-forwarding ecdsa-sha2-nistp521 AAAA...

#ちなみに受け側はこんな感じ 2 13 * * * /usr/bin/ssh -q -p nnnnn -i /home/user/.ssh/id_ecdsa-mysql-backup user@server > /backup/server/db/`/bin/date +\%Y\%M\%d_\%H:\%m:\%S_\%s_$$`.sql.xz`

Kobo で mikutter が起動しなくて困る

IMG_20140902_071214
1月ほど前のオープンソースカンファレンス関西1日目にchroot で debian を起動した Kobo やAndroid を入れた Kobo を展示したりしていたのですが,mikutter を起動しておこうと思ったらエラーを吐いて起動しませんでした.
この時久々に起動したので大量のアップデートを行ったので環境が変わったのでした.デモの前に前もって確認しないとダメですよね….
エラーはKobo のコンソールを流れてしまい,スクロールバックの方法もよくわからない.ssh 経由で確認したいけれど会場のWi-Fi 経由では無理そうだったのでその時は諦めました.(開発者も居たのに!)

てことでさっき確認したのでメモ.

ssh 経由で起動してみるとこんな感じでした.

$ mikutter --confroot=/tmp/mikutter
/usr/share/mikutter/core/mui/cairo_cell_renderer_message.rb: line 10
GLib-GObject-WARNING **:Attempt to add property GtkCellRendererMessage::message-id after class was initialised
/usr/lib/ruby/vendor_ruby/gettext/text_domain.rb:100:in `=~': incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError)
from /usr/lib/ruby/vendor_ruby/gettext/text_domain.rb:100:in `block in translate_singular_message'
from /usr/lib/ruby/vendor_ruby/gettext/text_domain.rb:99:in `each'
from /usr/lib/ruby/vendor_ruby/gettext/text_domain.rb:99:in `translate_singular_message'
from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:104:in `block in translate_singular_message'
from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:84:in `block (2 levels) in each_text_domains'
from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:83:in `each'
from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:83:in `block in each_text_domains'
from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:81:in `each'
from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:81:in `each_text_domains'
from /usr/lib/ruby/vendor_ruby/gettext/text_domain_manager.rb:103:in `translate_singular_message'
from /usr/lib/ruby/vendor_ruby/gettext.rb:118:in `gettext'
from /usr/share/mikutter/core/plugin/settings/basic_settings.rb:4:in `block in <top (required)>'
from /usr/share/mikutter/core/plugin.rb:21:in `instance_eval'
from /usr/share/mikutter/core/plugin.rb:21:in `create'
from /usr/share/mikutter/core/plugin/settings/basic_settings.rb:3:in `<top (required)>'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/share/mikutter/core/plugin/settings/settings.rb:4:in `<top (required)>'
from /usr/share/mikutter/core/miquire_plugin.rb:138:in `load'
from /usr/share/mikutter/core/miquire_plugin.rb:138:in `load'
from /usr/share/mikutter/core/miquire_plugin.rb:130:in `block in load'
from /usr/share/mikutter/core/miquire_plugin.rb:127:in `each'
from /usr/share/mikutter/core/miquire_plugin.rb:127:in `load'
from /usr/share/mikutter/core/miquire_plugin.rb:130:in `block in load'
from /usr/share/mikutter/core/miquire_plugin.rb:127:in `each'
from /usr/share/mikutter/core/miquire_plugin.rb:127:in `load'
from /usr/share/mikutter/core/miquire_plugin.rb:97:in `block in load_all'
from /usr/share/mikutter/core/miquire_plugin.rb:37:in `block in each_spec'
from /usr/share/mikutter/core/miquire_plugin.rb:32:in `each'
from /usr/share/mikutter/core/miquire_plugin.rb:32:in `each'
from /usr/share/mikutter/core/miquire_plugin.rb:35:in `each_spec'
from /usr/share/mikutter/core/miquire_plugin.rb:95:in `load_all'
from /usr/share/mikutter/core/boot/load_plugin.rb:7:in `<top (required)>'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/share/mikutter/core/miquire.rb:98:in `miquire_original_require'
from /usr/share/mikutter/core/miquire.rb:95:in `file_or_directory_require'
from /usr/share/mikutter/core/miquire.rb:76:in `block in miquire'
from /usr/share/mikutter/core/miquire.rb:75:in `each'
from /usr/share/mikutter/core/miquire.rb:75:in `miquire'
from /usr/share/mikutter/core/miquire.rb:18:in `miquire'
from /usr/share/mikutter/mikutter.rb:38:in `<main>'

言語環境周りぽいなてことで LANG を確認してみると空

$ echo $LANG

LANGja_JP.UTF-8 を設定してあげると動きました.

$ LANG=ja_JP.UTF-8 mikutter
/usr/lib/ruby/vendor_ruby/gtk2.rb: line 13
Gtk-WARNING **:Locale not supported by C library.
Using the fallback 'C' locale.
/usr/share/mikutter/core/mui/cairo_cell_renderer_message.rb: line 10
GLib-GObject-WARNING **:Attempt to add property GtkCellRendererMessage::message-id after class was initialised
/usr/share/mikutter/core/plugin/display_requirements/display_requirements.rb:5: warning: already initialized constant CACHE_DIR
/usr/share/mikutter/core/plugin/aspectframe/aspectframe.rb:12: warning: previous definition of CACHE_DIR was here
/usr/share/mikutter/core/plugin/notify/notify.rb:6: warning: already initialized constant DEFINED_TIME
/usr/share/mikutter/core/plugin/extract/extract.rb:8: warning: previous definition of DEFINED_TIME was here

とりあえずは起動メニューにこれを設定してあげると良さそうです.

追記)
最近は $ LC_ALL=ja_JP.UTF-8 mikutter なのかな?

chroot 環境で `/dev/null’ が使えなくて困る

Kobo の chroot 環境で debian を動かしたりしているのでたまにアップデートを行うのですが,実機だと遅いのでPC のchroot 環境で実行したりします
#アーキテクチャの違いはqemu で吸収. > ユーザーモードエミュレーションqemu を使って Kono on Debian のイメージを Host PC で apt-get とかする | matoken’s meme

そこで今回 apt-get update 中に以下のようなエラーが発生.

/bin/sh: 1: cannot create /dev/null: Permission denied

/dev/null を確認するとぱっと見デバイスは問題なさそうだけど使えない.

# ls -la /dev/null
crw-rw-rw- 1 root root 1, 3 Sep 2 02:57 /dev/null
# echo hoge > /dev/null
bash: /dev/null: Permission denied

エラーメッセージで検索するとkinnekoさんのページがヒット.

あーなるほど!

chroot 元で確認してみると確かに nodev が.

% mount |grep rootfs
/dev/sdc1 on /media/mk/rootfs type ext4 (rw,nosuid,nodev,relatime,data=ordered,uhelper=udisks2)

dev を付けて remount してみると

% sudo mount -o remount,dev /dev/sdc1
% mount |grep rootfs
/dev/sdc1 on /media/mk/rootfs type ext4 (rw,nosuid,relatime,data=ordered,uhelper=udisks2)

chroot しなおさなくても使えるようになった.毎回チェックしてるんですかね.

# echo hoge > /dev/null

てことで update 出来た :)

# apt-get install -f