天天看點

Xilinx-Zynq Linux核心源碼編譯過程

本文内容依據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

繼續閱讀