linux 内核编译实战——内核编译错误汇总

原创 2013年12月01日 22:06:39

摘要:在进行linux内核开发中,编译内核是一项基本技能。在这项技能中,可以说,无法启动内核的时候,也是我们能够学习最多的时候。本文主要总结linux内核编译过程中出现的各种错误和解决方法。既有针对原生态的内核,也有针对发行版的内核。


本文来源:linux 内核编译实战——内核编译错误汇总


1.config阶段


1)由于在本机上,已经存在一个内核。当我们再次编译内核的时候,由于内核版本相同,导致新内核覆盖原来的内核。

解决方法:修改.config中的版本号码LOCALVERSION


2.make阶段


1)centos 6.4 make阶段,出现提示信息:crypto/signature/ksign-publickey.c: key.h: No such file or directory

解决方法:

1) Select "Enable loadable module support", then "Module signature verification (EXPERIMENTAL)". Disable it.
2) Then go back to the main menu, select "Cryptographic API" then "In-kernel signature checker (EXPERIMENTAL)" and disable that one too.
Then go back again, save your config and make your kernel. At least, it will pass this phase successfully.


3.make install阶段


1)centOS 6.4 make install阶段,出现错误信息:ERROR: modinfo: could not find module vmhgfs


原因分析:在make install时,为了让新内核中不缺少所需module,会先检查当前系统已经加载了的module(lsmod命令可查看),然后对比新安装的内核模块,如果新的内核模块中缺少一些module(和当前lsmod命令的输出做对比),就会报“ERROR: modinfo: could not find module power_meter”这样的错误信息。

具体来说,缺少相应module而报错,大致可分为3种情况:
1. 确实是缺少了某个module,其解决方法是:如果报的module对于你来说是有用,检查编译kernel时的.config文件,加上对应的配置(配为=m),重新编译和安装modules即可;如果你觉得这个module没啥用,大可不必管它了。

2. 新编译的kernel已经将该选项编译进kernel了(.config中选择为=Y),从而不需要生成这个module的.ko文件,系统找不到对应的.ko文件,但是已经在新内核中了,不必理会这个报错。例如,上面的“ERROR: modinfo: could not find module ext4”是因为我将EXT4文件系统模块编译为built-in了,如下:

3. 模块的名称变了,用当前系统lsmod命令查找的模块名称,在新编译的内核中找不到module了。只需要检查确认即可,如这里的“ERROR: modinfo: could not find module power_meter”就是这种类型,检查方式如下:

4.在centos 6.4中,还有可能存在另外一种情况:用于没有运行make modules

在原生态的内核中,运行make all就包含make modules,但是centOS却不是这样,需要运行make modules来编译模块。


更新中...

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

编译内核常见错误

from: http://blog.chinaunix.net/uid-22278460-id-1777662.html 今天搭建编译环境的时候老是出错,现把一些问题以及解决方法记录下来。 make...

linux内核编译错误记录

1.ERROR: the symlink include/asm points to asm-x86 but asm-arm was expected        set ARCH or save...

记一次由于rootfs过大引起的内核编译错误

记一次由于rootfs过大引起的内核编译错误 前些日子一直在用NFS作为rootfs启动。今日想用initramfs作为rootfs制作独立运行的系统。 可是内核编译到链接阶段一直报这个错误 L...

Linux内核编译实战

Linux-2.6.10内核源码下载地址:http://www.softpedia.com/progDownload/Linux-Kernel-Download-10448.html这是linux-2...

Linux内核编译时错误

Linux内核剪裁编译时出来错误,如下 [root@yang linux-2.6.24.4]# make menuconfig make: Warning: File `/UP-Magic/exp/...
  • ys_073
  • ys_073
  • 2012-11-25 17:59
  • 1382

linux内核编译的错误收集

1、arm-eabi-ld:arch/arm/kernel/vmlinux.lds:335: ignoring invalid character `#' in expression 出现这个时一定要...

Linux内核编译实战-Linux配置与编译内核

编置内核包含两大项内容,即配置内核和编译内核。这两项工作需要经常查看内核的文档,至少要查看Readme文件和Documentation目录下的Changes文件。它们对内核进行了描述,比如升级内核可能...

初探Linux——内核编译

linux内核源码编译安装

linux内核编译问题——undefined reference to `error'

内核版本 2.6.33.9 make zImage时出现如下错误: LD arch/arm/boot/compressed/vmlinux arch/arm/boot/compres...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)