e-Ink 電子書籍端末のKobo Touch にDebian を入れて遊ぶ方法

このエントリは,「Debian/Ubuntu JP Advent Calendar 2013」 18日分です.

オープンソースカンファレンス2013 福岡/オープンソースカンファレンス2013 大分で見かけた方が居るかもしれませんが,最近電子書籍端末のKobo Touch にDebian を導入して遊んでいます.
といってもmarekさんという方がDebian 導入済みのイメージを公開してくれているのでこのイメージを突っ込んでるだけです.
ここでは,Kobo Touch でDebian が起動できるようになるイメージの導入方法を説明します.

必要なもの

  • Kobo Touch(N905B)
  • 8GB 以上の容量のmicroSD card(出来ればClass10 等速度の速いもの)
  • 母艦
    ここではDebian Jessie の入ったLenovo X220 を利用しています.#このKobo のイメージもJessie なので丁度いい?

失うもの

  • 保証
    分解時にメーカー保証がなくなります><

Kobo の分解とmicroSD のバックアップ

スイッチの辺りを押して出来た隙間からパキパキ爪を外していきます.プラスチック製のポイントカードなどを使うと傷がつきにくいです.
裏蓋を外すとmicroSD にアクセスできるようになります.スイッチを上にした状態でmicroSD の上のカバーを右にスライドさせるとロックが外れます.

取り出したmicroSD を母艦に接続してdd コマンドでバックアップします.

$ sudo dd if=/dev/mmcblk0 of=kobo_touch.img bs=4M

※/dev/mmcblk0 部分は環境により変わります.microSD 接続時にdmesg 等で確認してください.

バックアップ完了後このmicroSD は保管しておきましょう.
ちなみにこの元々ついていたmicroSD を戻すと保証を除き元の環境に戻せます.

Kobo用Debian イメージの入手と書き込み

次のページの
Kobo as a Linux tablet – mgibek
Sample image can be downloaded from here: というところから
2013-08-17_kobo_debian.part01.rar
2013-08-17_kobo_debian.part02.rar
2013-08-17_kobo_debian.part03.rar
を入手します.

用意しておいた8GB 以上のmicroSD に書き込みます.

% sudo sh -c "unrar p -inul 2013-08-17_kobo_debian.part01.rar > /dev/mmcblk0"

ここでは /dev/mmcblk0 が書き込み先のmicroSD のデバイス名です.自分の環境に合わせて修正してください.

※ここで書き込み先のデバイスを間違えるととても悲しいことになるので注意しましょう!

hw_configの書き換え

実は配布されているイメージはN905C 用です.今回はN905B で動かしたいのでhw_config を書き換えます.

hw_config というのは私よくわかっていないのですが(誰か教えてくださいorz),恐らくhw 初期化時にこの値を参照してデバイスを有効化したりしてるのかなと思っています.
hw_config を修正しないとタッチドライバが読み込まれなかったりします.(スイッチボタンでシャットダウン走ります)

hw_config はオリジナルKobo イメージから書き出して今回の新しいmicroSD に書き込みます.初めのほうでバックアップしたイメージファイル(kobo_touch.img)から該当場所をglo_hwconfig.bin として抜き出し,Debian イメージの書き込まれたmicroSD Card に書き込みます.

% sudo dd if=kobo_touch.img of=glo_hwconfig.bin bs=512 count=1 skip=1024 count=2
% sudo dd if=./glo_hwconfig.bin of=/dev/mmcblk0 bs=512 count=1 seek=1024 count=2

swap 作成

このイメージには3番目のパーティションにswap が設定されていますが,私の環境ではswapon しても認識されませんでした.恐らく利用したmicroSD が8GB より少し小さく壊れているのでしょう.mkswap しておきます.

% sudo mkswap -c /dev/mmcblk0p3

起動選択画面

これでとりあえず準備は完了です.microSD をKobo に接続して電源を入れます.
起動すると起動選択画面が表示されます.
それぞれのアイコンをタップすることによりそれぞれのモードに移行できます.

  • コンピュータアイコン -> Debian イメージが起動.
  • 本アイコン -> 通常の kobo イメージが起動(海外版)
  • WiFi アイコン -> 診断モード(ftp/telnet)

IMG_20131112_214839

診断モード

診断モードは,telnet/ftp が利用可能です.
id:root
password:無し
で接続でき,ホームボタンでシャットダウンされます.
環境をカスタマイズするときなどに利用できます.

WiFi の設定

このDebian イメージはchroot で動作します.chroot 時にネットワーク周りの設定をroot 側の設定からコピーしてくるので,WiFi を利用するには先ずKobo を起動してWiFi の設定をしておきます.

その後,Debian で起動しなおし,左下のメニューから[Config]->[Wi-Fi]->[Start]でWiFi に接続できます.
WiFi 接続時にsshd/ftpd が起動します.id:marek / password:abc123 で接続できます.

awesome のメニュー登録方法

このDebian 環境はタイル型WM のawesome を利用しています.
この環境ではapt でアプリケーションを導入しただけではメニューに登録されないようです.

以下のファイルを編集することで登録が可能でした.
* ~/.config/awesome/rc.lua
* ~/.config/awesome/debian/menu.lua

以下は, ~/.config/awesome/rc.lua を編集して, Apps -> mikutter を登録する例です.

  menuapps = {
     { "Firefox", "firefox" },
     { "FBReader", "fbreader" },
-    { "Calculator", "xcalc" }
+    { "Calculator", "xcalc" },
+    { "mikutter", "mikutter" },
  }

Debian で遊ぶ

後は基本的に普通のDebian Jessie です.普通に遊べます.
実は実用的な利用方法が思いつかず,ほぼmikutter 表示専用マシンとなっています.面白い活用方法を思いついたら教えてください.

その他

以下のページに小ネタをまとめています.

IMG_20131120_222854 VNC 経由で艦これ
IMG_20131114_190530 xload
16 - 1 mikutter を表示しながらXrdp

追記)
Kobo mini でも動くようですが,手元にないので試せていません.Kobo glo でも動きますが,そのままでは解像度が違う(ハードコーディングされている)ので操作が難しいです.

IMG_20131115_022044
IMG_20131115_023206

20140103追記)

  • Kobo mini を入手したので試してみると同様の手順で動作しました.
  • 現在 apt-get dist-upgrade をするとDebian 上でタッチパネルが利用できなくなるようです.apt-get update までにしておいたほうがいいです.
  • mikutter のパッケージはjessie から無くなっているようです.

Kobo mini on Debian