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

news2024/9/22 5:29:30

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://www.coloradmin.cn/o/60057.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux+window+macos下的JDK安装

1. Linux中安装JDK (1)下载Linux版本的jdk压缩包 (2)解压 tar -zxvf 压缩包名 例如: tar -zxvf jdk-8u251-linux-x64.tar.gz(3)在系统配置文件配置java 编辑profile配置文件 vim /etc/prof…

JVM Metaspace内存溢出问题

更多内容,前往 IT-BLOG 一、现象 x项目线上环境因为jvm报OOM的异常而报警,导致整个服务不可用并被拉出集群,现象如下: 当时的解决方案是增加metaspace的容量: -XX:MaxMetaspaceSize512m, 从原来默认的256m改为512m, 虽然没有再出现oom,但这个只是临时解决方案,通过…

MyBatis ---- 动态SQL

MyBatis ---- 动态SQL1. if2. where3. trim4. choose、when、otherwise5. foreach6. SQL片段MyBatis 框架的动态 SQL 技术是一种根据特定条件动态拼接 SQL 语句的功能,它存在的意义是为了解决拼接 SQL 语句字符串时的痛点问题。 1. if /*** 根据条件查询员工信息if…

eBPF书籍和教程良心推荐

中文 BPF 性能工具(书籍),作者 Brendan Gregg。本书的GitHub 回购。系统性能:企业与云,第 2 版 (2020),作者:Brendan GreggJed Salazar 和 Natalia Reka Ivanko 的 eBPF 安全可观察性什么是 eB…

Metabase学习教程:系统管理-5

仪表板优化 如何使您的仪表板加载更快。 说到仪表板性能方面,基本上有四种方法可以让仪表板更快地加载: 要求更少的数据.缓存问题答案.组织数据以预测常见问题.提出有效的问题。图1。包含三个筛选器小部件的示例仪表板,它们使用Metabase附…

友宝在线在港交所上市申请“失效”:连续两年亏损,王滨为大股东

近日,贝多财经从港交所披露易了解到,Beijing UBOX Online Technology Corp.(北京友宝在线科技股份有限公司,下称“友宝”或“友宝在线”)的上市申请材料已经失效,目前已经无法查看。 其中,招股书…

期末前端web大作业:餐饮美食网站设计与实现——餐厅响应式网站制作html+css+javascript+jquery+bootstarp

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

Android开发的UI设计——Material Design

前言 Material Design 是用于指导用户在各种平台和设备上进行视觉、动作和互动设计的全面指南。如需在您的 Android 应用中使用 Material Design,请遵循 Material Design 规范中定义的准则,并使用 Material Design 支持库中提供的新组件和样式。 正篇 …

【软件安装】Ubuntu18.04及20.04中安装omnet++

注意:安装omnet首先看官方安装指导,不要直接百度。 omnet6.0.1官方安装指导omnet6.0只能在Ubuntu20.04及之后的版本使用,因为glibc版本不适配。 Ubuntu18.04安装omnet5.6.2 安装必要支持 更新apt-get $ sudo apt-get update安装依赖软件 $ s…

2022年四川省职业院校技能大赛网络搭建与应用赛项

2022年四川省职业院校技能大赛 网络搭建与应用赛项 (一) 技能要求 (总分1000分) 网络搭建与应用赛项执委会及专家组 2022年06月 竞赛说明 一、竞赛内容分布 “网络搭建与应用”竞赛共分三个部分,其中: 第一…

3个常用的损失函数

1. L2 loss (均方损失) 除以2就是可以在求导时2和1/2可以相乘抵消。 蓝色的曲线表示:y0时,变化预测值y’的函数。 绿色曲线表示:似然函数。e^-l。 是一个高斯分布。 橙色的线:表示损失函数的梯度 可以看到…

记录Windows下mysql更改my.ini文件中datadir路径后启动不起来的问题

1.mysql默认安装到了C盘,想将数据库存储路径改到别的盘下 将Data文件夹和日志复制到H盘 找到mysl服务,右键停止服务 更改my.ini文件中的路径 保存然后启动发现启动不起来 猜测原因1:文件夹没有权限 将文件夹权限给到所有的用户 右击 ”…

[附源码]Python计算机毕业设计Django青栞系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Linux的进程创建

在Linux下面,对二进制程序有着严格的格式要求,这就是ELF,这个格式可以根据编译的结果不同,分为不同的格式。 ELF的三种类型 一:可重定位文件 在编译的时候,先做预处理工作,例如将头文件嵌入到…

VueX简单又详细的解读,看了就会用

一、VueX是什么 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 二、为什么要用VueX “单向数据流”理念的简单示意: 当我们的应用遇到多个组…

Redis缓存

一.简介 缓存就是数据交换的缓冲区(称作Cache [ kʃ ] ),是存贮数据的临时地方,一般读写性能较高 二.添加Redis缓存 三.缓存更新策略 1.主动更新策略 Cache Aside Pattern(推荐) 需要调用者自己编码,但可控性高 Re…

SimSiam-Exploring Simple Siamese Pepresentation Learning

SimSiam Abstract 模型坍塌,在siamese中主要是输入数据经过卷积激活后收敛到同一个常数上,导致无论输入什么图像,输出结果都能相同。 而He提出的simple Siamese networks在没有采用之前的避免模型坍塌那些方法: 使用负样本lar…

K_A08_003 基于 STM32等单片机驱动L9110模块按键控制直流电机正反转加减速启停

目录 一、资源说明 二、基本参数 1、参数 2、引脚说明 三、驱动说明 L9110模块驱动时序 对应程序: PWM信号 四、部分代码说明 接线说明 1、STC89C52RCL9110模块 2、STM32F103C8T6L9110模块 五、基础知识学习与相关资料下载 六、视频效果展示与程序资料获取 七、项目主要…

【Android工具】群晖安卓客户端基础套件:Drive、video、Photos和DS video安卓TV客户端...

微信关注公众号 “DLGG创客DIY”设为“星标”,重磅干货,第一时间送达。最近终于把all in one搞起来了,all in one就是把一堆功能一堆软件装一台主机里。。all in one(以后简称AIO)相关内容回头慢慢聊。今天先聊聊群晖&…

从一个demo说elf文件

本文的demo是在linux环境下编译解析的,cpu是x86-64 首先我们先写一个功能简单的demo-SimpleSection.c。这个demo中有一个func1函数用来打印数据,一个已经初始化的全局变量global_init_var和未初始化的全局变量global_uninit_var,一个已初始化…