Tiny Core Linuxをカスタマイズする
「古いノート(Dynabook, メモリ192MB)にTiny Core Linuxを入れてデジタルフォトフレームにしよう」(いつの間にかタイトルが...)ですが、ネットワークカードの認識まで来ました。
ブート時に必要なファームウェアを取り込んでおく
さて、必ずしもやらなくてもいいのですが、必要なファイルはd101m_ucode.binだけなので、あらかじめtinycore.gzに取り込んでおけば、ブート時にwaitusbをしなくて済み、起動時間が短縮できます。 また、この方法を知っておけば、起動時から有効な構成ファイルに変更を加えたいときなども役立ちます。
ここからは、Tiny Core Linuxの実環境上で作業します。 Dynabookからでもできますが、私は別マシンのVirtualBox上で作業しました。
後日触れる予定ですが、この段階では問題があってXが起動しません。 そのため、起動時にはテキストモードで作業します。 waitusbと、ついでにターミナルを複数使用可能にする(Alt-F1, Alt-F2等で切り替わります)ために、次のようにタイプして起動します。
boot: tinycore waitusb=15 text multivt
起動後の作業
まず、あらかじめ次の3つのパッケージをインストールしておきます。
% tce-load -wi squashfs-tools-4.x.tcz % tce-load -wi advcomp.tcz % tce-load -wi firmware.tcz (前回入れたはずだが、もしまだない場合)
流れとしては、/tmpでtinycore.gzを展開し、必要なファイルを入れた上で再パック、というものです。 この手順は、Tiny Core LinuxのWikiを参考にしています。
まず、元となるtinycore.gzを展開します。
% sudo su % cd /tmp % mkdir tinycore % cd tinycore % zcat /mnt/sda1/boot/tinycore.gz | sudo cpio -i -H newc -d
次に、firmware.tczの中から必要なファイル(d101m_ucode.bin)を取り出して、適切なディレクトリ(/lib/firmware/e100)に入れます。
% mkdir lib/firmware % mkdir lib/firmware/e100 % cd lib/firmware/e100 % unsquashfs /mnt/hda1/tce/optional/firmware.tcz % cp squashfs-root/usr/local/lib/firmware/e100/d101m_ucode.bin . % rm -rf squashfs-root
これでファイルをコピーしましたので、再パックします。
% depmod -b /tmp/tinycore 2.6.33.3-tinycore % cd /tmp/tinycore % find | cpio -o -H newc | gzip -2 > ../tinycore.gz % cd .. % advdef -z4 tinycore.gz (動作しないときあり) % exit
advdefはときどき"Killed"と出て処理が止まってしまうことがあります。 ただ、tinycore.gzをさらに小さくするためだけのものですので必須ではありません。
作成したtinycore.gzのインストール
完成したtinycore.gzをブート領域にコピーします。 元のファイルも一応残して起きましょうか。
% cd /mnt/sda1/boot % sudo mv tinycore.gz tinycore.gz.bak % sudo cp /tmp/tinycore.gz .
うまく起動したら、firmware.tczをアンインストールしておきます。 USBメモリ上の/tce/options/firmware.tczを削除し、/tce/onboot.lstからfirmware.tczのエントリ を削除します。 このエントリしかなければファイル自体を削除してもかまいません。
Xの設定へ続きます。
匿名
画面が真っ暗、でもカーソルは出てる状況。
探して、ここにたどり着きました。
パスワード入力で、復活!
修理に出す寸前でした。ホントにありがとう!