玄箱PROにDebianを
玄箱PROにDebian GNU/Linuxを入れようと、昨日は朝の4時まで格闘してました。
一応、牛独自のLinuxがファームとして入っているわけですが、そのまんまでは拡張性が見込めないので、なんらかのメジャーなデストリビューションを入れる必要があるわけです。使い慣れているのはRedHat系ですが、ARMアーキテクチャに対応しているとなると、選択肢は狭まり、必然的にDebianということに。
デストリビューションの比較はデストリウォッチというサイトがあるので、そこで比較するとよいです。ちなみにDebianは幅広いアーキテクチャに対応しています。
そして、ある別のOSから(又はtftp環境からCDブート等を用いずに)Debianを入れるための仕組みが用意されていてdebootstrapというものがあります。これを使えば玄箱PROようなFDDもCDも無いデバイスにもDebianがインスコ出来るはず…なのですが、鶏と卵がどっちが先か、という状態になり上手くいきません。
まず、
1.玄箱PROの上でdebootstrap
→ライブラリのバージョンが合わずうまくいかない
2.玄箱HGの上でクロスdebootstrap
→chrootした瞬間に死ぬ アーキが違うから当然に思えるのだが、上手くやる方法はあるかもしれない。
3.2.で出来た半端なrootイメージを玄箱PROに持ってきてdebootstrap
→やれ何が無いだの文句は言われるが、足していくとついに成功
昨日は、この時点で燃え尽きました。
このイメージをtar.gzに固めて、説明書の「また、動作は保障しないが、下記のような方法でhddブート環境を作成することが可能である。」のhddrootfs.tar.gzと挿げ替えればDebianに出来ると思われるのですが、このhddrootfsを公開してくれた方がおられましたので、今回は演習ということで、この方のhddrootfsを使わせてもらいます。自分のは自信が無さ過ぎるw
公開場所→KURO-BOX/PRO用のDebianミニルート(sushi-k日誌2)
後は簡単に出来るはずでしたが、以前書いたように一度「また、動作は保障しないが~」を実行してしまっているので、ボタンを押してセットアップは不可能でした。なぜかいくらfdiskで消しても復活してしまうのです。多分、クイックフォーマットに近いことしかされていないと思われます。
諦めて、ここはシリアルコンソールに活躍してもらうことに。
1.頂いてきたtar.gzを/dev/sda2 に展開します。
2.次にカーネル uImage.buffalo を /dev/sda1にコピーします。/dev/sda1はext2であることが重要です。
3.リブートしてu-boot環境を書き換えます。
リブートすると 数字が減っていくので二回目の時にENTERキーで止めます。Marvellのプロンプトが出ればOKです。書き換えコマンドですが、説明書に書いてあることをコピペしても動きません。
次のように書き換えてください。
setenv default_kernel_addr 0x00100000
setenv bootargs_base console=ttyS0,115200
setenv bootargs_root root=/dev/sda2 rw
setenv bootargs $(bootargs_base) $(bootargs_root) $(buffalo_ver)
setenv bootcmd 'ide reset; ext2load ide 0:1 $(default_kernel_addr) /$(kernel); bootm $(default_kernel_addr)’
すべてsetenvから一行です。
一度試しに boot と打ち込んでみましょう。
arg:console=ttyS0,115200 root=/dev/sda2 rw BOOTVER=1.091
CONFIG_BUFFALO_PLATFORM CONFIG_BUFFALO_KUROBOX ---
Uncompressing Linux.............................................................
.................................................... done, booting the kernel.
Linux version 2.6.12.6-arm1 (root@dev-hara) (gcc version 3.4.4 (release) (CodeSo
urcery ARM 2005q3-2)) #2 Thu Feb 8 15:00:20 JST 2007
とまで出ればブートまで行くと思います。プロンプトまで出ればDebian化完成です。
カーネルを入れ替えるときは、/dev/sda1をマウントしてuImage.buffaloを書き換えればいいというわけです。NORのu-bootとNANDの標準ファームは大事に取っておきましょう。そうすればHDDトンでも復活が可能です。この点はPRO仕様。本職を思い出してしまうのが難点かw
これでブート環境を恒久化するのであれば、上記の環境変数を設定後に、
saveenv
として、フラッシュに書き込んでください。
これで無事Debian化されましたが、殆どのパッケージは入っていませんし、環境もデフォなので、これからカスタマイズしていきます。NFS、samba、、ローカル串とDNS等をインスコしてメインのdecalt鯖のサポートに役立てるつもりです。
最後に、rootfsを公開してくれたsushi-k 氏に感謝します。
しかし、氏も書かれているように/dev/sda4がありませんが、作るコマンドは mknod /dev/sda4 b 8 4 では?
参考→起動時のログ
コメント
「カーネルを入れ替えるときは、/dev/sda2をマウントしてuImage.buffaloを書き換えればいいというわけです。」
の部分ですが,/dev/sda1ではないでしょうか?
細かい部分の揚げ足取りで申し訳ないです.
内容は大変参考になりました.ありがとうございます.
投稿者: debian初心者 | 2007年05月03日 19:24
/dev/sda1でした。修正致しました。
お役に立ててよかったです。
投稿者: T-4 | 2007年05月03日 20:49