如何解决yocto build 中结合了用户空间和设备树配方
我正在尝试创建一个由依赖于某些外围接口 spi 的用户应用程序组成的配方
我已经创建了相同的配方,但只有应用程序成为构建映像的一部分。
我如何以及修改什么以包含设备树?
MKI-33Axx.dts 是我的平台设备树,我的修改仅在此文件中用于 spi,我希望获取此文件而不是原始文件。
我读过 KERNEL_DEVICETREE_append 需要提供修改后的“dtb”文件而不是 dts 文件。我是否必须单独编译设备树,然后在构建映像后将其添加到映像中? 但我仍然不清楚这一点。 有人可以告诉如何以及在哪里激活它吗? 这样我就可以在我的食谱中附加这个设备树更改。
解决方法
KERNEL_DEVICETREE 变量用于指定需要生成并添加到引导分区的设备树文件,但引导加载程序在引导时只会对 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 配方中,请查看我的回答 here。
您不必单独编译 DTS,因为将它添加到 KERNEL_DEVICETREE 变量将导致它在引导分区中传送。
对Linux内核的任何修改都可以添加到:
meta-custom/recipes-kernel/linux/linux-(PROVIDER)_%.append
(PROVIDER) 可以在机器配置文件中找到,它是虚拟/内核配方的提供者。
您为 Linux 创建补丁,请访问:
tmp/work/.../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 构建将触发并应用补丁。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。