linux 内核升级 centos

因为开需要编译2.6.38的uboot,奈何自己的linux 是内核版本太低,编译uboot经常出错,于是想自己升级下内核,内核升级一直想做,但是一直没成功,忙活两天,查找很多资料,出了很多错误,终于升级成功,相信以后遇到此类问题就很好解决了,手动操作10分钟差不多了。

自己的是centos5.5版本的,vm。

编译内核其实很简单,不过在Fedora里面(其实Ubuntu也一样),如果安装了官方显卡驱动的话,启用自己编译的最新的内核可能会导致系统无法进去。

在Fedora 14里,首先卸载官方显卡驱动(确保卸载后能够进系统)并在kernel.org下载最新的linux-2.6.38.tar.bz2的包;(我的是centos 没有遇到这种情况,不过我在root中无法上网,原来是以前设置了network,忘了)

卸载完官方显卡驱动后,开始配置安装。(需必须)

1、解压linux-2.6.38.tar.bz2至/usr/src/kernel目录并切换至其解压后目录下:

1
2
tar -jxvf ./linux-2.6.38.tar.bz2 /usr/src/kernel
cd /usr/src/kernel/linux-2.6.38

2、拷贝当前内核配置文件做为新内核编译的.config文件:

1
cp /boot/config-`uname-r`./.config
(就是把原来的config文件变成你现在的,放在linux-2.6.38 文件夹中,.config)

3、使用menuconfig方式编译。首先安装其所需要依赖的libcurses5-dev库,还有,所以还需要先安装好GCC,如果你没安装的话

1
2
3
4
yum install ncurses-devel -y
yum install gcc gcc-c++ *aclocal
make mrproper (删除上次编译产生的垃圾,如果是初次编译不需要执行)
make menuconfig
(在第三步中,如果是第一次编译,不用make mrproper ,防止把.config删掉)

在弹出的对话框里选择倒数第二项,也就是加载刚刚拷贝过来的.config文件做为编译配置:

config

选中后按“Enter”,在弹出的对话框按“OK”,然后选中“Exit”退出,退出时会提示是否保存,选择“Yes”。

4、开始编译。依次执行下面的命令:

1
2
3
make -j4 all (CPU是双核用该命令编译,若是单核CPU使用-j2)
make modules_install (安装模块到/lib/modules/2.6.38)
make install (将vmlinuz-2.6.38、System.map-2.6.38、initramfs-2.6.38.img拷贝到/boot目录下并自动修改grub.conf)

这将是一段漫长的过程,我在网上找了个脚本放在下面,不错要使用的话,你还是对照一下,看看那些地方需要修改,比如内核版本号码,问价路径,执行的是下面的简单脚本(从第4步开始):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
# 须以root执行该脚本
# Contact:http://www.ninthday.net 
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
mkdir /tmp/2.6.38
echo "Start make..."
make -j4 all >/tmp/2.6.38/sta_make.txt 2>&1
sta_make=`echo $?`
if [ $sta_make -gt 0 ]; then
	echo "Command--'make -ja all' has occurred an error.Exit compile and shutdown now." >>/tmp/2.6.38/error.txt
	shutdown -h now
fi
make modules_install >sta_modules.txt 2>&1
sta_modules=`echo $?`
if [ $sta_modules -gt 0 ]; then
	echo "Command--'make modules_install' has occurred an error.Exit compile and shutdown now." >>/tmp/2.6.38/error.txt
	shutdown -h now
fi
make install >sta_install.txt 2>&1
sta_install=`echo $?`
if [ $sta_install -gt 0 ]; then
	echo "Command--'make install' has occurred an error.Exit compile and shutdown now." >>/tmp/2.6.38/error.txt
	shutdown -h now
fi
echo "Compile success." >/tmp/2.6.38/success.txt
exit 0

我现在使用的内核:

重启机子后,uname -r 查看版本号码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值