想学习编译内核。像老手请教几个个问题,呵呵~ 谢谢你们的帮助了
1.我看书上说:内核的命名是:
主版本号-次版本号-修正版本号
但是我到www.kernel.org去下载,看到的却是2.6.22.1,后面这个.1是什么啊?
2.还有就是我看的网上教程是这样的
sudo make dep //也许系统会提示现在不必要进行make dep,那就下一步
sudo make clean //清除旧数据
sudo make bzImage //编译内核,bzImage是你给该新内核起的名字,将保存到/usr/src/linux/arch/i386/boot/下
sudo make modules //编译模块
sudo make bzImage install //安装内核
sudo make modules_install //安装模块
sudo mkinitramfs -o /boot/initrd.img-2.6.21.1 2.6.21.1
前面的有注释都明白,最后这一步是干什么的?
3.教程上说,以上面步骤(除了sudo mkinitramfs -o /boot/initrd.img-2.6.21.1 2.6.21.1这步)
都完成了之后,就会有/lib/modules/linux-2.6.21.1和/boot/vmlinuz-2.6.21.1
但是为什么我在实际编译的时候是得到了/lib/modules/2.6.22.1和/boot/vmlinuz-2.6.21.151
上面两个的文件名 一个是.1 一个是.151,这是为什么?是我操作的问题吗?
正因为这个,我想接着教程做sudo mkinitramfs -o /boot/initrd.img-2.6.22.1 2.6.22.1这步就不行了
4./boot/grub/menu.lst里的启动项,是
kernel /vmlinuz-2.6.15.1 root=/dev/sdb1 ro
initrd /initrd.img-2.6.15.1
但是我去根目录下,ls却看不见这两个文件,只有两个软链接,名字分别是vmlinuz和initrd
这是为什么?我把menu.lst中改成
kernel /boot/vmlinuz-2.6.15.1 root=/dev/sdb1 ro
initrd /boot/initrd.img-2.6.15.1
却进不了系统了,为什么啊?vmlinuz-2.6.15.1和initrd.img-2.6.15.1这两个文件,分明是存在于/boot/啊
罗里啰唆说了这些问题,麻烦高手耐心解答啊~ 呵呵
编译内核……
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
- jarryson
- 帖子: 4002
- 注册时间: 2005-08-14 19:53
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: 编译内核……
thesunxy 写了:想学习编译内核。像老手请教几个个问题,呵呵~ 谢谢你们的帮助了
1.我看书上说:内核的命名是:
主版本号-次版本号-修正版本号
但是我到www.kernel.org去下载,看到的却是2.6.22.1,后面这个.1是什么啊?
major.minor.patchlevel.x
major是主版本号 minor是次版本号 patchlevel是修订次数
最后一位是开发者对于当前修订再细分的修订次数
2.还有就是我看的网上教程是这样的
sudo make dep //也许系统会提示现在不必要进行make dep,那就下一步
sudo make clean //清除旧数据
sudo make bzImage //编译内核,bzImage是你给该新内核起的名字,将保存到/usr/src/linux/arch/i386/boot/下
sudo make modules //编译模块
sudo make bzImage install //安装内核
sudo make modules_install //安装模块
sudo mkinitramfs -o /boot/initrd.img-2.6.21.1 2.6.21.1
前面的有注释都明白,最后这一步是干什么的?
最后一步是生成initrd文件 2.4的内核需要这个
你看的教程比较老了 其实不需要这么复杂的 只要3步就可以了
sudo make //编译
sudo make modules_install//安装模块
sudo make install//自动把相关文件复制到/boot 并且自动修改menu.lst文件
3.教程上说,以上面步骤(除了sudo mkinitramfs -o /boot/initrd.img-2.6.21.1 2.6.21.1这步)
都完成了之后,就会有/lib/modules/linux-2.6.21.1和/boot/vmlinuz-2.6.21.1
但是为什么我在实际编译的时候是得到了/lib/modules/2.6.22.1和/boot/vmlinuz-2.6.21.151
上面两个的文件名 一个是.1 一个是.151,这是为什么?是我操作的问题吗?
正因为这个,我想接着教程做sudo mkinitramfs -o /boot/initrd.img-2.6.22.1 2.6.22.1这步就不行了
这步可以不做的
4./boot/grub/menu.lst里的启动项,是
kernel /vmlinuz-2.6.15.1 root=/dev/sdb1 ro
initrd /initrd.img-2.6.15.1
但是我去根目录下,ls却看不见这两个文件,只有两个软链接,名字分别是vmlinuz和initrd
这是为什么?我把menu.lst中改成
kernel /boot/vmlinuz-2.6.15.1 root=/dev/sdb1 ro
initrd /boot/initrd.img-2.6.15.1
却进不了系统了,为什么啊?vmlinuz-2.6.15.1和initrd.img-2.6.15.1这两个文件,分明是存在于/boot/啊
这步也可以不做的
罗里啰唆说了这些问题,麻烦高手耐心解答啊~ 呵呵
目前负债150多万