U-Bootのコンパイル

 どの情報が正しいのか分かり辛くてまとめが大変・・・

 環境変数が初期化されてしまうバグは、U-Bootの3.4.23以前のもの全てだと考えたほうが良い。
#つまり、plugcomputerからダウンロードしたバイナリは全てバグが混入していると考えたほうが良い

 ソースから構築するしかありません。
 QEmuにUbuntu 10.10 Serverな環境を構築して、そこでクロスコンパイルすることにしました。

・gccを入れる必要ある。
 apt-get install gcc
※gcc 4.4.4がインストールされた

・patchを入れる:http://mizupc8.bio.mie-u.ac.jp/pukiwiki/index.php?SheevaPlug%2FU-Boot の手法を用いるなら必須
 apt-get install patch

・クロスコンパイラを設定する
 plugcomputer.comのSheevaPlug_Host_SWsupportPackageLinuxHost1.2.zipの中のgcc.tar.gz2がクロスコンパイラとなる。
 tar jxf gcc.tar.bz2 -C /usr/cross/sheevaplug

 パスを通す
 export PATH=/usr/cross/sheevaplug/bin:$PATH

・/bin/shがおかしい(?)
 普通にコンパイルできないのでめっちゃ焦りました。
 http://plugcomputer.org/plugforum/index.php?topic=183.30
 エラー内容:
#error "MV_BOOTSIZE undefined" on "make -s" みたいな感じw

 上記のサイトは英語で申し訳ないですが、該当する場合、下記コマンドを試してみてください。

 #ls -l /bin/sh
 結果:
 #lrwxrwxrwx 1 root root 4 2007-02-26 17:07 /bin/sh -> dash
 上記結果の場合:
 #ln -sf /bin/bash /bin/sh"

・ソースコードの展開とパッチ当て

3.4.27の場合
# cd /workdir
# tar jxvf u-boot-1.1.4.tar.bz2
# mv u-boot-1.1.4 u-boot-3.4.27 ← zipファイルで上書きするために、ディレクトリ名を変更しておく。
# unzip -o u-boot-3.4.27.zip
# cd u-boot-3.4.27
# patch -p 1 < ../pathch-3.4.27-pingtoo-01

SheevaPlug_U-Boot1.2 の zip ファイルをダウンロードして解凍すると、u-boot-1.1.4.tar.bz2 が含まれています。

・コンパイル
 make CROSS_COMPILE=arm-none-linux-gnueabi- clean
 make CROSS_COMPILE=arm-none-linux-gnueabi- rd88f6281Sheevaplug_config LE=1 NBOOT=1
 make

 出来上がったu-boot-rd88f6281Sheevaplug_400db_nand.bin が NANDフラッシュの書き込み用です。大切に保管しておきましょうw

コメント

このブログの人気の投稿

【解決】YogaBook が再起動を繰り返す

XCP-ngを触ってみて

Hyper-V上にXCP-ng(xen環境)をインストール