linux 在yocto构建中结合了用户空间和设备树配方

rhfm7lfc  于 2023-03-11  发布在  Linux
关注(0)|答案(1)|浏览(118)

我试图创建一个食谱,这是由一个用户应用程序,这是依赖于某些外围接口SPI
我已经创建了一个相同的配方,但只有应用程序成为构建图像的一部分。
如何修改设备树以及要修改哪些内容?
MKI-33Axx.dts是我的平台设备树,我的修改仅在此文件中用于spi,我希望此文件被拾取,而不是原始文件。
我了解到KERNEL_DEVICETREE_append需要提供修改后的“ddb”文件而不是dts文件。我是否必须单独编译设备树,然后在构建映像后将其添加到映像中?但我仍然不清楚这一点。有谁能告诉我如何以及在哪里激活它吗?这样我就可以将此设备树更改添加到我的配方中。

w6mmgewl

w6mmgewl1#

KERNEL_DEVICETREE变量用于指定需要生成并添加到 Boot 分区的设备树文件,但引导加载程序在引导时只会在RAM中对其中一个进行收费。
例如,对于U-boot,将使用板的defconfig文件中的DEFAULT_FDT_FILE中指定的文件。但是,您可以通过暂停U-boot并使用以下命令指定DTB文件来更改DTB:

setenv fdt_file new_file.dtb (make sure of "fdt_file" var with "printenv")

你可以使用recipetool自动将你的新设备树文件添加到你的linux recipe中,检查我的答案here
您不必单独编译DTS,因为将其添加到KERNEL_DEVICETREE变量将导致它在 Boot 分区中提供。
Linux内核上的任何修改都可以添加到:
meta-custom/recipes-kernel/linux/linux-(PROVIDER)_%.append
(PROVIDER)可以在机器配置文件中找到,它是虚拟/内核配方的提供者。
要为Linux创建修补程序,请转到:
linux-(PROVIDER)/../git
进行编辑并:

git add modified_file
git commit -m "updates"
git format-patch -1

这将生成一个“updates.patch”文件,您可以将其添加到linux-(PROVIDER)_%.append文件中:

SRC_URI += "file://updates.patch"

确保将修补程序文件复制到:
meta-custom/recipes-kernel/linux/files
现在,Linux构建将被触发并应用补丁。

相关问题