返回顶部
首页 > 资讯 > 操作系统 >解析Linux内核与设备树的编译和烧写
  • 273
分享到

解析Linux内核与设备树的编译和烧写

Linux内核Linux设备树 2022-06-03 14:06:37 273人浏览 薄情痞子
摘要

目录一、准备材料二、下载linux内核文件三、编译四、通过TFTp烧写zImage与.dtb文件五、常见问题一、准备材料 可以根据自己的需要准备相应材料: 开发环境:VMware 操作系统:ubuntu 开发版:湃兔

目录
  • 一、准备材料
  • 二、下载linux内核文件
  • 三、编译
  • 四、通过TFTp烧写zImage与.dtb文件
  • 五、常见问题

一、准备材料

可以根据自己的需要准备相应材料:

开发环境:VMware

操作系统ubuntu

开发版:湃兔i2S-6UB

二、下载Linux内核文件

之前下载过UBoot文件的朋友应该知道,在每个开发版的资料里都有相应的文件,没有的可以找购买开发版的店家要。

下载完成后将文件拷贝到linux系统下进行解压,解压后会的目录如下图所示:

注意:编译时一定要在当前路径下才能编译

三、编译

1、清理项目工程

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean

2、设置默认配置文件

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- i2som_imx6_defconfig

编译完成后会生成“.config”,如下图所示:

注意:湃兔的默认配置文件是“i2som_imx6_defconfig”,不同厂商的默认配置文件有所不同,可与根据相应的资料查看。如湃兔官网的说明,如下图所示

3.编译生成kernrl文件

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage

4.编译生成.dtb文件

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

注意:到这里内核与设备树的编译就算完成了,如果细心的小伙伴就会发现,为啥我的命令会长一些。每个指令中都用“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”,这是设置编译器为交叉编译器。为了使编译指令简介一些,可以在Makefile文件中添加ARCH和CROSS_COMPILE的配置,以后就可以编译时就可以省掉命令中的“ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-”部分,如下图所示:

5.生成文件的路径

zImage:/arch/arm/boot/目录下

dtb:/arch/arm/boot/dts目录下

四、通过TFTp烧写zImage与.dtb文件

1.将zImage和.dtb文件放入tftp服务器

2.进入开发版UBoot的命令行,配置TFTP服务地址

setenv serverip 192.168.1.99

saveenv 

3.下载zImage文件

tftp 80800000 zImage

4.下载.dtb文件

tftp 83000000 i2c6ulxb-i2s6ull-emmc.dtb

5.启动加载zImage和dtb文件

bootz 80800000 - 83000000

6.验证是否成功

烧写完成后,在kernel启动时会打印编译的时间,如果时间是没问题则说明成功了,启动信息如下图所示:

五、常见问题

1.编译生成zImage时可能会出现的错误如下图所示:

这个错误主要是开发环境未安装‘lzop'工具,只需安装一下从新编译即可

sudo apt-get install lzop

2.启动时卡死在“Starting kernel ...”,如下图所示:

不知道是我手里的开发有问题还是怎么回事,只要编译是不如改动其他文件一般不会有配置错误,所以遇到这种情况多重新试几次即可。

3.如图能启动系统,湃兔的开发版还可以通过替换文件进行更新,进入开发版的系统后之心一下操作

mkdir /mnt/linux/

umount /mnt/linux/

mount /dev/mmcblk1p1 /mnt/linux/

cp i2c6ulxb-i2s6ull-emmc.dtb /mnt/linux/zImage-i2c6ulxb-i2s6ull-emmc.dtb; sync

umount /mnt/linux

reboot

官方教程如下图所示:

4.启动后会发现不能正常启动,这是因为没有根文件导致的

以上就是解析Linux内核与设备树的编译和烧写的详细内容,更多关于Linux内核与设备树的编译和烧写的资料请关注编程网其它相关文章!

--结束END--

本文标题: 解析Linux内核与设备树的编译和烧写

本文链接: https://lsjlt.com/news/11650.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 解析Linux内核与设备树的编译和烧写
    目录一、准备材料二、下载Linux内核文件三、编译四、通过TFTp烧写zImage与.dtb文件五、常见问题一、准备材料 可以根据自己的需要准备相应材料: 开发环境:VMware 操作系统:ubuntu 开发版:湃兔...
    99+
    2022-06-03
    Linux 内核 Linux 设备树
  • Linux内核编译与开发的示例分析
    这篇文章将为大家详细讲解有关Linux内核编译与开发的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一.Linux内核简介linux kernel map:linux 系统体系结构:linux k...
    99+
    2023-06-16
  • Linux内核编译的示例分析
    小编给大家分享一下Linux内核编译的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   下载源代码Linux内核总是不断发展的,***的内核K...
    99+
    2023-06-16
  • Linux内核重编译问题的解决办法
    本篇文章为大家展示了Linux内核重编译问题的解决办法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。内核重编译对很多Linux爱好者来说是一个不小的挑战。笔者认为,很多Linux用户对内核通常有一种...
    99+
    2023-06-16
  • 如何解决Linux内核编译失败的问题
    本篇内容主要讲解“如何解决Linux内核编译失败的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决Linux内核编译失败的问题”吧!内核常识我们先要了解一点.一个内核有哪些东西.比如我...
    99+
    2023-06-12
  • Ubuntu内核基本系统裁减与编译的示例分析
    这篇文章将为大家详细讲解有关Ubuntu内核基本系统裁减与编译的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Ubuntu内核裁减与编译安装make ,gcc, make-kpkg,运行men...
    99+
    2023-06-16
  • Ubuntu编译内核模块和内容体现系统日志中的示例分析
    这篇文章给大家分享的是有关Ubuntu编译内核模块和内容体现系统日志中的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.Linux登陆界面检查当前文件目录:通过Xshell连接Linux系统后输入命令:...
    99+
    2023-06-22
  • 怎么解析Linux设备和驱动的相遇
    本篇文章为大家展示了怎么解析Linux设备和驱动的相遇,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一个开发板这一节结合设备信息集合的详细讲解来认识一下设备和驱动是如何绑定的。所谓设备信息集合,就是...
    99+
    2023-06-15
  • linux 下 g++编译程序时-I(大写i) 与-L(大写l)-l(小写l) 的作用详解
    作为一个linux入门级使用者,gcc/g++ 的简单操作已经用过多次, 但是有时稍微复杂一点的程序就会使用到库。在遇到问题的时候我查了挺多前辈总结的资料,也留个脚本希望对朋友们有个帮助。如果也能处理你的问题,我会感...
    99+
    2022-06-03
    linux g++编译程序 I大写 大写i 小写l
  • 【手写数据库toadb】语言解析器,编程语言是这样被解析理解,解析器利器flex和bison,解析树与逆波兰式
    flex与bsion使用介绍 ​专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的...
    99+
    2023-10-25
    数据库 大数据 sql c语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作