9. 设备树的编译

9.1. 安装编译工具和依赖

编译设备树之前需要安装必要的环境工具。

1
sudo apt install make gcc-arm-linux-gnueabihf gcc bison flex libssl-dev dpkg-dev lzop vim

9.2. 获取kernel

详细可参考“Linux内核的编译”章节的5.3小节获取内核源码,以下使用野火内核源码。

1
2
#使用-b参数指定ebf_4.19.35_imx6ul分支,使用--depth指定拉取最新的10次提交
git clone -b ebf_4.19.35_imx6ul --depth=10 https://github.com/Embedfire/ebf_linux_kernel.git

其中eMMC和nand设备树源码分别为

  • emmc版本设备树:ebf_linux_kernel/arch/arm/boot/dts/imx6ull-mmc-npi-lite.dts

  • nand版本设备树:ebf_linux_kernel/arch/arm/boot/dts/imx6ull-nand-npi-lite.dts

9.3. 编译设备树

可以手动执行命令或者使用野火编写的make_lite.sh脚本进行编译,推荐使用make_lite.sh脚本。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#方法一:手动编译
#清除之前编译输出
make mrproper

#编译设备树
make ARCH=arm npi_v7_lite_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs -j8



#方法二:使用编译便捷脚本 (推荐)
#查看脚本内容
cat ./make_lite.sh

#清除之前编译输出
./make_lite.sh cleanall

#单独编译设备树
./make_lite.sh dtbs

编译得到的设备树dtb文件在 arch/arm/boot/dts 目录下,设备树分为:

  • emmc版本:imx6ull-mmc-npi-lite.dtb

  • nand版本:imx6ull-mmc-npi-lite.dtb