如何停用内核选项?
How can I deactivate a kernel option?
我想在构建期间停用内核选项:
在内核配方的 .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
但我在文档中只发现了 less 并且无法关闭 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
只要你的内核配方有下面这行
require recipes-kernel/linux/linux-yocto.inc
a SRC_URI 引用 .cfg
应该可以。
但是,禁用内核选项的方法不是将其设置为=0
。相反,它应该设置为
# CONFIG_USB is not set
换句话说,这是您 .cfg
文件中应该包含的行。另外,请确保您在 .cfg
文件中没有相互矛盾的选项。
更新:
再次注意,这需要您的内核配方包含行
require recipes-kernel/linux/linux-yocto.inc
为了让 yocto 内核工具正常工作。据我所见 meta-fsl-ppc: linux-qoriq.inc 此食谱不包含该行。
更新:
请参阅 kergoth 的回答,实际上可以在 linux-qoriq
中使用 .cfg
文件。您只需要在 DELTA_KERNEL_DEFCONFIG
变量中命名它们。
如前一位评论者所述,您需要使用 # CONFIG_FOO is not set
而不是 CONFIG_FOO=n
。不过,我想做一个更正。 linux-qoriq 配方 确实 支持配置片段,它只是使用一个单独的变量来控制它们的使用,DELTA_KERNEL_DEFCONFIG
。有关详细信息,请参阅 recipes-kernel/linux/linux-qoriq.inc
中的 do_configure_prepend
。
在你的追加中,你应该可以添加这个来修复它:
DELTA_KERNEL_DEFCONFIG += "no_usb.cfg"
我想在构建期间停用内核选项:
在内核配方的 .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
但我在文档中只发现了 less 并且无法关闭 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
只要你的内核配方有下面这行
require recipes-kernel/linux/linux-yocto.inc
a SRC_URI 引用 .cfg
应该可以。
但是,禁用内核选项的方法不是将其设置为=0
。相反,它应该设置为
# CONFIG_USB is not set
换句话说,这是您 .cfg
文件中应该包含的行。另外,请确保您在 .cfg
文件中没有相互矛盾的选项。
更新:
再次注意,这需要您的内核配方包含行
require recipes-kernel/linux/linux-yocto.inc
为了让 yocto 内核工具正常工作。据我所见 meta-fsl-ppc: linux-qoriq.inc 此食谱不包含该行。
更新:
请参阅 kergoth 的回答,实际上可以在 linux-qoriq
中使用 .cfg
文件。您只需要在 DELTA_KERNEL_DEFCONFIG
变量中命名它们。
如前一位评论者所述,您需要使用 # CONFIG_FOO is not set
而不是 CONFIG_FOO=n
。不过,我想做一个更正。 linux-qoriq 配方 确实 支持配置片段,它只是使用一个单独的变量来控制它们的使用,DELTA_KERNEL_DEFCONFIG
。有关详细信息,请参阅 recipes-kernel/linux/linux-qoriq.inc
中的 do_configure_prepend
。
在你的追加中,你应该可以添加这个来修复它:
DELTA_KERNEL_DEFCONFIG += "no_usb.cfg"