いつでも、どこでも、Linuxマシンを購入・活用できる環境が整いつつある。スマートフォンやタブレット端末の普及を背景に、Linuxが動作する安価なARMコア搭載ハードウエアが続々登場しているからだ。日経Linux 9月号の特集では、3000円台で買える話題のボードPC「Raspberry Pi」を筆頭に、風変わりな6種類のLinuxマシン自作を紹介した。

 中でも7月19日にデビューした楽天の電子書籍端末「kobo Touch」は、とりわけ入手性が高い。楽天市場でのネット販売、家電量販店、大手書店などで購入できる。価格は7980円。気軽に買える存在ながら、組み込み機器の中では比較的簡単にLinuxマシンとして改造を加えられるガードの低さがLinuxユーザーにとってはうれしい限りだ。

 特集記事で扱えなかったkobo Touchを、9月号特集で取り上げたLinuxマシン自作のノウハウでどこまでLinuxマシンに仕立てられるのか。実際に試してみた。

設定ファイルを書き換え

写真1●kobo Touchの基板
写真1●kobo Touchの基板
ファームウエアは内蔵microSD(写真中央)に格納されている。裏蓋は外周の隙間に不要なテレホンカードなどを差し込み固定用のツメを浮かせて外す。microSDスロットのカバーは写真右側にスライドさせると開く。
[画像のクリックで拡大表示]

 kobo TouchのLinuxマシン化には、(1)ファームウエアの更新ファイルを編集する、(2)ファームウエアを格納するmicroSDカードを取り出して編集する、という2種類の手法がある。本誌の9月号の速報記事では、「MobileRead Wiki - Kobo Touch Hacking」を基に前者の方法を紹介した。今回は設定ファイルを直接書き換えられる後者の方法を採った(写真1)。ファームウエアの改変、分解、いずれも保証対象外の行為に当たるので、自作パーツとして割り切れるユーザー以外は手を出さない方が無難だ。

 取り外したmicroSDカードは、カードリーダーを装着したLinuxマシンで編集する。kobo Touchのファームウエアは、Windowsの標準状態では認識できない形式。内容を編集するには、Linuxマシンが1台あると便利だ。Linuxマシンの実機を用意できなければ、WindowsやMac OS X上で動作する仮想マシンでも構わない。無償で利用できる仮想化ソフトの「Oracle VM VirtualBox」と、Linuxディストリビューションの代表格である「Ubuntu」の仮想ハードディスクを使えば簡単だ。

 さてmicroSDの編集に移る前に、microSDカードのイメージファイルを吸い出してバックアップしておこう。イメージファイルを書き戻せば、いつでも元の状態に戻せる。具体的には、microSDカードをカードリーダーで作業用PCに認識させたうえで、Windowsユーザーなら、「WinDD」などのソフトを使ってmicroSDカードのイメージファイルを書き出しておく。Linuxユーザーなら、microSDのデバイスファイル名(/dev/sdbなど)を把握してから、

sudo dd if=/dev/sdb of=/home/nikkei/kobo2GB.img
このマークで改行

としてファイルに保存する。

 microSDの中身は、3つの領域(パーティション)に分かれている。このうち「rootfs」がkobo Touchの起動OSを含むメインパーティションだ。rootfs内の起動に関する設定ファイル「/etc/init.d/rcS」から、改造用のコマンド列を記述したファイル(シェルスクリプト)を呼び出す1行を加える。Linuxマシンの「端末」ソフトから

sudo nano /media/rootfs/etc/init.d/rcS
このマークで改行

として設定ファイルを開き、以下のように「/mnt/onboard/run.sh &」という1行を「/usr/local/Kobo/nickel -qws &」の前に加える。

(前略)
/mnt/onboard/run.sh &

/usr/local/Kobo/nickel -qws &
(後略)
/media/rootfs/etc/init.d/rcS

 kobo Touch上の設定ファイルに、kobo Touchをコマンド操作するための「telnet」とファイル送受信用の「ftp」を有効にするコマンド列を追加し、無線LANへの自動接続を設定する。このために、以下の3つのファイルを作成する。

#!/bin/sh
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts

/mnt/onboard/wifi_connect.sh
/media/KOBOeReader/run.sh

::respawn:/usr/sbin/inetd -f /etc/inetd.conf
/media/rootfs/etc/inittab

21 stream tcp nowait root /bin/busybox ftpd -w -S  /
23 stream tcp nowait root /bin/busybox telnetd -i
/media/rootfs/etc/inetd.conf

 run.shはkobo TouchをPCに接続した際に認識する領域(/mnt/onboard/)に保存する。run.shはkobo TouchをUSBストレージとして認識させたWindows上でも編集可能だが、メモ帳で開くと改行のないテキストファイルになってしまう。Windowsで作業する場合は秀丸エディタなど文字コード(UTF-8)と改行コード(LF)を自動認識するエディタで扱おう。