【问题标题】:Kernel patches with Bitbake使用 Bitbake 的内核补丁
【发布时间】:2016-08-04 14:31:58
【问题描述】:

我在 SOM 模块上使用基于 IMX6 的嵌入式 linux。 我想修补我的内核,它工作正常,它已被修补,但我想添加一些功能。 我在源代码上应用旧补丁,添加我的代码,然后创建一个新补丁。

在 yocto 中,我将我的补丁添加到配方中并对其进行 bitbake,我使用新加载的内核启动板,它似乎没有我的修改!

对于 bitbake 我的新内核,我输入:

bitbake -c clean linux-toradex-fsl
bitbake linux-toradex-fsl

它编译没有任何错误,我将我的 uImage 复制到我的 tftp 文件夹中,但我的功能似乎没有被执行。

所以我尝试创建一个简单的补丁,用

printk(KERN_WARNING"This is a test\n");

我把它放在另一个警告之后,调用并显示。

它也不起作用。

我与-c devshell 核对,我的修改已应用于 yocto,补丁在这里有效。

我还检查了 uImage 文件,它具有相同的大小,有或没有我的补丁。

你对这个问题有什么想法吗?

问候, 皮埃尔-奥利维尔

解决方案

我尝试了几次后找到了解决方案,我只需要运行

bitbake -c cleansstate linux-toradex-fsl
bitbake my-image

并且图像是使用补丁内核进行的。

【问题讨论】:

    标签: linux-kernel embedded-linux yocto bitbake


    【解决方案1】:

    Bitbake 对 -clean 很有趣。它试图保留一个状态目录,所以 -clean 只是在 makefile 中运行正常的“clean”,但是 makefile 可能会被共享状态短路,其中可能包括来自先前构建的压缩预构建二进制文件。试试这个:

    bitbake -c cleansstate linux-toradex-fsl
    bitbake linux-toradex-fsl
    

    注意 cleansstate 中多余的 's'(干净的共享状态)。

    【讨论】:

    • 我试过了,还是和以前一样,我的printk在开机时没有出现。
    • 嗯,这对我有用,但您可以尝试用更大的锤子敲击它:运行 -c cleanall、-c cleansstate 和 -c clean。然后运行 ​​-c fetch,然后 -c configure 然后检查构建树 - 在工作文件夹下有 arch 文件夹,在下面会有实际的 linux 构建文件夹。检查并查看补丁是否存在和应用。
    • 我找到了解决方案,我只是做一个 cleansstate,而不是构建内核,我构建一个映像,然后重建正确的内核
    • 当您只构建内核时,您从哪里检索内核?部署文件夹?
    • 我从 git 存储库中检索我的源代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 2021-04-17
    • 1970-01-01
    相关资源
    最近更新 更多