我需要一台 Gentoo 13 机器来测试平台上的一些软件。我不是 Gentoo 的常客,所以我很讨厌他们的安装程序。我现在配置 Linux 内核,但失败了:
(chroot) # genkernel all
...
Documentation/vDSO/parse_vdso.o: In function `elf_hash':
parse_vdso.c:(.text+0xa4): undefined reference to `__stack_chk_fail'
Documentation/vDSO/parse_vdso.o: In function `vdso_init_from_sysinfo_ehdr':
parse_vdso.c:(.text+0x445): undefined reference to `__stack_chk_fail'
Documentation/vDSO/parse_vdso.o: In function `vdso_match_version':
parse_vdso.c:(.text+0x545): undefined reference to `__stack_chk_fail'
Documentation/vDSO/parse_vdso.o: In function `vdso_sym':
parse_vdso.c:(.text+0x6fa): undefined reference to `__stack_chk_fail'
Documentation/vDSO/parse_vdso.o: In function `vdso_init_from_auxv':
parse_vdso.c:(.text+0x7b5): undefined reference to `__stack_chk_fail'
这是一个众所周知的问题,解决方法是设置CONFIG_BUILD_DOCSRC=n
(参见这里和这里)。
我CONFIG_BUILD_DOCSRC
在两个配置文件中找到了,但都标记为自动生成,请勿编辑。所以我试图传递CONFIG_BUILD_DOCSRC=n
给genkernel
。我浏览过genkernel(8)
手册页,但我没有看到如何传递像这样的任意设置CONFIG_BUILD_DOCSRC=n
(它可能在那里,但我可能错过了它)。
我尝试过genkernel all CONFIG_BUILD_DOCSRC=n
,但结果却是error: unknown option...
。
我如何传递CONFIG_BUILD_DOCSRC=n
给genkernel
?
答案1
我要发布一个答案,但我不确定它是否正确,因为我没有资格构建内核......
以下内容可添加到/etc/genkernel.conf
:
CONFIG_BUILD_DOCSRC="n"
它看起来产生了预期的结果:
(chroot) Gentoo-2012 / # genkernel all
* Gentoo Linux Genkernel; Version 3.4.52.3
* Running with options: all
* Using genkernel.conf from /etc/genkernel.conf
* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..
* Linux Kernel 4.1.15-gentoo-r1 for x86_64...
* .. with config file /usr/share/genkernel/arch/x86_64/generated-config
* kernel: Using config from /usr/share/genkernel/arch/x86_64/generated-config
* Previous config backed up to .config--2016-03-14--02-25-26.bak
* kernel: >> Running mrproper...
* >> Running oldconfig...
* kernel: >> Cleaning...
* >> Compiling 4.1.15-gentoo-r1 bzImage...
...
答案2
make menuconfig
当然,您应该先使用或配置内核make nconfig
(我个人更喜欢后者)
在 menuconfig/nconfig 中,搜索“BUILD_DOCSRC”,然后取消选择它。