x-loader u-Bootコンパイル

Beagleboardのブートシーケンスは、電源投入後、フラッシュメモリより、mmcの第一パーティションの先頭に置かれた MLO(x-loader)をブートし、MLOがメインブートローダのu-boot.binを起動します。
u-bootは、ARMボードでは標準的なブートローダで、ブートスクリプトによって様々なカーネルの起動設定が可能です。
また、シリアルコンソールから、対話形式での起動設定を行うことも出来ます。
これらのブートローダをソースからコンパイルする手順を以下に説明します。

x-loader

第一ブートローダのx-loaderをコンパイルし、Beagleboard用のMLOに変換します。
ただし、x-loaderをソースからコンパイルする必要はほとんど無いと思います。

git clone git://gitorious.org/x-load-omap3/mainline.git xloader
cd xloader/

make distclean
make omap3530beagle_config
make

x-load.bin が作成されます。

Beagleboardで実行できる形に加工するためにはMLOというファイルに加工する必要があります。
これには、signGPを使います。

wget http://beagleboard.googlecode.com/files/signGP
chmod +x signGP
./signGP x-load.bin

x-load.bin.ift ができるので、これをMLOに変更します。

mv x-load.bin.ift MLO

これで、Beagleboard用の第一ブートローダのMLOが出来上がります。

お気付きのように、x-loaderのコンパイルはクロスコンパイルではりませんね、コンパイルの結果のx-load.binは実行ファイルではないようです。
file x-load.bin
x-load.bin: data

ghex2 x-load.bin
で中身を見ると~~ よく分かりません。

u-Boot

メインブートローダのu-bootソースファイルを入手します。

git clone git://git.denx.de/u-boot.git u-boot-main
cd u-boot-main

このままコンパイルすると、bootdelay環境変数が10秒に設定されるので、
include/cofigs/omap3_beagle.h
198 #define CONFIG_BOOTDELAY 10
を 3 に変更します。

コンパイルします。

make CROSS_COMPILE=arm-linux-gnueabi- mrproper
make CROSS_COMPILE=arm-linux-gnueabi- omap3_beagle_config
make CROSS_COMPILE=arm-linux-gnueabi-

u-boot.bin が作成されます。

inserted by FC2 system