Linux系统移植三:移植Kernel生成zImage和dtb文件

news/2024/7/1 2:29:09

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 ... 信息说明内核启动成功


http://lihuaxi.xjx100.cn/news/307440.html

相关文章

微服务框架 SpringCloud微服务架构 12 DockerCompose 12.2 部署微服务集群

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构12 DockerCompose12.2 部署微服务集群12.2.1 直接开干12 DockerCompose 1…

阿里云部署应用

安装jdk 查看已安装版本 rpm -qa | grep java yum命令查找JDK1.8软件包 yum -y list java-1.8* 安装列表中的JDK1.8软件包 yum -y install java-1.8.0-openjdk-devel.x86_64 java -version 配置环境变量 vim /etc/profile JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.…

51单片机自学报告--实验部分

微机接口技术-自主学习笔记 PPT链接:微机接口自学--51单片机自学汇报PPT_猫猫爱吃小鱼的博客-CSDN博客 效果演示gif: 四、Proteus仿真 仿真环境:电路仿真软件: Proteus HEX可执行文件编写软件: keil uVision4 keil uVision4新…

设计模型之单例设计

前言 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被…

【蓝桥杯】第十四届模拟赛第一期及第二期填空汇总

目录 1.A题(进制位数) 位运算符 第一期 问题描述 解析 第二期 解析 代码 2.B题(日期问题) 第一期 问题描述 解析 代码实现 执行结果 第二期 问题描述 解析 3.C题(数学问题) 第一期 问题…

4. 死信队列

二八佳人体似酥,腰间仗剑斩愚夫。虽然不见人头落,暗里教君骨髓枯。 死信 概念 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的消息,字面意思可以这样理 解,一般来说,producer 将…

第十二章 Amortized Analysis平摊分析

第12章 Amortized Analysis平摊分析第10周 记于2022/11/29概率分析与平摊分析的区别概率分析平均执行时间考虑同一算法的所有可能输入情况 如果使用概率,则称为期望运行时间 针对单一操作/算法平摊分析针对某一数据结构的 操作序列 不使用概率 操作序列中的平均操作性能/代价【…

效率工具之Arthas

Arthas 阿里巴巴开源的Java诊断工具;追踪方法执行链、反编译、监控JVM状态 在线安装 使用 1. trace 跟踪调用链 解决痛点:定位问题根据日志推理分析,方法出入参不可见,分支判断太多情况下 定位很慢,分析出可能有问…