当前位置:   article > 正文

Linux系统移植三:移植Kernel生成zImage和dtb文件(非petalinux版)_如何从uboot中提取dtb文件

如何从uboot中提取dtb文件

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步
只不过目录变成了 /arch/arm/boot/dts ,操作一样

在这里插入图片描述

修改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 
  • 1
  • 2
  • 3
  • 4
  • 5

第三条命令是用来打开Linux内核图形化配置界面,有需要可配置

chmod +x zynq_kernel_gen.sh
./zynq_kernel_gen.sh
  • 1
  • 2

编译成功信息截图
编译完成之后会在目录 /arch/arm/boot 下生成内核镜像文件 zImage ,在目录 /arch/arm/boot/dts 下生成内核设备树文件 zynq-ax7z100.dtb

测试zImage

配置tftpboot

安装软件包

sudo apt-get install tftp-hpa tftpd-hpa
  • 1

在根目录下新建一个/tftpboot目录做为TFTP文件存储目录

sudo mkdir -p /tftpboot 
sudo chmod 777 /tftpboot
  • 1
  • 2

配置tftp,打开/etc/default/tftpd-hpa文件,将其内容修改如下

# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp" 
TFTP_DIRECTORY="/tftpboot" 
TFTP_ADDRESS=":69" 
TFTP_OPTIONS="-l -c -s"
  • 1
  • 2
  • 3
  • 4
  • 5

以后我们就将所有需要通过TFTP传输的文件都放到该文件夹里面,最后输入如下命令,重启tftp服务器

sudo service tftpd-hpa restart
  • 1

至此,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
  • 1
  • 2

拷贝完成以后就可以测试了,启动开发板,进入uboot命令行模式,然后输入如下命令将zImage和ax7z100.dtb下载到开发板中并启动

tftpboot 8000 zImage 
tftpboot 103cdda8 zynq-ax7z100.dtb
bootz 8000 - 103cdda8
  • 1
  • 2
  • 3

当出现 Starting kernel ... 信息说明内核启动成功

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号