迅为iTOP-4412精英版之烧写内核移植后的镜像

准备工作

虚拟机:VM-Ware 16.2.3
操作系统:Ubuntu Linux 16.04
交叉编译器:arm-linux-gcc-4.6.4
工作文件夹:/home/work

“ 迅为iTOP-4412精英版之linux内核移植(一)_WL_arm的博客-CSDN博客  https://blog.csdn.net/Eva20192020/article/details/133752417?spm=1001.2014.3001.5502 ”

一、概念

什么是设备树

设备树device tree,简称dt在linux中用来做参数的表示和传递。在早期的linux版本其实也有参数的表示和传递的行为,例如uboot给kernel通过bootages传参,只不过那种做法并不太好,而设备树则更巧妙的解决了这种问题。

设备树是一个合集,主要包含了dts(device tree source)设备树源文件、dtc(device tree compiler)设备树编译/反编译/调试工具、dtb(device tree blob)二进制设备树镜像文件,dtb其实就是利用dtc将dts编译后的可执行的二进制文件。即.dtb 文件相当于 bin文件 或者 可执行文件,可由 dtc工具将 .dts 编译成 .dtb 文件。

为什么需要设备树

设备树的典型需求就是驱动,我们知道,在内核驱动中通常分为函数(操作方法)和数据,.c用来写函数,.h用来描述寄存器地址或者要写入寄存器的数据。随着芯片越来越多,如果我们把可能用到的各种芯片都写一个.c和.h,那么我们的内核就会有大量的这种芯片驱动的文件,把内核变成一个大胖子,且根本不可能囊括所有芯片。显然这套方法已经无法满足需求,所以就发明了设备树,来解决这个问题。

设备树基本工作原理

基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。在内核内部专门集成了设备树编译器生成代码,内核编译时先编译内核中用来编译设备树的编译器源码,生成一个设备树专用编译器,新编译器将驱动的数据编译成二进制文件dtb,在移植系统时则需要给设备树一个独立地址段。

boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。

二、烧写移植后的内核镜像

我们把编译生成的内核镜像uImage 和设备树 dtb 文件“exynos4412-itop-elite.dtb”拷贝到 fastboot烧写工具根目录中,已经可以使用了。但是为了检验我们的内核是否可以使用,我们可以先使用 已经移植好的来验证内核正确性。

1、 OTG 烧写设备树系统

烧写前将 中的四个镜像文件:
u-boot-iTOP-4412.bin exynos4412-itop-elite.dtb uImage system.img 拷贝到 platform-tools 文件夹目录内。如下图所示 :
烧写步骤和 4412 默认镜像的烧写类似 使用 fastboot
烧写设备树系统首先要在开发板运行支持设备树的 u-boot 镜像。
如果开发板上运行的不是支持设备树的 uboot ,要重新烧写支持设备树的  u-boot-iTOP-4412.bin, 完成后重启开发板才能烧写设备树系统。
重启开发板, 在支持设备树的 uboot 控制台, 如下图输入命令: fastboot 0
这里可能需要安装一下 ADB 驱动,使用驱动精灵自动安装即可。

2、烧写u-boot 镜像

打开烧写工具 platform-tools 文件夹内的 cmd.exe ,在 cmd 命令行输入以下命令烧写内核设备树文件系统,用 fastboot 烧写 u-boot 镜像,输入命令:
fastboot.exe flash bootloader u-boot-iTOP-4412.bin

 3、烧写内核镜像

烧写内核镜像,输入命令:

fastboot.exe flash kernel uImage

 

4、烧写设备树镜像

烧写设备树镜像,输入命令:

fastboot.exe flash dtb exynos4412-itop-elite.dtb

5、烧写根文件系统

烧写根文件系统(时间会长一些),输入命令:

fastboot.exe flash system system.img

 

6、重启

输入重启命令:fastboot.exe reboot 

观察超级终端控制台,进入文件系统表明运行成功。 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值