文章地址:http://blog.csdn.net/yake827/article/details/51980181
1.下載內核(建議直接下載xilinx-v15.2)
$ git clone https://github.com/Xilinx/linux-xlnx.git
$ cd linux
2.爲方便管理,內核版本統一使用xilinx-v15.2
$ git checkout -bxilinx-v15.2
3.配置編譯器環境
$ export ARCH=arm
$ export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
4.配置內核環境
$make xilinx_zynq_defconfig
5.編譯uImage內核程序,首先要把mkimage程序加載進去
$sudo apt-get install u-boot-tools
$ make uImage LOADADDR=0x00008000
編譯完成後生成的uimage就是我們需要的內核映像程序。
6.編譯設備樹device tree
首先在arch/arm/boot/dts/zynq-zed.dts(gedit arch/arm/boot/dts/zynq-zed.dts)中更改bootargs,改爲:
// bootargs =“console=ttyPS0,115200 root=/dev/ram rw initrd=0x1100000,33Mip=:::::eth0:dhcp earlyprintk”;
bootargs =“console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4rootwait devtmpfs.mount=0”;
完成這一步之後,linux就變爲從SD卡的第二分區中掛載根文件系統。
其次,設備樹進行卡一半內存作爲共享內存留給PL-PS交互,修改設備樹文件zynq-zed.dts,如下:
memory {
device_type = “memory”;
reg = <0x0 0x10000000>;
接下來在內核中編譯設備樹文件。
$./scripts/dtc/dtc –I dts –O dtb -o devicetree.dtb arch/arm/boot/dts/zynq-zed.dts
編譯出來的devicetree.dtb就是我們需要的設備樹文件。