`

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



       
    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics