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来编译模块。


更新中...

内核模块编译时出现的问题解决

第一次把自己编译的驱动模块加载进开发板,就出现问题,还好没花费多长时间,下面列举出现的问题及解决方案      1:出现insmod: error inserting 'hello.ko': -1 I...
  • manchestermi
  • manchestermi
  • 2015年09月01日 00:37
  • 1478

全面解析Linux 内核 3.10.x - 开始编译<一>

From: ongoingcre 一切手工技艺,皆由口传心授 - 夏奈尔首席鞋匠 1、内核编译体系 - Kbuild貌似是从2.6开始,内核编译就开始采用Kbuild体系! Kbuild几点观念:...
  • ongoingcre
  • ongoingcre
  • 2015年11月11日 22:56
  • 6016

Linux内核配置和编译过程详解

一、引言:  本文档的内容大部份内容都是从网上收集而来,然后配合一些新的截 图(内核版本:V2.4.19)。在每一配置项后会有一个选择指南的部份,用来指导大家怎么样 根据自己的情况来做相应的选择;还...
  • qq_29350001
  • qq_29350001
  • 2016年05月24日 12:48
  • 7837

linux内核编译错误记录

1.ERROR: the symlink include/asm points to asm-x86 but asm-arm was expected        set ARCH or save...
  • qdlovecsj
  • qdlovecsj
  • 2011年10月10日 17:15
  • 514

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

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

linux内核编译——redhat9+vm7+2.6.10

  • 2011年11月16日 22:15
  • 437KB
  • 下载

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
  • 1674

linux内核编译的错误收集

1、arm-eabi-ld:arch/arm/kernel/vmlinux.lds:335: ignoring invalid character `#' in expression 出现这个时一定要...
  • djlife520
  • djlife520
  • 2014年01月15日 01:06
  • 776

Linux内核编译实战

Linux-2.6.10内核源码下载地址:http://www.softpedia.com/progDownload/Linux-Kernel-Download-10448.html这是linux-2...
  • yyjsword
  • yyjsword
  • 2011年02月11日 09:59
  • 159

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

编置内核包含两大项内容,即配置内核和编译内核。这两项工作需要经常查看内核的文档,至少要查看Readme文件和Documentation目录下的Changes文件。它们对内核进行了描述,比如升级内核可能...
  • yyjsword
  • yyjsword
  • 2011年02月11日 10:03
  • 178
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 内核编译实战——内核编译错误汇总
举报原因:
原因补充:

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