buildrootをRaspberry-Pi用にビルドしてみよう。
あんまりよくわかってないけど、kernelとbuildrootがあれば、起動するLinux一式は整うんだと思う。
ここら辺を参考にしよう。
http://blog.kmckk.com/archives/4131505.html#more
まず、menuconfigで設定する。
- Target options
- Target Architecture : ARM(little endian)
- Target Architecture Variant : arm1176jzf-s
- Build options
- Number of jobs to run simultaneously : 4(にしたけど、0はautoなのでそのままでよいかも)
- Toolchain
- Toolchain type : External toolchain
- Toolchain : custom toolchain
- Toolchain path : ~/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64
- Toolchain prefix : arm-linux-gnueabihf
- External toolchain kernel headers series : 3.2.x
- Filesystem images
- [*] ext2/3/4 root filesystem
- ext4
Toolchainを、Raspberry Piのgithubに入っているコンパイラでやろうとしたんだけど、チェックで引っかかる。
>>> toolchain-external undefined Configuring
External toolchain uses the unsuported OABI
OABIのOは、oldのOらしい。
http://www.oidon.net/linux/arm-eabi-oabi
が、よくわからないので、toolchainはbuildrootに任せることにした。自動でダウンロードするようだ。
makeするとけっこう時間がかかったがビルドできた。
output/imagesの中にできているようだ。
rootfs.ext2、rootfs.ext4、rootfs.tarができていた。
「Filesystem images」で設定したのはこれだったのか・・・。じゃあ、tarだけでいいやん。
sudo tar xf rootfs.tar -C /media/sd、みたいな感じで展開。
さあ、これでどうだ!
・・・だめだー。
/dev/ttyS0が開けない、というエラーが出てる。
そういえば、Raspberry Piって、標準出力がHDMIに出てくるんだな。
gettyの設定を無効にするとエラーは出なくなったけど、ログインプロンプトが出ないな。
ありゃ、どうしたらいいんかね?
Toolchain pathに指定するパスはフルパスでないとダメなようです。
返信削除自分もハマって調べていたのですが、toolchain/helpers.mkのcheck_arm_abiあたりで、EXT_TOOLCHAIN_TARGETが空になっているのを見つけたので解決できました。
いまさら役に立たないと思いますが。
あー、そうだったんですか。。。
削除気付かなかったです。。。
Raspberry Piの方は今やっていないのですが、別のARM環境でLinuxを立ち上げようとしているので、そちらで試すことになるかもしれません。
情報ありがとうございます!