いつでも、どこでも、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の基板
ファームウエアは内蔵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)を自動認識するエディタで扱おう。

この先は会員の登録が必要です。今なら有料会員(月額プラン)は12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら