2012年11月20日
KZM-A9-GTボードのU-Bootをソースからビルドする(更新)
0. クロスコンパイラのインストール
今回はLinaroのサイトにあるLong Term Supportのコンパイラを使用しました。
$ wget https://launchpad.net/gcc-arm-embedded/4.6/4.6-2012-q2-update/+download/gcc-arm-none-eabi-4_6-2012q2-20120614.tar.bz2 $ sudo tar xvf gcc-arm-none-eabi-4_6-2012q2-20120614.tar.bz2 -C /usr/local
1.ソースコードの取得
KZM-A9-GTボードのU-Bootのソースは、u-bootのマスターのgitリポジトリにマージされました。
現在の最新のタグを調べてcheckoutします。
$ git clone git://git.denx.de/u-boot.git $ cd u-boot/ $ git tag $ git checkout -b work v2013.01-rc1
2. ビルド
$ export CROSS_COMPILE=/usr/local/gcc-arm-none-eabi-4_6-2012q2/bin/arm-none-eabi- $ make distclean $ make kzm9g_config $ make all
なお、電源投入したら自動でカーネルを起動するためには、以下のようなコードを追加してください。
diff --git a/include/configs/kzm9g.h b/include/configs/kzm9g.h index 6a0b6c5..7db90d4 100644 --- a/include/configs/kzm9g.h +++ b/include/configs/kzm9g.h @@ -50,6 +50,11 @@ #define CONFIG_BAUDRATE 115200 #define CONFIG_BOOTARGS "root=/dev/null console=ttySC4,115200" #define CONFIG_BOOTDELAY 3 +#define CONFIG_BOOTCOMMAND "run initrd_boot" +#define CONFIG_EXTRA_ENV_SETTINGS \ + "mmc_boot=setenv bootargs root=/dev/mmcblk0p2 ip=none rootdelay=2; bootm 80000\0" \ + "usb_boot=setenv bootargs root=/dev/sda2 ip=none rootdelay=2; bootm 80000\0" \ + "initrd_boot=cp.l 0x00400000 0x50400000 0x00300000;setenv bootargs initrd=0x50400000,0x00c00000 ip=none rootdelay=2; bootm 80000\0" #define CONFIG_VERSION_VARIABLE #undef CONFIG_SHOW_BOOT_PROGRESS
同様なことはコマンドラインから環境変数を設定して保存することでも可能です。
3. KZM-A9-GTボードのNORフラッシュへの書き込み
以下の記事を参照してください。