Samsung Galaxy Androidさんのuboot bootloader – for the true multibootを参考にu-bootでの起動を試しました。ざっくりした方法としては(ねむいので、細かい仕組みは後日・・・)
- androidのkernel領域にu-boot (カスタマイズしたbootloader)を書き込む
- androidのrecovery領域にカスタマイズしたkernelを書き込む
- GalaxyS2標準のbootloaderはu-bootを起動し、u-bootが適宜kernelを切り替えて起動
(※)Homeボタンを押しながら電源をONすると、カスタマイズしたKernelが、普通に起動するとデフォルトのアンドロイドが起動するという素晴らしい仕組み
独自ビルドしたKernelの場合
そもそも起動に行かない。。。
Webページに公開されているKernelで試す
起動には行くみたい。画面がフラッシュして音信不通になる。*1
UARTがあればインタラクティブに設定を弄れるはずなんですが、さすがに市販の機材では難しい感じ。*2
u-bootのリビルドはできて、Webページで公開されているkernelのソースも後10分位で落ちてくる予定なので、詳細は明日調べます。多分、日本仕様とヨーロッパ仕様でI/Oのペリフェラルが違うと思われ。kernelのdefconfigを眺めてJP仕様に修正できれば行ける、かなぁ。。。
<参考>
Galaxy S2向け u-boot リポジトリ https://gitorious.org/i9100-proper-linux/i9100-uboot/commits/i9100_uboot
同 Kernel https://gitorious.org/i9100-proper-linux/i9100-proper-linux-kernel/commits/i9100_linux *3
master branchはgit cloneしてもソースが落ちてこないので(何故?)
上記のbranchからtarballでダウンロードしています。(100MB位)