在Yocto中修改内核配置

Mic*_*iel 9 linux linux-kernel embedded-linux bitbake yocto

我已经尝试了很长时间没有运气修改内核配置.:-(

meta-xxx-yyy /中有一个BSP,配有recipes-kernel/linux/linux_git.bb.我尝试覆盖名为meta-xxx-mylayer的层中的内核配置,其中我有recipes-kernel/linux/linux_git.bbappend和recipes-kernel/linux/files/frag.cfg

frag.cfg:

# CONFIG_NETFILTER is not set
CONFIG_AUTOFS4_FS=y 
Run Code Online (Sandbox Code Playgroud)

linux_git.bbappend:

COMPATIBLE_MACHINE_my_mach = "my_mach"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://frag.cfg"
Run Code Online (Sandbox Code Playgroud)

linux_git.bb :(只是文件的一部分)

KERNEL_RELEASE = "3.10"
PV = "3.10"
PR = "r10"
S = "${WORKDIR}/git"
COMPATIBLE_MACHINE = "(my_mach)"
Run Code Online (Sandbox Code Playgroud)

meta-xxx-yyy/conf/machine/my_mach.conf :(没有meta-xxx-mylayer/conf/machine/my_mach.conf)

PREFERRED_PROVIDER_virtual/kernel = "linux"
UBOOT_MACHINE = "socfpga_cyclone5_config"
KERNEL_MACHINE = "socfpga"
Run Code Online (Sandbox Code Playgroud)

构建命令:

bitbake linux -c cleansstate -f
bitbake linux -c configure -f
bitbake linux -c compile -f
bitbake linux -c deploy -f
Run Code Online (Sandbox Code Playgroud)

一切都在构建,但是当我检查/proc/config.gz时,我可以看到CONFIG_AUTOFS4_FS未启用.

我在meta-xxx-mylayer层中有另一个配方,它可以很好地构建和安装到rootfs中,所以我知道该层已启用.

在构建期间,frag.cfg文件被复制到./tmp/work/my_mach-poky-linux-gnueabi/linux/3.10-r10​​/,而其余文件位于./tmp/work/my_mach-poky-linux -gnueabi/LINUX/3.10-R10/GIT中/.那是问题吗?

我究竟做错了什么???

Ale*_*oni 5

没有看到真正的内核配方很难回答,但可能发生的事情是socfpga的内核配方只是inhertis内核而不是linux-yocto.如果是这种情况,那么您无法使用片段更改配置,您必须提供完整的defconfig.


Geo*_*iev 5

也许已经晚了但是...

内核开发有自己的修改方式。我昨天在这里发了一篇帖子,但我知道我错了,所以我立即删除了它。具体步骤我就不说了。只是简短的描述。你应该在 yocto 开发手册中找到它们,因为它并不是什么特别的东西。

内核更改应直接在源代码上进行(通常在 /workdir/tmp/ 中)。然后使用git打补丁。如果您使用 bitbake -c menuconfig virtual/kernel 或其他方式更改配置,请像您一样将其直接放入内核 .bbappend 文件中。这绝对有效。我尝试使用 devtool 几乎相同,但补丁没有合并。