我想在构建期间停用内核选项:
在内核配方的.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
答案 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"