makefile - Yocto:修补内核模块 Makefile
问题描述
我有 NXP i.MX6 的 Linux 内核。中有一些捕获内核模块/driver/media/platform/mxc/capture
。
其中一个文件名为mxc_v4l2_capture.c
. 我必须更改此文件才能将其与我自己的新内核驱动程序一起使用。
我用我的驱动程序和mxc_v4l2_capture
. 然后我在我的图层中制作了一个新的 Yocto 食谱recipies-kernel -> kernel-modules->my-kernel-module.bb
Yocto 可以构建这两个内核模块(my-kernel-module.ko
和mxc_v4l2_capture.ko
)。
好的,现在有一个问题,因为内核配方已经构建了mxc_v4l2_capture
模块。因此,我想对Makefile
原始内核模块进行操作并排除make
.mxc_v4l2_capture
我已经创建了补丁,但我不知道如何将补丁与 Yocto 一起使用。在哪里放置它,我怎么称呼它?
通常我将补丁放入.bbappend
文件并完成,但我不知道构建内核模块的配方的名称。
如果有一种无需操纵 this 的方法,那就太好了Makefile
。
有没有办法用我的内核模块配方解决这个问题?
解决方案
mxc_v4l2_capture.c
是树内内核驱动程序。如果您想更改 in-tree 驱动程序代码并进行编译,强烈建议您修补内核并使用通常的方法编译内核。
不需要为 in-tree 内核模块添加额外的 bitbake 配方。要修补内核并编译,您可以使用.bbappend
or.bb
本身。例如,
如果您recipes-kernel/linux/linux-stable_4.19.75.bb
在 Yocto BSP 层中有,则可以将补丁添加到SRC_URI
如下所示。
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 支持各种补丁格式,请参阅此处了解更多详细信息。
推荐阅读
- oracle - ORA-24247: 访问控制列表 (ACL) 拒绝网络访问 - 错误
- javascript - div 点击不像鼠标点击
- java - Android Studio Java:无法将图像从网络下载到应用程序中
- javascript - 如何将动态 url 链接到 jquery 中的标签?
- azure-cosmosdb - CosmoDB:由于目标机器主动拒绝,无法建立连接。[::1]:10255
- python - 空闲运行的任何python代码都可以访问所有已安装的ram吗?
- python - 使用跨多列的列表理解将所有非 NaN 值转换为 1
- python - 如何在 Spyder Notebook 上渲染 Displacy?
- ruby-on-rails - Rails如何使用join在另一个表中仅查找具有关联的has_one对象的对象
- python - 将 hyperopt 包与 SOM 一起使用