[转帖]内核编译
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 51
- 注册时间: 2008-01-01 22:30
[转帖]内核编译
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/啊
这步也可以不做的
主版本号-次版本号-修正版本号
但是我到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/啊
这步也可以不做的
- 冲浪板
- 论坛版主
- 帖子: 7513
- 注册时间: 2007-05-06 8:19
-
- 帖子: 51
- 注册时间: 2008-01-01 22:30
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
代码: 全选
make mrproper
make oldconfig
make menuconfig
{ time make-kpkg --rootcmd fakeroot --initrd --bzimage --append-to-version=-ac-$TODAY binary modules ; } 2>&1 | tee ../make-$TODAY.log
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
- skyx
- 论坛版主
- 帖子: 9202
- 注册时间: 2006-12-23 13:46
- 来自: Azores Islands
- 联系:
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- skyx
- 论坛版主
- 帖子: 9202
- 注册时间: 2006-12-23 13:46
- 来自: Azores Islands
- 联系:
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- skyx
- 论坛版主
- 帖子: 9202
- 注册时间: 2006-12-23 13:46
- 来自: Azores Islands
- 联系: