本文内容依據http://www.wiki.xilinx.com網址編寫,編譯所用作業系統為ubuntu 14
1.交叉編譯環境的安裝配置
1)http://www.wiki.xilinx.com/Install+Xilinx+Tools
2.uboot的編譯
1)下載下傳uboot源代碼
下載下傳uboot源代碼,務必要下載下傳tar.gz格式的檔案,位址:
https://github.com/Xilinx/u-boot-xlnx/releases
進入u-boot目錄下tools目錄,添加路徑到環境變量:
u-boot-xlnx$ cd tools
tools$ export PATH=
pwd
:$PATH
不然編譯核心生成uImage和制作ramdisk時會提示錯誤。
2)進入uboot根目錄,編譯:
make ARCH=arm zynq_zed_config
make ARCH=arm
編譯後的u-boot無字尾名,其實為zed(microzed)下的可執行檔案elf格式,供FSBL生成boot.bin使用,u-boot.bin為二進制格式。
3.linux核心的編譯
1)下載下傳源代碼
下載下傳xilinx的linux源代碼,務必要下載下傳tar.gz格式的檔案,位址:
https://github.com/Xilinx/linux-xlnx/releases
2)編譯源代碼
進入根目錄,依次用下列指令編譯,最後生成的uImage位于linux-xlnx/arch/arm/boot目錄下
make ARCH=arm xilinx_zynq_defconfig
make ARCH=arm menuconfig
make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage
4.devicetree的生成
在Linux源代碼目錄下, 編譯目标為"dtbs"時會把所有的dts檔案編譯成dtb檔案,所有的dts檔案和生成的dtb檔案都位于linux-xlnx/arch/arm/boot/dts/目錄下
make ARCH=arm dtbs
zynq-zed.dtb是我們需要的檔案,改名為devicetree.dtb
如果隻想生成zynq-zed.dtb,在linux源代碼根目錄輸入以下指令即可
make ARCH=arm zynq-zed.dtb
5.編譯的生成:
make ARCH=arm modules
make ARCH=arm modules_install INSTALL_MOD_PATH=…/rootfs