首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Yocto:补丁内核模块Makefile

Yocto:补丁内核模块Makefile
EN

Stack Overflow用户
提问于 2019-11-20 22:58:11
回答 2查看 732关注 0票数 1

我有一个用于恩智浦i.MX6的Linux内核。在/driver/media/platform/mxc/capture中有一些捕获内核模块。

其中一个文件名为mxc_v4l2_capture.c。我必须更改这个文件,以便在我自己的新内核驱动程序中使用它。

我用我的驱动程序和mxc_v4l2_capture的源代码创建了一个存储库。然后我在我的layer recipies-kernel -> kernel-modules->my-kernel-module.bb中做了一个新的Yocto食谱

Yocto可以构建这两个内核模块(my-kernel-module.komxc_v4l2_capture.ko)。

好了,现在出现了一个问题,因为内核配方已经构建了mxc_v4l2_capture模块。因此,我想操作原始内核模块的Makefile,并排除mxc_v4l2_capturemake

我已经创建了补丁,但我不知道如何在Yocto中使用补丁。它放在哪里?我如何调用它?

通常,我会将补丁放到.bbappend文件中并完成,但我不知道构建内核模块的配方的名称。

如果有一种方法可以不用操作这个Makefile,那就太好了。

有没有办法用我的内核模块配方来解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2019-11-21 19:35:47

mxc_v4l2_capture.c是树内内核驱动程序。如果您想要更改树内驱动程序代码并进行编译,强烈建议您对内核打补丁,并使用常用的方法编译内核。

没有必要为树内内核模块提供额外的bitbake配方。要对内核打补丁并进行编译,可以使用.bbappend.bb本身。例如,

如果您的Yocto BSP层中有recipes-kernel/linux/linux-stable_4.19.75.bb,您可以将补丁添加到SRC_URI,如下所示。

代码语言:javascript
运行
复制
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
SRC_URI += "file://mxc_v4l2_capture.patch"

现在,创建recipes-kernel/linux/linux-stable-4.19.75/并将mxc_v4l2_capture.patch文件复制到其中。

或者,如果您没有权限或不可能在BSP层中修改内核配方,您可以在您的自定义层中创建.bbappend。对于上面的示例,您可以创建linux-stable_4.19.75.bbappend (特定版本)或linux-stable_%.bbappend (任何版本)。然后放置上面提到的相同内容。

Yocto支持多种补丁格式,更多细节请参考here

票数 1
EN

Stack Overflow用户

发布于 2019-11-26 03:24:34

看看我几天前写的this答案。这些步骤基本上是相同的。使用

代码语言:javascript
运行
复制
devtool modify virtual/kernel

将在build/workspace中创建一个工作副本,您可以在其中执行您想要的工作。将这些更改提交到本地分支并运行

代码语言:javascript
运行
复制
devtool finish linux-mainline <path-to-your-layer> 

将创建一个包含已创建的补丁的.bbappend文件,并将其放到正确的位置。

如果你想学习如何手动操作,请遵循@Parthiban给出的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58957305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档