QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1006|回复: 3

我想这样升级内核!

[复制链接]
发表于 2005-3-15 19:51:31 | 显示全部楼层 |阅读模式
我想这样升级内核!

--------------------------------------------------------------------------------


第一次升级内核,看了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 22:26:28 | 显示全部楼层
[quote:744522d0c0="gxl117"]
你的步骤不仅重覆,而且错误很多,如果你要是这样升级的话,恐怕有你头痛的。[/quote]

我想知道哪里出错了?
回复

使用道具 举报

 楼主| 发表于 2005-3-17 17:05:47 | 显示全部楼层
非常感谢斑竹,其实我的那些步骤是参考了旧内核升级方法

总以为复杂了才能够深入:)

另外斑竹能不能推荐一篇如内核升级原理的文章,我想仔细看看

再次感谢!!!
回复

使用道具 举报

发表于 2005-3-17 17:19:00 | 显示全部楼层
#make mrproper
#make menuconfig
#make
#make modules_install
#make install
就可以了。。

#make menuconfig
这才是需要仔细看的地方~

slackware下用rpm包最好把他转成tgz包,然后再安装。
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-2 12:25 , Processed in 0.078835 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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