ZedBoard向けにFreeBSDをビルドすることができるらしい。つまり、ZynqのARM用にFreeBSDをビルドすることができるということか。
これまでいろいろ試行していたのは、RISC-V向けのFreeBSDのビルドだ。だが、FreeBSDをZynqのARMで動作させることができれば、これも面白いかもしれない。
FreeBSD/arm/Zedboard - FreeBSD Wiki
ZedBoard向けのFreeBSDビルド
とりあえずまずはgithubからFreeBSDのソースをチェックアウトしてきた。
git clone https://github.com/freebsd/freebsd.git
そのまま、ビルドする。
make TARGET_ARCH=armv6 KERNCONF=ZEDBOARD buildworld buildkernel
およそ3時間程度、やっとビルドが終了した。今日はここで時間切れ...
ctfconvert -L VERSION -g zlib.o ld -d -warn-common -r -d -o zlib.kld zlib.o ctfmerge -L VERSION -g -o zlib.kld zlib.o :> export_syms awk -f /home/vagrant/freebsd/sys/conf/kmod_syms.awk zlib.kld export_syms | xargs -J% objcopy % zlib.kld ld -Bshareable -d -warn-common -o zlib.ko.full zlib.kld objcopy --only-keep-debug zlib.ko.full zlib.ko.debug objcopy --strip-debug --add-gnu-debuglink=zlib.ko.debug zlib.ko.full zlib.ko -------------------------------------------------------------- >>> Kernel build for ZEDBOARD completed on Thu Nov 3 14:36:50 UTC 2016 --------------------------------------------------------------
u-boot.img と boot.bin のビルド
解説に書いてあるとおり、最初にXilinxのu-bootのリポジトリをダウンロードして、いくつか書き換える必要がある。
git clone https://github.com/Xilinx/u-boot-xlnx.git curl https://raw.githubusercontent.com/Xilinx/embeddedsw/master/lib/sw_apps/zynq_fsbl/misc/zed/ps7_init.c -o u-boot-xlnx/board/xilinx/zynq/ps7_init.c curl https://raw.githubusercontent.com/Xilinx/embeddedsw/master/lib/sw_apps/zynq_fsbl/misc/zed/ps7_init.h -o u-boot-xlnx/board/xilinx/zynq/ps7_init.h sudo pkg install -y arm-none-eabi-binutils-2.27_4,1 arm-none-eabi-gcc-5.3.0_1 arm-none-eabi-gdb-7.10_4 gmake CROSS_COMPILE=arm-none-eabi- distclean gmake CROSS_COMPILE=arm-none-eabi- zynq_zed_config gmake CROSS_COMPILE=arm-none-eabi- HOSTCC=cc
で、ここから先?Building ubldr のところから、ディレクトリも無いしmakeもうまく行かないので詰まってしまった。
FreeBSDの慣習に慣れていないからかしら?良く分からない。