我正在尝试在yocto版本中添加自定义设备树。
输入dts目录位于:arch / arm / boot / dts /
输出DTB目录位于:build / tmp / deploy / images / machine-name
我将我的自定义DTS文件添加到了输入dts目录中,并将其包含在makefile中,但是当我进行位烘烤后,我在输出DTB目录中看不到任何生成的文件。
任何帮助将不胜感激。
此外,我在解决如何从设备树中删除功能时遇到问题。如果我想删除i2c,我将如何处理?我知道我可以编辑我的DTS文件,但是我希望将其内置到配方中,因此,当您运行bitbake一次时,它会自动禁用/删除任何外围设备/设备/驱动程序。
谢谢!
答案 0 :(得分:1)
简短答案:
对于简单的更改,建议使用设备树覆盖(如果支持)。
请参阅:rpi: Device Trees, overlays, and parameters
如果您不只是扩展或修补设备树,而是使用完整的文件,则可以使用配方工具为内核配方创建一个简单的bbappend蓝图
recipetool appendsrcfile -wm colibri-imx7 ../layers/meta-mylayer/ virtual/kernel your.dts 'arch/${ARCH}/boot/dts/your.dts'
如下所示:
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
PACKAGE_ARCH = "${MACHINE_ARCH}"
# adding your device tree to the kernel sources
SRC_URI += "file://imx7d-colibri-emmc-mydevie.dts;subdir=git/arch/${ARCH}/boot/dts"
# compile your device tree
SRC_URI += "file://0001-compile-my-devicetree.patch"
# make dt available for kernel build things.
KERNEL_DEVICETREE_append = " imx7d-colibri-emmc-mydevice-v3.dtb "
需要Makefile的补丁程序才能在标准构建链中编译新文件
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index b0e966d..9bbd52c 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -568,6 +568,7 @@ dtb-$(CONFIG_SOC_IMX7D) += \
imx7d-cl-som-imx7.dtb \
imx7d-colibri-emmc-eval-v3.dtb \
imx7d-colibri-eval-v3.dtb \
+ imx7d-colibri-emmc-mydevice.dtb \
imx7d-nitrogen7.dtb \
imx7d-pico-pi.dtb \
imx7d-sbc-imx7.dtb \
现在您可以在uboot提示符下选择设备树blob
setenv fdt_board=mydevice
printenv
boot
或修补uboot以将blob用作默认值