不知道什么原因,每次我按照下面的步骤编辑安装内核的时候,编译出来的源码都只有很少几个,球大神帮忙看一下是哪里不对!
bash
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.30.tar.gz tar -zxvf linux-3.2.30.tar.gz cd linux-3.2.30 make menuconfig # 选择了KVM相关的模块,其他的使用默认选项 make modules
编译结果显示安装了的内核模块只有下面几个:
Building modules, stage 2.
MODPOST 7 modules
CC arch/x86/kernel/test_nx.mod.o
LD [M] arch/x86/kernel/test_nx.ko
CC arch/x86/kvm/kvm-intel.mod.o
LD [M] arch/x86/kvm/kvm-intel.ko
CC arch/x86/kvm/kvm.mod.o
LD [M] arch/x86/kvm/kvm.ko
CC drivers/hid/hid-logitech-dj.mod.o
LD [M] drivers/hid/hid-logitech-dj.ko
CC drivers/scsi/scsi_wait_scan.mod.o
LD [M] drivers/scsi/scsi_wait_scan.ko
CC drivers/vhost/vhost_net.mod.o
LD [M] drivers/vhost/vhost_net.ko
CC net/netfilter/xt_mark.mod.o
LD [M] net/netfilter/xt_mark.ko
请问这是什么原因?
ps: 安装重启之后不能上网,很多功能没有!
自己动手,丰衣足食。
上StackOverflow上搜了下,发现确实有人遇到过跟我一样的问题啊:
http://stackoverflow.com/questions/6307206/command-make-modules-doesnt...
原因跟我预想的一样,在执行
make menuconfig
的时候,config程序会根据当前系统的模块选项来生成.config中的配置选项,也就是说,将当前系统的配置作为新系统的默认配置。而当前系统安装了xen,所以可能导致config程序无法识别当前系统的配置情况,导致生成的默认配置中,所有的模块都没有被选中。执行
make modules
的时候自然也不会被编译。解决办法:
1. 下载同样的源码到一台纯净的linux服务器上,执行
make menuconfig
,使用默认的配置,然后退出保存;2.
vim .config
查看生成的配置文件,新的有5000+行配置,而有问题的配置文件只有2000+行;3. 将生成的.config文件拷贝到要编译内核的机器上,替换linux源码目录的.config文件,重新
make menuconfig
,添加需要的模块选项,再make all
;