fedora15内核编译

我的笔记本是联想的s205,在装上fedora15后,无线网不能正常开启,每次都要rmmod acer_wmi才能正常使用;再加上一些其他的原因,想编译内核试试。

既然自己编译嘛,就用目前最新的3.0咯。

不过,fedora15的维护团队考虑了兼容性问题,把linux3.0硬是改成了linux2.6.40来使用。详情可参考这篇文章http://linuxtoy.org/archives/fedora-15-2-6-40-kernel.html

所以,下载的3.0内核派不上用场咯。还是去编译linux2.6.40内核吧。详细步骤这里有官方的文档http://fedoraproject.org/wiki/Docs/CustomKernel#Get_the_Source

但是这个文档有点小问题,如果完全按照他的操作,自己配置的内核参数,或make localmodconfig,是不能生效的。

原因如下:

kernel.spec:1088

# Dynamically generate kernel .config files from config-* files
make -f %{SOURCE20} VERSION=%{version} configs

编译时用到的.config是自动生成的,生成的规则在:

Source20: Makefile.config

然后看Makefile.config:19

configs: $(CONFIGFILES)

这个CONFIGFILES是这样定义的:

CFG             = kernel-$(VERSION)

 CONFIGFILES     = \
         $(CFG)-i686.config $(CFG)-i686-debug.config \
         $(CFG)-x86_64.config $(CFG)-x86_64-debug.config \
         $(CFG)-s390x.config $(CFG)-arm.config \
         $(CFG)-ppc.config $(CFG)-ppc-smp.config \
         $(CFG)-sparc64.config  \
         $(CFG)-ppc64.config $(CFG)-ppc64-debug.config \
         $(CFG)-ia64.config

自己的笔记本嘛,当然是i686架构的,而且不需要搞什么调试。所以需要这个文件:kernel-2.6.40-i686.config。那这个文件是怎么来的呢?

看了一下他写的编译脚本,有点雾雾的,不如直接看编译时的打印信息吧:

……

cat config-generic config-nodebug > temp-generic
perl merge.pl config-x86-generic temp-generic  > temp-x86-generic
perl merge.pl /dev/null temp-x86-generic i386 > kernel-2.6.40-i686.config

……

嗯,kernel-2.6.40-i686.config是由config-x86-generic文件转过来的~(config-generic和config-nodebug貌似没什么用)

这就是问题的所在,官方文档里在配置完内核后,保存为config-i686,而实际上用的是config-x86-generic

好,改名字,编译。结果报错……

在kernel.spec的1288处:

# now run oldconfig over all the config files
 for i in *.config
 do
   mv $i .config
   Arch=`head -1 .config | cut -b 3-`
   make ARCH=$Arch listnewconfig | grep -E '^CONFIG_' >.newoptions || true
 %if %{listnewconfig_fail}
   if [ -s .newoptions ]; then
     cat .newoptions
     exit 1
   fi

我不明白他make listnewconfig是什么目的……不过不要紧,注意到这是在一个循环中,是为各种不同的内核生成.config。查了查输出信息,是在编译i686-PAE内核时报的错。我笔记本内存2g,不用PAE内核,哦也~

于是把Makefile.config里的CONFIGFILES变量改改,去掉PAE的依赖。

哈,编译成功,结束后直接生成了rpm包,爽啊,^_^

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值