一応、こちらに手順が書かれています。
http://dev.odroid.com/projects/odroid-t/wiki/UbootPage
が、手順どおり実施してもうまくいかなかったので試行錯誤してなんとかなったことを書いときます。
(※環境はUbuntu 10.04です。以降も同じです。)
- ツールチェインのダウンロードと設定
http://www.codesourcery.com/sgpp/lite/arm/portal/release1600
より、「IA32 GNU/Linux TAR版」をダウンロードします。
適当なディレクトリを作成して展開します。
$ sudo mkdir /opt/toolchainsコマンドラインで利用できるように.bashrcを編集しパスを通します。
$ sudo tar xjvf arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /opt/toolchains
(※一行で続いています。ちなみにtarの-Cオプションは展開先ディレクトリ指定ですね。)
$ vi ~/.bashrcこれで例えば
PATH=$PATH:/opt/toolchains/arm-2010.09/bin
(この1行を末尾に追加して保存して閉じます)
$ source ~/.bashrc
$ arm-none-linux-gnueabi-gcc -v
※コマンド見つからんエラーではなく、gccのバージョン情報などが出てくれば成功。 - u-bootのソースコードをダウンロード
http://dev.odroid.com/projects/odroid-t/download/note/38
ここからodroid用の最新版ソースを入手し、適当な場所に展開します。ダウンロードされたファイル名はodroid-c110-uboot_20100727.tar.gzでした。
(ubootというディレクトリに展開されます。) - u-bootのビルド
手順の通りやってみたところ
$ cd uboot失敗してしまいました。
$ make mrproper
$ make hkdkc110_mmc_config
$ make
...
/usr/local/arm/4.3.1-eabi-armv6/usr/bin/arm-linux-gcc:コマンドが見つかりませんでした。
...(※ビルド失敗)
えーと、確か先ほどのツールチェインにはarm-none-linux-gnueabi-xxxコマンドがインストールされているはずです。 - ubootビルドのリトライ
一応デフォルトのビルドオプションを確認してみると
$ grep /usr/local *と出てきました。CROSS_COMPILEという環境変数を置き換えてやれば良さそうですね。
Makefile:#CROSS_COMPILE = /usr/local/arm/4.4.1-eabi-cortex-a8/usr/bin/arm-linux-
Makefile:#CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
Makefile:CROSS_COMPILE = /usr/local/arm/4.3.1-eabi-armv6/usr/bin/arm-linux-
ということでリトライ
$ CROSS_COMPILE=arm-none-linux-gnueabi- make駄目みたいですね。
...
ERROR: undefined reference to `__aeabi_unwind_cpp_pr0
...※コンパイルエラーで失敗。 - 正しいツールチェインを探してくる
http://dev.odroid.com/projects/odroid-t/download/note/30
ここに4.3.1-eabi.tar.gzという、それっぽいものが置いてあります。
ダウンロードして適切な場所に展開します。
$ sudo mkdir /usr/local/arm/ここでしか使わないのでパスは特に通したりしなくてもよいです。
$ sudo tar xvzf 4.3.1-eabi.tar.gz -C /usr/local/arm - u-bootのビルド(三度目の正直)
というわけで
$ make mrproper見事にu-boot.binが作成されましたね。
$ make hkdkc110_mmc_config
$ make
※ビルドが正常に終了
0 件のコメント:
コメントを投稿