Centos 5.5的内核由2.6.18-194.el5升级到3.2.13

在虚拟机中将Centos 5.5的内核由2.6.18-194.el5升级到3.2.13
yum -y install ncurses-devel
cd /usr/src/kernels/
下载内核源码
#wget http://210.41.166.199:8000/4ff48cb61e42b71184ea79f0612a4f17/Linux/kernel/linux-3.2.13.tar.bz2
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.13.tar.bz2
tar vxjf linux-3.2.13.tar.bz2
cd linux-3.2.13
删除以前可能失败的编译配置信息
make mrproper
make menuconfig
请一定要加上下面的选项,你如果仅仅是想测试的话,别的不动都可以的。
General setup --->
[*] Enable deprecated sysfs features to support old userspace tools
[*] Enable deprecated sysfs features by default

cp include/linux/hidraw.h /usr/include/linux/
cp include/linux/hid.h /usr/include/linux/
vi samples/hidraw/hid-example.c
(
http://hi.baidu.com/susdisk/blog/item/cd42fb10be8b98e8c2ce7913.html
在Linux下编译程序有时会遇到这种问题,这貌似是一个Linux历史遗留问题:
把所有#include <sys/xxx.h>都提到最前面,把#include <linux/xxx.h>的包含放在其后,就可以编译通过了,之所以出现面的问题是存在循环引用所致。
)

将13-15行的如下3行移动到33行以后。

13 #include <linux/types.h>
14 #include <linux/input.h>
15 #include <linux/hidraw.h>

29 #include <sys/ioctl.h>
30 #include <sys/types.h>
31 #include <sys/stat.h>
32 #include <fcntl.h>
33 #include <unistd.h>

vi /usr/include/linux/input.h

line 647
#define BUS_PCI 0x01
#define BUS_ISAPNP 0x02
#define BUS_USB 0x03
#define BUS_HIL 0x04
#define BUS_BLUETOOTH 0x05
/*以下一行为新增*/
#define BUS_VIRTUAL 0x06

#define BUS_ISA 0x10
#define BUS_I8042 0x11
#define BUS_XTKBD 0x12
#define BUS_RS232 0x13
#define BUS_GAMEPORT 0x14
#define BUS_PARPORT 0x15
#define BUS_AMIGA 0x16
#define BUS_ADB 0x17
#define BUS_I2C 0x18
#define BUS_HOST 0x19
#define BUS_GSC 0x1A
/*以下两行为新增*/
#define BUS_ATARI 0x1B
#define BUS_SPI 0x1C

make bzImage
make modules
make modules_install
make install

#设置使用新内核启动。
sed -i 's#default=1#default=0#g' grub.conf

........test new kernel.......

uname -a
----------------------------------------------------------------

修改/boot/grub/grub.conf 里面有个default=0 0表示第一个,1表示第二个,一次类推。例如我的文件是这样的。

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.25linux1610-2.6)
root (hd0,0)
kernel /vmlinuz-2.6.25linux1610-2.6 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.25linux1610-2.6.img
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-92.el5.img
我的default=0,那么我就是默认启动下面这个我最新编译的了。
title CentOS (2.6.25linux1610-2.6)
root (hd0,0)
kernel /vmlinuz-2.6.25linux1610-2.6 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.25linux1610-2.6.img
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值