LinuxSir.cn,穿越时空的Linuxsir!

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

我想这样升级内核!

[复制链接]
发表于 2005-3-16 16:43:57 | 显示全部楼层 |阅读模式
第一次升级内核,看了m天n篇的文档,综合了网络上能找的到的升级资料,我准备这样去升级内核。还没动手,想先让大家看看是否可行!

slack10.1 kernel 2.4.29 ---> 2.6.11

2.6.11 内核升级
_________________________________________________________________
1.升级相关工具软件包: module-init-tools-3.0.tar.gz 和 modutils-2.4.26-9.i386.rpm

# cp module-init-tools-3.0.tar.gz /
# cp modutils-2.4.26-9.i386.rpm /
# tar -zxvf module-init-tools-3.0.tar.gz
# cd module-init-tools-3.0
# configure --prefix=/
# make moveold
# make all install
# ./generate-modprobe.conf /etc/modprobe.conf

#rpm -ivh modutils-2.4.26-9.i386.rpm

2.解压新内核

#cp linux-2.6.11.tar.gz /usr/src
#cd /usr/src
#rm -f linux(删除原有链接)
#bzip2 -d linux-2.6.11.tar.bz2
#tar -xvf linux-2.6.11.tar(解压,如果下载的是.bz2文件)
--------------------------------------------------------------
[如果所下载的是.tar.gz(.tgz)文件,使用命令:
#tar -xzvf linux-2.6.11tar.gz
--------------------------------------------------------------
#mv linux linux-2.6.11(更名,新的内核名。如果解压出来的内核已经是linux-2.6.11就无须更名)
#ln -s /usr/src/linux-2.6.11 /usr/src/linux(建立链接,相当于一个linux-2.6.11的快捷方式)

3.确保/usr/include/目录下的asm、linux和scsi等链接是指向要升级的内核源代码的。它
们分别链向源代码目录下的真正的、该计算机体系结构(对于PC机来说,使用的体系结
构是i386)所需要的真正的include子目录。如:asm指向/usr/src/linux/include/asm
-i386等。若没有这些链接,就需要手工创建,按照下面的步骤进行:
# cd /usr/include
# rm -r asm linux scsi
# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi

4.配置内核
#cd /usr/src/linux
#make mrproper(第一次编译可省略)
#make menuconfig
************************************************
************************************************
************************************************
************************************************
************************************************
(这一部分是核心,还没详细看

5.编译安装
步骤:
#make //编译内核和模块
#make modules_install //安装模块
#make install //安装内核和修改grub.conf 文件(我的是lilo)

这个过程是编译和安装内核的过程,系统自动为我们做了哪些事?

1]系统会在/usr/src/linux/arch/i386/boot/目录中产生bzImage,并把bzImage复制为vmlinuz-2.6.11到/boot目录中,并创建vmlinuz-2.6.11的链接vmlinuz;

2]在/boot目录中,系统会产生System.map-2.6.11,以及创建它的链接System.map;

3]在/boot目录中,自动生为initrd-2.6.11.img;

4]修改/etc/grub.conf 文件(我的是lilo),加入了新内核的启动项。

6.启用新内核

为了能够使用新版本的内核,还需要做一些改动:
#cp /usr/src/linux/System.map /boot/System.map-2.6.11
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.6.11
以上这两个文件是刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz,使其指向新

内核的文件:
#cd /boot
#rm -f System.map vmlinuz
#ln -s vmlinuz-2.6.11 vmlinuz
#ln -s System.map-2.6.11 System.map

注意:要保留vmlinuz核心,以下列步骤进行
#cp /usr/src/linux/System.map /boot/System.map-2.6.11
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.6.11
#cd /boot
#rm -f System.map
#ln -s System.map-2.6.11 System.map

现在
#vi /etc/lilo.conf
增加如下一段(是增加):
image=/boot/vmlinuz-2.6.11 是设定为已经安装的核心
label=linux2.6.11 则是由 lilo 用来告诉你现在要启动的是那个核心或作业系统
read-only
root=/dev/hdax (根据需要自行加以修改)
运行:#/sbin/lilo -v 保存执行命令

#shutdown -r now
_________________________________________________________________

想知道第5步骤和第6步骤是否重复了?
发表于 2005-3-16 16:49:40 | 显示全部楼层
如果简单点的话就是下载官方的几个文件,installpkg 再mk一个initrd就ok了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-16 16:52:02 | 显示全部楼层
初学阶段觉得还是从根本入手比较好:)
回复 支持 反对

使用道具 举报

发表于 2005-3-16 17:03:51 | 显示全部楼层
以前在9.1时编译过内核,记得当时把什么都升级了,也没有什么感觉。反正一堆问题,一个一个解决。呵呵。也是好的。不过现在懒了。
回复 支持 反对

使用道具 举报

发表于 2005-3-16 18:25:54 | 显示全部楼层
"mv linux linux-2.6.11(更名,新的内核名。如果解压出来的内核已经是linux-2.6.11就无须更名)"
i think "mv" may be "ln -s"
回复 支持 反对

使用道具 举报

发表于 2005-3-17 15:54:00 | 显示全部楼层
晕slackware还用rpm包吗?虽然可以,但不推荐。

---3]在/boot目录中,自动生为initrd-2.6.11.img--
能自动生成吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

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