文档章节

【TQ335X技术教程】如何使用dtb方式启动内核

天嵌科技
 天嵌科技
发布于 2015/04/23 10:00
字数 464
阅读 31
收藏 0

  本期TQ335X技术教程,由技术博主girlkoo编写,主要使用dtb方式启动LINUX内核的过程。采用DTB方式启动LINUX内核,主要在于使用dtb可以减少linux内核版本的数量。同一份linux 内核代码可以在多个板卡上运行,每个板卡可以使用自己的dtb文件。

  老式的u-boot使用ATAGS的方式启动linux内核,本文使用新式的dtb方式启动内核。

  我使用的内核是linux-3.17.2版本,下面开始编译内核。

 

  (1) 解压内核

  1. tar jxf linux-3.17.2.tar.bz2  

  (2)配置linux内核,由于am335x在内核中都归为omap2系列,故可以使用如下命令:

  1. make ARCH=arm omap2plus_defconfig  

  (3)编译内核:

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8  

  我的linux工具链前缀是arm-linux-gnueabi-,这个需要根据自己的实际的工具链情况进行替换。

 

  (4)编译dtb:

  1. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- am335x-evm.dtb  

  (5)制作启动盘:

  将SD格式化为FAT系统,将MLO、u-boot.img拷贝到根目录下。

  在根目录下创建boot目录,将编译好的zImage和am335x-evm.dtb拷贝到该目录下。

 

  (6)u-boot命令行启动Linux内核

  1. load mmc 0 0x88000000 /boot/am335x-evm.dtb  

  2. load mmc 0 0x82000000 /boot/zImage  

  3. bootz 0x82000000 - 0x88000000  

  至此,Linux内核就能启动了。

 

  (7)小结

 

  从启动Log上分析,现在内核无法挂在根文件系统,在下一篇文章中,我会制作根文件系统。

 

© 著作权归作者所有

天嵌科技
粉丝 4
博文 135
码字总数 40355
作品 0
广州
私信 提问
uboot环境配置 Linux教程

通过配置uboot让它在启动过程中从tftp获取内核和设备树,并从在加载内核之后把通过启动参数将"从nfs挂载根文件系统"传入内核。这个配置主要是通过uboot内建的"set 变量名 变量值+save"设置环...

堕落的白天使
2017/01/03
12
0
请教如何更新设备树dts

请教个DTS(设备树)相关的问题。 我的目标平台软件是LEDE(openwrt) 由于需要适配硬件,修改了dts文件,如果在源码下直接make生成固件是没问题的, 新固件包含了更新了的设备树; 但是这个...

何凯峰
2017/11/18
307
1
ARM Linux 3.x的设备树(Device Tree)

宋宝华 Barry Song <21cnbao@gmail.com> 1. ARM Device Tree起源 Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM L......

21cnbao
2013/01/01
0
0
Device Tree(三):代码分析

一、前言 Device Tree总共有三篇,分别是: 1、为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因) 2、Device Tree的基础概念(请参考DT基础概念) 3、...

黑客画家
2018/11/05
46
0
android6.0 编译boot.img烧写进nexus 6启动机器人倒地

[kernel] android-msm-shamu-3.10-lollipop-mr1 编译 export PATH=/home/fire/workspace/nexus6/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin:$PATH export ARCH=arm export SUBARCH=arm ......

Knight_RUI
2015/12/23
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

自定义ApiBoot Logging链路以及单元ID生成策略

ApiBoot Logging会为每一个请求都对应创建链路编号(TraceID)以及单元编号(SpanID),用于归类每一次请求日志,通过一个链路下日志单元的Parent SpanID可以进行上下级关系的梳理。 前文回顾...

恒宇少年
19分钟前
7
0
浅谈 Application 和 activity

对于 在 Application初始化一些变量,为什么不可以放在activity 或者其他的组件里呢? 这里就根据个人的理解来讲述一下,欢迎补充指正。 首先 activity 是以栈的形式出现,一个app应用会有多...

MrLins
19分钟前
6
0
Allegro的脚本文件内容里都有哪些

小伙伴们在使用Allegro的时候是否经常用到脚本文件夹呢?scr的用法其实可真不简单。。。 首先脚本文件的运行模式就存在很多种,比如不提示错误信息,不弹出确认对画框(这样很有利于我们执行...

demyar
21分钟前
14
0
微信升级外链管理规范,「砍一刀帮我加速」要被禁止了

原创: 蒋鸿昌 首发:「知晓程序」公众号 - 最好的微信新商业媒体 几天前,知名互联网评论人阑夕模仿皮尤研究中心(Pew Research Center)在美国做的互联网通识调查问卷,做了一份中文版问卷...

知晓云
21分钟前
12
0
CentOS 7接投影仪

我将一台安装着CentOS 7图形界面的惠普笔记本电脑当桌面使用。最近,想要连接投影仪时却遇到了问题。笔记本有一个HDMI接口。我买了一个HDMI---->VGA的转接线,连上笔记本电脑后,屏幕一直在闪...

大别阿郎
25分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部