向Raspberry Yocto项目添加新dts

向Raspberry Yocto项目添加新dts,yocto,meta-raspberrypi,Yocto,Meta Raspberrypi,我有一个实验性的硬件连接到Raspberry的GPIO线路,并且已经创建了相关的dts文件。在Raspbian中,内核模块和dtbo(覆盖)工作良好,即硬件可以控制 现在我尝试使用Jumpnowtek的meta rpi层[x]将其移植到Yocto 2.7.1。内核模块移植在其他方面是成功的(至少,我在编译期间没有收到任何投诉),但我无法将dts文件添加到系统中,这样它就会自动编译到dtbo并添加到/boot/overlays-目录中 [x] 我创建了一个linux-raspberrypi_4.1

我有一个实验性的硬件连接到Raspberry的GPIO线路,并且已经创建了相关的dts文件。在Raspbian中,内核模块和dtbo(覆盖)工作良好,即硬件可以控制

现在我尝试使用Jumpnowtek的meta rpi层[x]将其移植到Yocto 2.7.1。内核模块移植在其他方面是成功的(至少,我在编译期间没有收到任何投诉),但我无法将dts文件添加到系统中,这样它就会自动编译到dtbo并添加到/boot/overlays-目录中

[x]

我创建了一个linux-raspberrypi_4.19.bbappend配方,如下所示:

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://newlayer.dts"

RPI_KERNEL_DEVICETREE_OVERLAYS_append = " overlays/newlayer.dtbo "

do_compile_prepend() {
  sed -i '/dtbo-$(CONFIG_ARCH_BCM2835) += \\/a newlayer.dtbo \\' ${S}/arch/${ARCH}/boot/dts/overlays/Makefile
  cp ${WORKDIR}/newlayer.dts ${S}/arch/${ARCH}/boot/dts/overlays/
}
执行“bitbake控制台映像”时,出现以下错误:

| make[3]: *** No rule to make target 'arch/arm/boot/dts/overlays/newlayer.dtbo'.  Stop.
| make[2]: *** [arch/arm/Makefile:345: overlays/newlayer.dtbo] Error 2
| make[1]: *** [Makefile:146: sub-make] Error 2
| make: *** [Makefile:24: __sub-make] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
如果我不添加“RPI\u KERNEL\u DEVICETREE\u OVERLAYS\u append”行,我不会得到任何错误消息,但是dts文件也不会被编译。看来,上述变量的内容控制了哪些dts文件将被编译


欢迎提供任何帮助。

为内核创建一个补丁,添加此文件并使用它?我实际上就是这样做的,即在编译之前将文件添加到内核。