IMX6ULL移植篇-编译单个指定的设备树文件

一.  设备树文件

如果在 编译 zImage成功后,同时生成了 设备树文件就不用此操作。

如何确定编译 zImage成功后,同时生成了设备树文件 ?

Linux内核源码目录下 /arch/arm/boot/dts/目录下,是否存在对应开发板的 .dtb文件。

如果在编译 Linux内核镜像文件(zImage)时,没有生成 设备树文件(.dtb文件)的情况下,可以单独编译出设备树文件。

二.  单独编译设备树文件

1.  Linux内核源码

所使用的Linux内核源码包:

阿尔法Linux开发板(A盘)-基础资料-2022 / 阿尔法Linux开发板(A盘)-基础资料 / 例程源码 / 开发板教程对应的uboot和linux源码/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek.tar.bz2

设备树文件:

设备树文件是以 .dtb为后缀的文件。

设备树文件存放的路径:Linux内核源码目录下 /arch/arm/boot/dts/

正点原子自己写的设备树文件

Linux内核源码目录下 /arch/arm/boot/dts/ 目录下,除了存在 .dtb文件,还有一些  .dts文件。这里的 一堆 .dts文件是正点原子自己写的设备树文件。

注意:.dtb 设备树文件是通过对 .dts文件编译而生成的。

2.  单独编译设备树文件

首先,将以上目录中的 Linux内核源码包拷贝到虚拟机 ubuntu上,并解压缩。这里我的 ubuntu系统下解压后的 Linux内核源码包如下:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel$ ls
linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek


其次,更改设备树文件目录下的 Makefile文件确认 Makefile文件中是否加入待编译的设备树配置文件。

进入Linux内核源码的 /arch/arm/boot/dts/ 目录下,确认设备树文件配置文件是哪一个?

因为太多 imx6ull版本的,所以,这里只列出了部分设备树配置文件:

wangtian:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek/arch/arm/boot/dts$ find imx6ull*.dts
imx6ull-14x14-ddr3-arm2-qspi-all.dts
imx6ull-14x14-evk.dts
imx6ull-14x14-evk-emmc.dts
imx6ull-9x9-evk-ldo.dts
imx6ull-alientek-emmc.dts
imx6ull-alientek-nand.dts

可以看出,这里可以猜测 Nand-Flash版本开发板对应的设备树配置文件应该对应是上面的

imx6ull-alientek-nand.dts

.dtb设备树文件是通过对应的 .dts文件生成的。所以,需要在 /arch/arm/boot/dts/ 目录下的 Makefile文件中加入 imx6ull-alientek-nand.dts。

打开 Makefile文件,Makefile文件中涉及 imx6ull的内容如下:

可以看出,上图的箭头处与 imx6ull-alientek-nand.dts文件名类似,就是我们需要添加的 .dtb文件,这里不需要添加。

其次,修改 Linux内核源码根目录下的 Makefile文件确认 ARCHCROSS_COMPILE的参数值。

进入Linux内核源码根目录下,更改 Makefile文件,Makefile 涉及 ARCHCROSS_COMPILE的部分如下:

# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
ARCH		?= arm
CROSS_COMPILE	?= arm-linux-gnueabihf-

# Architecture as present in compile.h
UTS_MACHINE 	:= $(ARCH)
SRCARCH 	:= $(ARCH)

可以看出,顶层 Makefile文件中 ARCH CROSS_COMPILE两个参数已经设置好,无需设置。

最后,编译 Nand-Flash版本的设备树文件。

进入 Linux内核根目录下,输入如下:

wangtian:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek$ make  imx6ull-alientek-nand.dtb
  DTC     arch/arm/boot/dts/imx6ull-alientek-nand.dtb

最后查看 /arch/arm/boot/dts目录下,是否有生成  imx6ull-alientek-nand.dtb文件:

wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek/arch/arm/boot/dts$ ls imx6ull-alientek*.dtb -l
-rw-rw-r-- 1 wangtian wangtian 39116 9月  19 15:13 imx6ull-alientek-emmc.dtb
-rw-rw-r-- 1 wangtian wangtian 39666 9月  20 01:25 imx6ull-alientek-nand.dtb

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值