Linux系统移植系列
Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版)
Linux系统移植二:生成fsbl引导文件并制作BOOT.bin
下载源码包
Xilinx官方linux源码包下载地址:https://github.com/Xilinx/linux-xlnx/tags,我选择的是2017.4版本的
添加开发板配置文件
cd arch/arm/configs
拷贝并添加配置文件 cp xilinx_zynq_defconfig ax7z100_zynq_defconfig
修改设备树文件
参照 Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版) 添加自己的板子一节中的第2步和第3步
修改Makefile
同样参照 Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版),添加.dtb文件
编译zImage
新建脚本zynq_kernel_gen.sh
,写入以下内容
#!/bin/sh
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- ax7z100_zynq_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j16
第三条命令是用来打开Linux内核图形化配置界面,有需要可配置
chmod +x zynq_kernel_gen.sh
./zynq_kernel_gen.sh
编译完成之后会在目录 /arch/arm/boot
下生成内核镜像文件 zImage
,在目录 /arch/arm/boot/dts
下生成内核设备树文件 zynq-ax7z100.dtb
测试zImage
配置tftpboot
安装软件包
sudo apt-get install tftp-hpa tftpd-hpa
在根目录下新建一个/tftpboot
目录做为TFTP文件存储目录
sudo mkdir -p /tftpboot
sudo chmod 777 /tftpboot
配置tftp,打开/etc/default/tftpd-hpa
文件,将其内容修改如下
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"
以后我们就将所有需要通过TFTP传输的文件都放到该文件夹里面,最后输入如下命令,重启tftp服务器
sudo service tftpd-hpa restart
至此,tftp 服务器就已经搭建好了。
使用tftpboot下载测试
拷贝上一节编译出来的zImage和ax7z100.dtb到Ubuntu的/tftpboot
目录,我们要在uboot中使用tftpboot
命令将其下载到开发板中
cp arch/arm/boot/zImage /tftpboot/ -f
cp arch/arm/boot/dts/ax7z100.dtb /tftpboot/ -f
拷贝完成以后就可以测试了,启动开发板,进入uboot命令行模式,然后输入如下命令将zImage和ax7z100.dtb下载到开发板中并启动
tftpboot 8000 zImage
tftpboot 103cdda8 ax7z100.dtb
bootz 8000 - 103cdda8
当出现 Starting kernel ...
信息说明内核启动成功