Linux-Kernel

make savedefconfig 會失去配置選項嗎?

  • February 2, 2018

我試圖了解我在這裡做錯了什麼。我的印像是make savedefconfig將一個配置減少到(等效的)最低限度。

所以這是我的步驟,直接從 Debian 包中獲取一個配置文件:

$ dpkg -S /boot/config-4.14.0-3-powerpc
linux-image-4.14.0-3-powerpc: /boot/config-4.14.0-3-powerpc
$ apt-cache policy linux-image-4.14.0-3-powerpc
linux-image-4.14.0-3-powerpc:
 Installed: 4.14.13-1
 Candidate: 4.14.13-1
 Version table:
*** 4.14.13-1 500
       500 http://ftp.fr.debian.org/debian sid/main powerpc Packages
       100 /var/lib/dpkg/status

將其複製到我的主機:

$ scp macminig4:/boot/config-4.14.0-3-powerpc ./arch/powerpc/configs/my_defconfig

驗證我想玩的選項是否仍然存在:

$ grep CONFIG_SSB_B43_PCI_BRIDGE ./arch/powerpc/configs/my_defconfig
CONFIG_SSB_B43_PCI_BRIDGE=y

現在讓我們更新它,因為它與 git v4.14 不完全同步:

$ git checkout v4.14
$ make ARCH=powerpc my_defconfig
$ diff -u .config ./arch/powerpc/configs/my_defconfig | diffstat
my_defconfig |    8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

所以發生了一些小的變化,但沒有什麼不好,至少我仍然可以看到我的選擇:

$ grep CONFIG_SSB_B43_PCI_BRIDGE .config
CONFIG_SSB_B43_PCI_BRIDGE=y

現在讓我們試試 savedefconfig:

$ make ARCH=powerpc savedefconfig
 HOSTCC  scripts/basic/fixdep
 HOSTCC  scripts/basic/bin2c
 HOSTCC  scripts/kconfig/conf.o
 SHIPPED scripts/kconfig/zconf.tab.c
 SHIPPED scripts/kconfig/zconf.lex.c
 HOSTCC  scripts/kconfig/zconf.tab.o
 HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --savedefconfig=defconfig Kconfig

如果我現在檢查我的選項現在永遠失去:

$ grep CONFIG_SSB_B43_PCI_BRIDGE defconfig 
-> nothing !

為什麼有些選項會消失?有沒有辦法控制savedefconfig保留一些選項?

事實證明,這只是一個糟糕的時機。git/master(實際上是 4.15)受以下因素影響:

將舊筆記型電腦升級到 4.15-rc9 後,發現 eth0 和 wlan0 介面消失了。事實證明,b43 和 b44 驅動程序需要 SSB_PCIHOST_POSSIBLE,它依賴於 PCI_DRIVERS_LEGACY,這是一個僅存在於 Mips 上的配置選項。

引用自:https://unix.stackexchange.com/questions/421479