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がクロスコンパイラとなる。
環境変数が初期化されてしまうバグは、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
コメント