原文出处:http://blog.csdn.net/qq174181597/article/details/8178596
内容为:
scripts/kconfig/conf -s arch/x86/Kconfig CHK include/linux/version.h CHK include/linux/utsrelease.h SYMLINK include/asm -> include/asm-x86 CALL scripts/checksyscalls.sh CHK include/linux/compile.h CC crypto/signature/ksign-publickey.o crypto/signature/ksign-publickey.c:2:17: error: key.h: No such file or directory crypto/signature/ksign-publickey.c: In function ‘ksign_init’: crypto/signature/ksign-publickey.c:10: error: ‘ksign_def_public_key’ undeclared (first use in this function) crypto/signature/ksign-publickey.c:10: error: (Each undeclared identifier is reported only once crypto/signature/ksign-publickey.c:10: error: for each function it appears in.) crypto/signature/ksign-publickey.c:11: error: ‘ksign_def_public_key_size’ undeclared (first use in this function) make[2]: *** [crypto/signature/ksign-publickey.o] Error 1 make[1]: *** [crypto/signature] Error 2 make: *** [crypto] Error 2
1) Select “Enable loadable module support”, then “Module signature verification (EXPERIMENTAL)”. Disable it. |
但是自己初学Linux内核,看不懂到底该怎么做,于是请教了这篇博文的作者,加了他QQ,问清楚怎么做了,真的谢谢他!那么具体怎么做呢?是这样地:
make menuconfig make all make modules_install make install reboot |
手动编译内核时,需要五个步骤,如上所示,上述问题出现在第二步(make all),但需要在第一步(make menuconfig)解决。在make menuconfig时会出现下图所示的界面,就是在这里进行设置啦。
首先使用上下键把光标移动到“Enable loadable module support”栏,回车进入,再把光标移到“Module signature verification (EXPERIMENTAL)”,把它关掉(Disable it),也就是字母n键(相反y键是开)。
左右键选择Exit回到刚才的界面,再次移动光标到“Cryptographic API”,进入,移动光标到“In-kernel signature checker (EXPERIMENTAL)”,同样的方法,关掉(Disable it)。退出,在退出。然后进行手工编译内核的第二步make all。OK,大功告成,谢谢原作者,很热心啊。