日期:2014-05-16  浏览次数:20612 次

CentOS 6.2下编译Linux 3.2.13内核遇到错误
CentOS 6.2下编译Linux 3.2.13内核遇到错误
make执行成功,当make modules install时提示下面的错误,再执行make install有同样的错误。
grub.conf文件中新的启动项添加成功,重启选择新系统,当进度条读完后就停住了,没有进入登录界面。
这是什么原因呢,怎么解决?

C/C++ code

[root@py linux-3.2.13]# make modules install
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
  CALL    scripts/checksyscalls.sh
  CHK     include/generated/compile.h
  CHK     include/linux/version.h
  Building modules, stage 2.
  MODPOST 1919 modules
sh /home/py/code/linux-3.2.13/arch/x86/boot/install.sh 3.2.13 arch/x86/boot/bzImage \
        System.map "/boot"
ERROR: modinfo: could not find module rfcomm
ERROR: modinfo: could not find module sco
ERROR: modinfo: could not find module bnep
ERROR: modinfo: could not find module l2cap
ERROR: modinfo: could not find module iwlagn
ERROR: modinfo: could not find module iwlcore
ERROR: modinfo: could not find module nvidia
ERROR: modinfo: could not find module rsrc_nonstatic





------解决方案--------------------
那些没找到的modules都是你额外安装的驱动和固件,linux内核不自带

看到nvidia就很清楚了

安装新内核的话,所有的第三方驱动都要重新安装才行,而且,即便如此,也不能保证就能正常运行,因为发行版内核和官方内核特性不一定一致,发行版内核打了补丁,而且RedHat系的linux敢干,经常有跨版本的backports

而且,我不太明白在一个企业级linux上安装新内核干什么,看到那些第三方驱动有明显是真机而不是虚拟机,如果只是想学习编译内核的话,请使用虚拟机,基本上驱动不用额外安装第三方的
------解决方案--------------------
而且,你要注意,通常linux下二进制驱动和内核版本/gcc版本有紧密绑定,只要你的内核不是发行版官方的内核,那么发行版软件仓库所提供的那些二进制驱动(包里驱动是ko格式的)基本上也不能用,得下官网版本编译安装
------解决方案--------------------
要是对你的硬件十分熟悉就好了 ..
这样自己编译内核,就知道需要哪些驱动,不需要哪些驱动了