【问题标题】:Linux kernel defconfig options not in resulting .config using BuildRootLinux 内核 defconfig 选项未使用 BuildRoot 生成 .config
【发布时间】:2017-06-26 11:26:53
【问题描述】:

我正在通过 BuildRoot 为 arm 目标构建内核版本 2.6.39.4。

我正在使用自定义 defconfig 文件,我在其中添加了以下 3 个选项:

CONFIG_WIRELESS=y
CONFIG_WEXT_PRIV=y
CONFIG_WIRELESS_EXT=y

在生成的内核.config 文件中,我在添加到defconfig 的3 个选项中看到的唯一选项是CONFIG_WIRELESS=y

这正常吗?我知道一些内核配置选项是“隐藏的”,但这会阻止它们出现在内核的最终.config 中吗?

【问题讨论】:

    标签: linux kernel buildroot


    【解决方案1】:

    WEST_PRIVWIRELESS_EXT 都是盲选项(即它们没有提示,它们在 menuconfig/xconfig 中不可见)。
    因此,您不能简单地在 .config(或 defconfig)文件中设置它们的值。
    仅当另一个选项 selects 时才会启用它们。
    所以你必须启用一些可见的相关选项,然后自动selectWEXT_PRIVWIRELESS_EXT

    【讨论】:

    • 只是澄清一下:有没有,我们称它们为“子选项”,在选择它们的“父选项”之前它们是不可见的?基本上,如果我希望 WEST_PRIVWIRELESS_EXT 出现在配置中,我需要先选择它们的父选项。或者您是说只有一些选项始终是盲选项,并且永远不会出现在内核的结果 .config 中?
    • @BackDoorNoBaby " 在那里,我们称它们为“子选项”..." -- 您正在混淆一个仅在 menuconfig 中出现的选项“取决于..." 依赖项是通过盲选项启用的。 ThomasPetazzoni 称其为盲目选项,因为它从未出现在 menuconfig 中。您的 defconfig 已被修剪,并且删除了不必要的选项,因为没有选择那些盲选项的启用选项。如果您确实有一个启用的选项(自动选择那些盲选项),那么这些盲选项将在 .config 文件中。
    【解决方案2】:

    我遇到了同样的问题,我通过设置 CONFIG_HOSTAP=y 解决了它。此选项也会导致设置以下选项:

    CONFIG_WIRELESS=y
    CONFIG_WIRELESS_EXT=y
    CONFIG_WEXT_CORE=y
    CONFIG_WEXT_PROC=y
    CONFIG_WEXT_SPY=y
    CONFIG_WEXT_PRIV=y
    
    CONFIG_WLAN=y
    
    CONFIG_LIB80211=y
    CONFIG_LIB80211_CRYPT_WEP=y
    CONFIG_LIB80211_CRYPT_CCMP=y
    CONFIG_LIB80211_CRYPT_TKIP=y
    

    我已经验证,仅在 defconfig 中设置 CONFIG_HOSTAP=y 确实会导致在使用 buildroot 时在 .config 中启用上述选项。

    【讨论】:

      【解决方案3】:

      这里是一些内核版本的解决方案: https://lkml.org/lkml/2019/9/6/787

      此补丁添加了选择 wext_* 配置的父级。 稍后您需要转到您的电路板配置,即: 拱/臂/配置/imx_v7_android_defconfig 并添加行: CONFIG_WIRELESS_ALLCONFIG=y

      然后重新编译内核,即:在Android上你这样做: make -j32 内核映像

      【讨论】:

        猜你喜欢
        • 2011-05-18
        • 2016-09-10
        • 2019-10-21
        • 1970-01-01
        • 2019-10-13
        • 1970-01-01
        • 1970-01-01
        • 2019-10-04
        • 2018-10-28
        相关资源
        最近更新 更多