ZedBoard出たばかりの頃に買ってちょこちょこいじっていたものの
なかなかまとまった時間が取れずに中途半端に放置していたもので。
ちょっとやってみたいことができたのと、ネット上の情報がかなり充実してきたこともあって、
再びいじりだすことにしてみました。 とりあえずLinuxをコンパイルして動かしてみたいということでメモ。
基本的な情報はXilinxのWikiに書いてあるのでそれに沿って進めることにする。
http://www.wiki.xilinx.com/Getting+Started
特電さんの情報も参考にしていたけど、ちょっと古くなってる情報もあった。
http://www.tokudenkairo.co.jp/cosmoz/sdk.html
自分のホスト環境は、Ubuntu14.04 64bit
VivadoとSDKのバージョン2015.4を/opt/Xilinx以下にインストール済み。
さて、何も考えずにU-bootのコンパイルをしてみる。
/home/以下にworkspaceディレクトリを作ってu-bootのソースをコピー
git clone git://github.com/Xilinx/u-boot-xlnx.git
とりあえずそのままmakeしてみようとmake configしようとするとうまく行かない。
make zynq_zed_config
…
arch/arm/kernel/asm-offsets.c:1: error: bad value (armv5t) for -march= switch
これはコンパイルオプションでツールチェインに関連付けられてないのが原因っぽかった。
(結構気づくのに時間がかかった。そんな作業はもう終わってたつもりだったので…)
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
source /opt/Xilinx/SDK/2015.4/settings64.sh
とコマンドして再びmakeすると今度はまた違うエラー
In file included from tools/aisimage.c:10:0:
include/image.h:922:27: fatal error: openssl/evp.h: そのようなファイルやディレクトリはありません
# include <openssl/evp.h>
どうもopensslのソースがあれば良いっぽいのだけどパッケージ名が分からない…。
いろいろ試したところどうもlibssl-devがあれば大丈夫っぽい。
apt-get install libssl-dev
検索するとopenssl-develをインストールするって出てくるんだけど、
apt-get install openssl-develだと出てこない。
もう一度makeすると今度は進んだ、、、と思ったら最後にエラー。
DTC arch/arm/dts/zynq-zc702.dtb
/bin/sh: 1: dtc: not found
make[2]: *** [arch/arm/dts/zynq-zc702.dtb] Error 127
make[1]: *** [arch-dtbs] Error 2
make: *** [dts] Error 2
これは検索ですぐに解決。
https://forums.xilinx.com/t5/Embedded-Linux/Error-Building-U-Boot-for-PicoZed/td-p/652184
device-tree-compilerとやらを入れればいいみたい。
apt-get install device-tree-compiler
気を取り直してmake
Using /home/ogawan/workspace/u-boot-xlnx/spl/u-boot-spl.bin to get image length – it is 48220 (0xbc5c) bytes
After checksum waddr= 0x13 byte addr= 0x4c
Number of registers to initialize 0
Generating binary output /home/ogawan/workspace/u-boot-xlnx/boot.bin
U-bootのブートファイルができた。
今日はここまでにして明日以降でLinuxカーネルをコンパイルしてみる。がんばる。