免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 912 | 回复: 0
打印 上一主题 下一主题

kernel source tree来打造自己的kernel [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-17 13:42 |只看该作者 |倒序浏览

虽然RedHat有提供kernel的source
package(kernel-devel-xxxxx),且只要安装该套件后kernel source tree即会被放置在 /usr/src/kernels/ 目录下,但是若我们试着在该kernel
source tree里面进行complie的动作则会出现以下的错误讯息:『make[1]: *** No rule to make target `init/main.o', needed by
`init/built-in.o'. Stop.』。会造成这种情况的原因并不清楚,总之我们就是不能直接拿kernel-devel套件里面提供的kernel source tree来打造自己的kernel。因此我们必须要改用kernel-xxxxx.src.rpm还原出的kernel source tree来进行patch与compile的动作。
   所需要的套件:
kernel-2.6.9-55.EL.src.rpm (在此以2.6.9-55.EL这个版本为例)
一、从source rpm档案中还原出kernel source tree
1.rpm -ivh kernel-2.6.9-55.EL.src.rpm
相关的档案会被放置在 /usr/src/redhat 的子目录中(SOURCE,SPECS等),但在RPM
Database中将不会有这个套件的安装记录,此为正常现象。
2.cd /usr/src/redhat/SPECS
rpmbuild -bp kernel-2.6.spec –target=i686
此指令会把所有RedHat提供的patch档案patch至kernel source tree中,并将kernel source tree放置于
/usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9目录中。
二、Patch Distribution Kernel
1. 将patch档案复制到kernel source tree的root dir
eg. cp myhappy.patch /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
2. cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
  patch -p1
三、设定Kernel
1. cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
  make menuconfig
3. 此时会有选单出现,请将画面移到最下方选取 "Load An Alternate
Configuration File"
4. 开始设定kernel
四、编译kernel
1. cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
2. vi MakeFile
  EXTRAVERSION = -55-custom
修改EXTRAVERSION的值以免和原本的版本搞混,例如改为-55-custom则最后产生出来的kernel iamge为vmlinuz-2.6.9-55-custom。
3. make clean
注意!不能用make mrproper,否则会连.config(kernel设定档)也一并清除。
4. make bzImage
5. make modules
6. make modules_install
7. make install
8. 最后要记得修改 /boot/grub/grub.conf
注:
若是不想用 make install 来自动安装kernel
image,也可以改用手工安装。
1. 将kernel source tree中的arch/i386/boot/bzImage改名为vmlinux-2.6.9-55-custom
2. mkinitrd initrd-2.6.9-55-custom.img `2.6.9-55-custom`
3. cp /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/System.map \     /boot/System.map-2.6.9-55-custom
4. 将kernel与initrd images放置到 /boot目录,并修改 /boot/grub/grub.conf



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/39370/showart_402399.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP