« 玄箱PROにシリアルコンソールを | メイン | KUROBOX PRO(sushi-k 氏版)の修正点1 »

玄箱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 では?

参考→起動時のログ

トラックバック

この一覧は、次のエントリーを参照しています: 玄箱PROにDebianを:

» 玄箱 Pro Hack Watch from Ellinikonblue.com Weblog
 買っちゃった玄箱 Pro は初期不良もなくしっかり起動したことだし、今後楽しく弄って、有効に利活用していくため、... [詳しくはこちら]

» そう言えば玄箱PRO from XAXの納豆日記
USBホスト機能が付いてます なんに使ったらいいのかなーと思ったんだけど 考えて... [詳しくはこちら]

コメント

「カーネルを入れ替えるときは、/dev/sda2をマウントしてuImage.buffaloを書き換えればいいというわけです。」
の部分ですが,/dev/sda1ではないでしょうか?
細かい部分の揚げ足取りで申し訳ないです.

内容は大変参考になりました.ありがとうございます.

/dev/sda1でした。修正致しました。

お役に立ててよかったです。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)