本文內容依據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根目錄,編譯:
編譯后的u-boot無后綴名,其實為zed(microzed)下的可執行文件elf格式,供FSBL生成boot.bin使用,u-boot.bin為二進制格式。
3.linux內核的編譯
1)下載源代碼
make ARCH=arm zynq_zed_config
make ARCH=arm
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