今天编译kernel报了一个莫名其妙的错误:
*** Error during update of the kernel configuration.
make[2]: *** [silentoldconfig] 错误 1
make[1]: *** [silentoldconfig] 错误 2
CHK include/linux/version.hmake[1]: “include/asm-arm/mach-types.h”是最新的。
make: *** 没有规则可以创建“include/config/kernel.release”需要的目标“include/config/auto.conf”。 停止
开始搞不懂为什么,冷静下来,稍微想了一下,恍然大悟。原因就在于ubuntu用户的切换。过程是这样的:
我先用”sudo -s”切换到root用户,在root下面进行make,这就导致了make生产的配置文件owner是root。后来因为要使用git远程更新代码,于是exit到了普通用户。更新完代码之后,我就直接在普通用户下make kernel,然后就报错了。
知道原因后,解决这个问题的方法就很显然了:
1、切回到root去make kernel。
2、change整个kernel目录下所有文件及文件夹的权限和owner。
本文详细阐述了在Ubuntu环境下用户切换导致内核编译错误的问题,并提供了解决方案。通过理解错误产生的原因,即内核配置文件的所有权问题,读者能够轻松避免此类问题并顺利完成内核编译。
996

被折叠的 条评论
为什么被折叠?



