セルフコンパイルできました。そのメモ。

  • 付属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で音楽が聴けるようになった。便利便利