我有一个用于NXP i.MX6的Linux内核。 /driver/media/platform/mxc/capture
中有一些捕获内核模块。
其中一个文件名为mxc_v4l2_capture.c
。我必须更改此文件才能与自己的新内核驱动程序一起使用。
我使用驱动程序和mxc_v4l2_capture
的源创建了一个存储库。然后我在recipies-kernel -> kernel-modules->my-kernel-module.bb
层中制作了新的Yocto食谱
Yocto可以构建这两个内核模块(my-kernel-module.ko
和mxc_v4l2_capture.ko
)。
好的,现在出现问题了,因为内核配方已经构建了mxc_v4l2_capture
模块。因此,我想为原始内核模块操纵Makefile
,并排除make
的{{1}}。
我已经创建了补丁,但是我不知道如何在Yocto中使用补丁。放在哪里,怎么称呼它?
通常我将补丁放入mxc_v4l2_capture
文件中并完成操作,但是我不知道构建内核模块的配方的名称。
如果有一种方法可以不操纵此.bbappend
,那就太好了。
有没有一种方法可以解决我的内核模块配方?
答案 0 :(得分:1)
Record path value
是树内内核驱动程序。如果要更改树内驱动程序代码并进行编译,强烈建议修补内核并使用通常的方法来编译内核。
树内内核模块不需要额外的位烘烤配方。要修补内核并进行编译,可以使用mxc_v4l2_capture.c
或.bbappend
本身。例如,
如果您的Yocto BSP层中有.bb
,则可以按如下所示将补丁添加到recipes-kernel/linux/linux-stable_4.19.75.bb
。
SRC_URI
现在,您创建FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
SRC_URI += "file://mxc_v4l2_capture.patch"
并在其中复制recipes-kernel/linux/linux-stable-4.19.75/
文件。
或者,如果您没有权限或无法在BSP层中修改内核配方,则可以在自定义层中创建mxc_v4l2_capture.patch
。对于以上示例,您可以创建.bbappend
(特定版本)或linux-stable_4.19.75.bbappend
(任何版本)。然后放置与上述相同的内容。
Yocto支持各种修补程序格式,有关更多详细信息,请参考here。
答案 1 :(得分:0)
看看我几天前写的this答案。步骤基本相同。使用
devtool modify virtual/kernel
将在内部版本/工作空间中创建工作副本,您可以在其中进行所需的工作。将这些更改提交到本地分支并运行
devtool finish linux-mainline <path-to-your-layer>
将使用已创建的补丁程序创建一个.bbappend文件,并将其放置在正确的位置。
如果您想学习手动操作方法,请遵循@Parthiban提供的建议。