Kernel 和设备树
Kernel defconfig
建立 defconfig 文件
-
进入 arch/arm64/configs 目录,输入:
cp m1000_generic_defconfig boardx_defconfig -
修改 yocto meta 文件(meta/meta-m1000/recipes-kernel/linux/linux-mthreads_7.%.bbappend)中的
OPT_M1000_DEFCONFIG,以关联 kernel 和 boardx_defconfig,如图所示:
修改 Kernel 配置单
在 yocto 环境下执行:
bitbake -c menuconfig linux-mthreads
按需求更改配置后,在 menuconfig 中选择 Save 保存并退出,然后执行:
bitbake -c savedefconfig linux-mthreads
该命令会将当前配置回写到 arch/arm64/configs/${KBUILD_DEFCONFIG}。若已按上一节将 OPT_M1000_DEFCONFIG 改为 boardx_defconfig,则保存到 boardx_defconfig。
设备树
以下列出相关设备树文件(设备树源文件格式为 .dts,设备树包含文件格式为 .dtsi)
$ls arch/arm64/boot/dts/m1000/
m1000-main.dtsi m1000-aimodule.dts m1000-aimodule.dtsi
m1000-isp.dtsi m1000-videv.dtsi m1000-pmu.dtsi
m1000-smmu.dtsi
步骤 1:建立设备树文件
- 进入 arch/arm64/boot/dts/m1000/目录,输入:
cp m1000-aimodule.dts boardx.dtscp m1000-aimodule.dtsi boardx.dtsi
- 修改 Makefile 文件增加:
dtb-$(CONFIG_ARCH_MT_M1000_SOC) += boardx.dtb
步骤 2:配置设备树
MTT E300 的设备树文件分为 .dtsi(设备树包含文件)和 .dts(设备树源文件)两种。.dts 文件中 include 了 .dtsi 文件。其中主要的配置在 m1000-main.dtsi/m1000-aimodule.dts 文件中,管脚相关的配置在 m1000-aimodule.dtsi 等其他文件中。用户自己的设备树文件(如上一节中的 boardx.dts 文件)中应包含这两个文件,如下图所示:
一般情况下,用户无需修改 m1000-main.dtsi/m1000-aimodule.dtsi。如果确实需要修改其中的某个配置项,不建议直接修改该文件,而是在 m1000-aimodule.dts 文件中重新定义这个配置项。
步骤 3:编译设备树 dtb
-
修改 yocto meta 文件(meta/meta-m1000/conf/machine/aimodule.conf)中的
OPT_KERNEL_DEVICETREE,以关联 kernel 和 boardx.dtb,如图所示: -
执行编译 kernel 命令即可同时生成 boardx.dtb

