[转帖]内核编译

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
wyylling
帖子: 51
注册时间: 2008-01-01 22:30

[转帖]内核编译

#1

帖子 wyylling » 2008-03-02 7:33

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/啊
这步也可以不做的
头像
冲浪板
论坛版主
帖子: 7513
注册时间: 2007-05-06 8:19

#2

帖子 冲浪板 » 2008-03-02 8:52

其实知道程序都做了什么、哪些动作是必须的才是正道;
各种工具乱七八糟的,有的时候替你做某些事,有的时候又让你自己做,换了版本,工具也可能变化,太乱;
所以知道什么是“对”的才好;
wyylling
帖子: 51
注册时间: 2008-01-01 22:30

测试本

#3

帖子 wyylling » 2008-03-02 9:17

头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#4

帖子 BigSnake.NET » 2008-03-02 10:20

代码: 全选

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
只要4步
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#5

帖子 skyx » 2008-03-02 10:36

本论坛的精华贴,更权威和有针对性:

viewtopic.php?t=72333
no security measure is worth anything if an attacker has physical access to the machine
头像
windwiny
帖子: 2254
注册时间: 2007-03-13 17:26

#6

帖子 windwiny » 2008-03-02 10:37

要么就老实一点,照源码包的里的 说明来做,

要么用什么发行版,就用什么发行版提供的工个来做
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#7

帖子 BigSnake.NET » 2008-03-02 10:39

skyx 写了:本论坛的精华贴,更权威和有针对性:

viewtopic.php?t=72333
如果我想用新版源码.. 或者原版内核...
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#8

帖子 skyx » 2008-03-02 11:04

BigSnake.NET 写了:
skyx 写了:本论坛的精华贴,更权威和有针对性:

viewtopic.php?t=72333
如果我想用新版源码.. 或者原版内核...
用7.10时,可以用8.04的内核源码呀,

用8.04时,可以用8.10的内核源码呀

................
no security measure is worth anything if an attacker has physical access to the machine
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#9

帖子 BigSnake.NET » 2008-03-02 11:30

skyx 写了:
BigSnake.NET 写了:
skyx 写了:本论坛的精华贴,更权威和有针对性:

viewtopic.php?t=72333
如果我想用新版源码.. 或者原版内核...
用7.10时,可以用8.04的内核源码呀,

用8.04时,可以用8.10的内核源码呀

................
这个........ -_-!...
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
skyx
论坛版主
帖子: 9202
注册时间: 2006-12-23 13:46
来自: Azores Islands
联系:

#10

帖子 skyx » 2008-03-02 11:33

BigSnake.NET 写了:
skyx 写了:
BigSnake.NET 写了:
skyx 写了:本论坛的精华贴,更权威和有针对性:

viewtopic.php?t=72333
如果我想用新版源码.. 或者原版内核...
用7.10时,可以用8.04的内核源码呀,

用8.04时,可以用8.10的内核源码呀

................
这个........ -_-!...
我败退
no security measure is worth anything if an attacker has physical access to the machine
回复