我想在构建期间停用内核选项:
在内核配方的 .bbappend 文件中,我通过具有以下内容SRC_URI
的 .cfg 内核片段文件获取no_usb.cfg
:
CONFIG_USB=n
CONFIG_USB_TEST=y
Run Code Online (Sandbox Code Playgroud)
第一个条目应该在内核配置中关闭 USB,第二个条目用于测试相反的情况。
这不起作用:既没有出现测试条目,也没有停用 USB。我也在 yocto 源 *.scc 文件中看到过,我为我的文件创建了一个no_usb.cfg
:
kconf hardware no_usb.cfg
Run Code Online (Sandbox Code Playgroud)
但是我在文档中发现的很少,无法关闭 USB。那么我该如何停用CONFIG_USB
?
这是我的内核配方(来自飞思卡尔 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"
Run Code Online (Sandbox Code Playgroud)
我有一个带有此附加文件的图层linux-qoriq_3.12.bbappend
:
SRC_URI += "file://no_usb.cfg"
Run Code Online (Sandbox Code Playgroud)
该层的目录结构如下:
meta-layer
??? recipes-kernel
??? linux
??? linux-qoriq
? ??? no_usb.cfg
??? linux-qoriq_3.12.bbappend
Run Code Online (Sandbox Code Playgroud)
小智 5
正如之前的评论者所说,您需要使用# CONFIG_FOO is not set
而不是CONFIG_FOO=n
. 不过,我想做一个更正。linux-qoriq recipe确实支持配置片段,它只是使用一个单独的变量来控制它们的使用,DELTA_KERNEL_DEFCONFIG
. 请参阅do_configure_prepend
在recipes-kernel/linux/linux-qoriq.inc
了解详细信息。
在您的 append 中,您应该能够添加它来修复它:
DELTA_KERNEL_DEFCONFIG += "no_usb.cfg"
Run Code Online (Sandbox Code Playgroud)
只要你的内核配方有以下行
require recipes-kernel/linux/linux-yocto.inc
Run Code Online (Sandbox Code Playgroud)
引用 a 的 SRC_URI.cfg
应该可以工作。
但是,禁用内核选项的方法不是将其设置为=0
。相反,它应该设置为
# CONFIG_USB is not set
Run Code Online (Sandbox Code Playgroud)
换句话说,这就是您的.cfg
文件中应该包含的行。另外,请确保文件中没有相互矛盾的选项.cfg
。
更新:
再次注意,这要求您的内核配方包含以下行
require recipes-kernel/linux/linux-yocto.inc
Run Code Online (Sandbox Code Playgroud)
为了让 yocto 内核工具正常工作。据我从meta-fsl-ppc: linux-qoriq.inc可以看到,这个食谱不包括该行。
.cfg
更新:请参阅 kergoth 的答案,实际上可以使用linux-qoriq
. 您只需在DELTA_KERNEL_DEFCONFIG
变量中命名它们即可。
归档时间: |
|
查看次数: |
3277 次 |
最近记录: |