2010/09/06
bc10向けu-bootについて、情報をまとめてあります。
u-bootはbc10起動時に実行される2段目のブートローダです。
bc10のブートプロセスやu-bootの配置方法についての情報はbc10/bootingを参照してください。
2010/12/15
bc10向けtoolchainを準備します。
以下のtoolchainでビルドを確認しています。
OpenEmbeddedのtoolchainを利用するには、あらかじめOpenEmbedded開発環境をインストールしておく必要があります。
OpenEmbedded開発環境のインストールについては、bc10/OpenEmbedded Linuxを参照してください。
toolchainを使用するために、環境変数を以下のように設定します。
export PATH=${WORK_DIR}/OE/angstrom-dev/cross/armv7a/bin:${PATH} export ARCH=arm export CROSS_COMPILE=arm-angstrom-linux-gnueabi-
rowboatのtoolchainを利用するには、あらかじめrowboat開発環境をインストールしておく必要があります。
rowboat開発環境のインストールについては、bc10/rowboatを参照してください。
toolchainを使用するために、環境変数を以下のように設定します。
export PATH=${WORK_DIR}/rowboat-eclair-dsp/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin:${PATH} export ARCH=arm export CROSS_COMPILE=arm-eabi-
gitリポジトリからソースコードを入手します。
git clone git://gitorious.org/bc10/u-boot-bc10.git u-boot-bc10
ビルドをおこなうために、buildブランチに切り替えます。
cd u-boot-bc10 git checkout -t -b build origin/build
OpenEmbedded toolchainを使用してクロスビルドします。
make mrproper make omap3_bc10_config make
ビルドに成功するとu-boot.binが生成されます。
u-bootの配置方法についての情報はbc10/bootingを参照してください。
機能の追加や修正などでソースコードが更新された場合は、更新分のみを取得するだけでかまいません。
cd u-boot-bc10/ git checkout build git pull
ソースコードをアップデートした後は、リビルドしてu-boot.binを置き換えてください。
2010/12/16
u-boot-bc10のソースコードはGitoriousで管理しています。
u-boot-bc10リポジトリには、以下の3つのブランチがあります。
bc10で動作するu-boot.binをビルドするには、buildブランチを使用してください。
developブランチは開発ブランチとして、常に最新の状態に更新されていますが、MACH_TYPE番号の更新が公式におこなわれるまで、そのままではビルドできません。
そのため、buildブランチではMACH_TYPE番号を追加して、すぐにビルド可能な状態にしています。
buildブランチの内容は常に「developブランチの内容 + MACH_TYPE番号の独自追加」という状態です。
この問題の詳細については、カーネルソースに含まれる Documentation/arm/README を参照してください。
u-boot-bc10のソースコードは、DENXのU-Bootリポジトリからcloneし、bc10向けに改造したものです。
2010/12/16
U-Bootの基本的な動作と、動作のカスタマイズ方法について説明します。
U-BootにはHushというシェルが組み込まれており、シェルスクリプトやコマンドラインで動作を制御することができます。
動作のカスタマイズはこのHushを通じておこなうことになります。
U-Bootは起動すると、数秒の待機のあと、自動的にbootコマンドを実行します。
ただし、この待機中にユーザから何らかのキー入力があれば、プロンプトが表示され、コマンドラインからの制御ができるようになります。
この場合、bootコマンドは自動実行されません。
+------+ +------+ 入力なし +------------------+ | 起動 |------>>| 待機 |----------->>| bootコマンド実行 | +------+ +------+ +------------------+ | | 入力あり +--------------------+ +-------------->>| コマンドライン制御 | +--------------------+
bootコマンドは、環境変数bootcmdに設定された内容を実行します。
環境変数bootcmdはデフォルトで以下のように設定されています。(本来は一行ですが、読みやすさのために改行しています)
if mmc init; then if run loadbootscript; then run bootscript; else if run loaduimage; then run mmcboot; else run nandboot; fi; fi; else run nandboot; fi
mmcコマンドはMicroSDを操作するためのコマンドです。
runコマンドは、引数に指定された変数の内容をスクリプトとして実行するコマンドです。
Hushのプロンプトが表示され、bashなどの一般的なシェル環境と同じようにコマンドを実行することができます。
実行可能なコマンド一覧を表示するには ? コマンドを使用します。
# ?
2010/07/05