LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2952|回复: 9

编译4次内核的痛苦实践,希望对大家有所帮助

[复制链接]
发表于 2006-8-11 09:13:39 | 显示全部楼层 |阅读模式
debian:~#  wget http://www.kernel.org/pub/linux/ ... ux-2.6.17.8.tar.bz2
1.apt-get install kernel-package fakeroot libncurses5-dev
2.下一步是把下载下来的linux-2.6.17.8.tar.bz2这个文件复制到 /usr/src/中,然后
debian:~#  tar xjvf linux-2.6.17.8.tar.bz2
生成linux-2.6.17.8文件夹


make menuconfig 进入配置内核的配置模式 ;配置之后

3编译内核

debian:~#  make
debian:~#  make modules_install

这样就编译好了,并把模块也安装在了 /lib/modules目录中了,请看:
debian:~#  ls /lib/modules/

2.6.17.8 2.6.8-2-386


4为Debian 安装内核;

debian:~#  cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.17.8
debian:~#  cp System.map /boot/System.map-2.6.17.8
debian:~#  cd /boot
debian:~#  mkinitrd -o /boot/initrd-2.6.17.8.img 2.6.17.8 这个是用来创新initrd映像的,不创建这个文件,有时是启动不起来的,比如提示VFS错误等;
5做最后冲刺:
修改/boot/grub/menu.lst文件,以下是我机器上的例子(修改前)

title                Debian GNU/Linux, kernel 2.6.8-2-386
root                (hd0,0)
kernel                /vmlinuz-2.6.8-2-386 root=/dev/hda2 ro
initrd                /initrd.img-2.6.8-2-386
savedefault
boot

title                Debian GNU/Linux, kernel 2.6.8-2-386 (recovery mode)
root                (hd0,0)
kernel                /vmlinuz-2.6.8-2-386 root=/dev/hda2 ro single
initrd                /initrd.img-2.6.8-2-386
savedefault
boot

以下是我机器上的例子(修改后)


title                Debian GNU/Linux, kernel 2.6.17.8-386(Nanjing Fourestry University)
root                (hd0,0)
kernel                /vmlinuz-2.6.17.8 root=/dev/hda2 ro
initrd                /initrd.img-2.6.17.8
savedefault
boot


title                Debian GNU/Linux, kernel 2.6.8-2-386
root                (hd0,0)
kernel                /vmlinuz-2.6.8-2-386 root=/dev/hda2 ro
initrd                /initrd.img-2.6.8-2-386
savedefault
boot

title                Debian GNU/Linux, kernel 2.6.8-2-386 (recovery mode)
root                (hd0,0)
kernel                /vmlinuz-2.6.8-2-386 root=/dev/hda2 ro single
initrd                /initrd.img-2.6.8-2-386
savedefault
boot
重启你的爱机,看到了吧
发表于 2006-8-11 09:36:32 | 显示全部楼层
------------>

问个问题:

如果把自己编的内核,,,封装成一个新的Debian基本安装光盘,,,应该如何做呢???

也就是说我现在编的内核在别的地方我还想使用!!!

------------->
回复 支持 反对

使用道具 举报

发表于 2006-8-11 10:23:52 | 显示全部楼层
楼主请安装 kernel-package这个包,还有debian-reference-zh-cndebian-reference-zh-cn这个包,然后请阅读 file:///usr/share/doc/Debian/reference/ch-system.zh-cn.html#s-non-debian-kernelfile:///usr/share/doc/Debian/reference/ch-system.zh-cn.html#s-non-debian-kernel
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-8-18 20:26:41 | 显示全部楼层
我用过了,可以不装的
回复 支持 反对

使用道具 举报

发表于 2006-8-18 21:41:46 | 显示全部楼层
楼主的方法是 kernel 官方的一般做法。
但在 debian 里,kernel 还是用 kernel-package 打成 deb 管理方便。
一是安装 kernel deb 后会自动帮改 grub 的 menu.lst,删除也方便,二是可以备份 kernel deb 供以后使用。

如果按楼主的方法,kernel-package fakeroot 都可以不装。
mkinitrd 也不一定要用的,把一些常用的的驱动直接编进内核就好了。
回复 支持 反对

使用道具 举报

发表于 2006-8-18 23:11:32 | 显示全部楼层
mkinitrd 也不一定要用的,把一些常用的的驱动直接编进内核就好了.

这个是我在玩完LFS之后才知道的
回复 支持 反对

使用道具 举报

发表于 2006-8-19 22:06:34 | 显示全部楼层
如果是debian系统不用这么麻烦的,推荐一篇文章吧:
http://fanqiang.chinaunix.net/system/linux/2005-05-02/3211.shtml
回复 支持 反对

使用道具 举报

发表于 2007-3-16 18:01:04 | 显示全部楼层
to xjl2005.
    兄弟我十分感谢你的帮助。我也是安装的Debian31r4.内核是2.4.27-2-386的,按照您写的成功升级到了2.6.20,只是有两点要补充,希望和你以及其他学习Debian的新手的兄弟们共同学习。
   1。是在debian:~# make
debian:~# make modules_install时,由于我采用的是默认的。所以大概用了两个小时才编译完。所以大家一定要有耐心。
   2。是在debian:~# mkinitrd -o /boot/initrd-2.6.17.8.img 2.6.17.8 时改成:
debian:~# mkinitrd -o /boot/initrd.img-2.6.17.8  2.6.17.8 否则的话,reboot后进不去新的内核里。
呵呵。总之,还是十分感谢xjl2005.希望您多写关于Debian的文章。为我们这些新手铺一条成功之路。呵呵。
回复 支持 反对

使用道具 举报

发表于 2007-3-17 00:23:55 | 显示全部楼层
etch已经不用mkinitrd来创建initrd文件了。
回复 支持 反对

使用道具 举报

发表于 2007-4-5 10:32:45 | 显示全部楼层
Post by zleoz
etch已经不用mkinitrd来创建initrd文件了。

那用什么啊?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表