如何停用内核选项?

时间:2016-05-18 13:29:38

标签: yocto bitbake

我想在构建期间停用内核选项:

在内核配方的.bbappend文件中,我通过SRC_URI .cfg内核片段文件no_usb.cfg获取此内容:

CONFIG_USB=n
CONFIG_USB_TEST=y

第一个条目应该在内核配置中关闭USB,第二个条目用于测试相反的情况。

这没有用:既没有出现测试条目也没有停用USB。我也在yocto中看到了* .scc文件,我为no_usb.cfg创建了一个文件:

kconf hardware no_usb.cfg

但我发现文档中只有较少的内容,无法关闭USB。那么如何停用CONFIG_USB

这是我的内核配方(来自freescale SDK)linux-qoriq_3.12.bb

require recipes-kernel/linux/linux-qoriq.inc
SRC_URI = "git://git.freescale.com/ppc/sdk/linux.git;branch=sdk-v1.9.x"
SRCREV = "43cecda943a6c40a833b588801b0929e8bd48813"

我有一个包含此附加文件linux-qoriq_3.12.bbappend的图层:

SRC_URI += "file://no_usb.cfg"

图层的目录结构如下:

meta-layer
└── recipes-kernel
    └── linux
        ├── linux-qoriq
        │   └── no_usb.cfg
        └── linux-qoriq_3.12.bbappend

2 个答案:

答案 0 :(得分:3)

只要您的内核配方有以下行

require recipes-kernel/linux/linux-yocto.inc

引用.cfg的SRC_URI应该有效。

但是,禁用内核选项的方法不是将其设置为=0。相反,它应该设置为

# CONFIG_USB is not set 

换句话说,这就是.cfg文件中应该包含的行。另外,请确保.cfg文件中没有矛盾的选项。

更新

再次注意,这需要您的内核配方包含行

require recipes-kernel/linux/linux-yocto.inc

为了让yocto内核工具正常工作。据我所知meta-fsl-ppc: linux-qoriq.inc,这个食谱不包括那条线。

更新: 请参阅kergoth的答案,实际上可以在.cfg中使用linux-qoriq个文件。您只需要在DELTA_KERNEL_DEFCONFIG变量中命名它们。

答案 1 :(得分:1)

如前一位评论者所述,您需要使用# CONFIG_FOO is not set而不是CONFIG_FOO=n。不过,我想做一次修正。 linux-qoriq配方 支持配置片段,它只使用一个单独的变量来控制它们的使用,DELTA_KERNEL_DEFCONFIG。有关详细信息,请参阅do_configure_prepend中的recipes-kernel/linux/linux-qoriq.inc

在你的追加中,你应该能够添加它来修复它:

DELTA_KERNEL_DEFCONFIG += "no_usb.cfg"