Linux系统移植三:移植Kernel生成zImage和dtb文件(非petalinux版)

Linux系统移植系列

Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版)
Linux系统移植二:生成fsbl引导文件并制作BOOT.bin(非petalinux版)

环境

  1. hdf设计:vivado 2017.4套件
  2. 交叉编译环境: arm-linux-gnueabihf-
  3. 虚拟机Linux系统版本:ubuntu 16.04
  4. 开发板:ALINX AX7Z100 开发板(ZYNQ7100)

下载源码包

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

安装软件包

扫描二维码关注公众号,回复: 14852477 查看本文章
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 ... 信息说明内核启动成功

猜你喜欢

转载自blog.csdn.net/qq_41873311/article/details/128153115