+ -
当前位置:首页 → 问答吧 → 我想这样升级内核!

我想这样升级内核!

时间:2005-03-16

来源:互联网

第一次升级内核,看了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步骤是否重复了?

作者: 4979458   发布时间: 2005-03-16

如果简单点的话就是下载官方的几个文件,installpkg 再mk一个initrd就ok了。

作者: risky   发布时间: 2005-03-16

初学阶段觉得还是从根本入手比较好:)

作者: 4979458   发布时间: 2005-03-16

以前在9.1时编译过内核,记得当时把什么都升级了,也没有什么感觉。反正一堆问题,一个一个解决。呵呵。也是好的。不过现在懒了。

作者: risky   发布时间: 2005-03-16

"mv linux linux-2.6.11(更名,新的内核名。如果解压出来的内核已经是linux-2.6.11就无须更名)"
i think "mv" may be "ln -s"

作者: jcnet   发布时间: 2005-03-16

晕slackware还用rpm包吗?虽然可以,但不推荐。

---3]在/boot目录中,自动生为initrd-2.6.11.img--
能自动生成吗?

作者: kite   发布时间: 2005-03-17

热门下载

更多