2007年 3月13日
セルフコンパイルできました。そのメモ。
- 付属CD-ROMの中にカーネルソースが入ってる。クロスコンパイル用になってたけどセルフでビルドしたい。
- ビルドにはmkimageが必要。u-bootのソースから作成。バイナリはこちら。.debは作りづらいのでtar.gzです。
- KURO-BOX/PRO付属のカーネルはEABIがオンになっている。EABIはgcc-4.1からサポートのようだがKURO-BOX/PROのカーネルはgcc-3.5?にパッチを当てたものを使ってクロスコンパイルしているようだ。
- Debian etchでapt-getできるのはgcc-3.4とgcc-4.1。EABIをオフにすればgcc-3.4で付属のカーネルソースのビルドが出来るが、xfsのマウントで異常を起こす。たぶん、EABIオンのxfs_toolsでフォーマットしているため?だろう。
- 一時中断
- 仕方がない、gcc-4.1でコンパイルできるようにするか、面倒だなあ。
- gcc-4.1でビルドしようとするとエラーが出まくり。warningがうざいしエラーで止まる。ごそごそと場当たり的に修正。差分はここ。ビルドできた。
- とりあえずビルドした.configはこれ。
- 起動にも成功。ただ、ERRORインジケータの点滅が止まらない(実害無し)。何か必要な情報がmiconに送られてないみたいだ?
というわけで、カーネルがセルフコンパイルできるようになりました。Debian etchでapt-getできるgcc-4.1を使ってmake uImageでコンパイルできます。arch/arm/boot/uImageができるので/dev/sda1(起動用カーネルが入ってるパーティション、ext3)にコピーして再起動してu-bootのext2loadコマンドで起動させればOK。uImage.buffaloって名前でコピーすれば、u-bootで勝手に上がってくるが、シリアルコンソールをもってない人には正直お勧めできない。
USBサウンドユニットをつないでalsaplayerで音楽が聴けるようになった。便利便利
3月 14th, 2007 at 10:22:27
MarvellのNASキットベースだから、EABIはオンがデフォルトですね。
buildtoolにも手が入っていたような。
でも、Deian-armを見ていると、EABIは使う人が出てきたばかりなので、
まだデフォルトはつらいかも。
某社のNASではEABIはオフで標準的なビルドツールでビルドできます。
板依存の部分を移植すれば、そのまま動くと思います。
3月 14th, 2007 at 11:19:46
ご無沙汰です。
カーネルをビルドしたいと思って先週末くらいから泥縄式に調べてて、Debian ARMのメーリングリストアーカイブなんかも読みましたが、やはりそうでしょうね。バイナリの実行には支障はなさそうですけど、同じようにファイルシステム周りとかで逆のトラブルが起きる可能性があるのかなあ、と思ってます。
EABIオフでもカーネル自体はビルドできていてxfsのマウントで死ぬだけですから、KURO-BOX/PROの標準(お手軽?)インストーラを使うのが問題っぽい。いちばん簡単なのはu-bootでtftp+NFSルートを使ってEABIオフのカーネルでDebianを上げて、その状態でHDDの初期化やなんかを行ってu-bootでスタンドアロンでEABIオフで上がるようにする、という感じですけど、そうするとシリアルコンソール必須、NFSサーバー必須と少し敷居が高くなってしまうのが難点で、どうすっかなあ、といったところです。
6月 4th, 2007 at 20:47:15
はい。フラッシュブートの mkfs.ext3 で ext3fs フォーマットした rootfs を普通にマウントして読み書きできています。
Linux kurobox 2.6.12.6-mda1 #2 Sun Apr 22 16:16:39 JST 2007 armv5tejl GNU/Linux
です。xfs はだめでした。見事に壊してくれました。