CentOS5.8下编译安装3.X版本内核

1.安装依赖包:

[root@CentOS5 ~]# yum -y install wget make gcc perl ncurses-devel


2.下载内核版本:

[root@CentOS5 ~]# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.7.tar.gz


3.移动内核到相应目录并解压:

[root@CentOS5 ~]# mv linux-3.8.7.tar.gz /usr/src/

[root@CentOS5 ~]#cd /usr/src

[root@CentOS5 src]# tar -zxvf linux-3.8.7.tar.gz


4.切换目录:

[root@CentOS5 src]# cd linux-3.8.7


5.清除环境变量:

[root@CentOS5 linux-3.8.7]# make mrproper


6.在菜单模式下选择需要编译的内核模块:

[root@CentOS5 linux-3.8.7]# make menuconfig


7.确保所有东西均保持最新状态:

[root@CentOS5 linux-3.8.7]# make clean


8.编辑.config:

[root@CentOS5 linux-3.8.7]# vi .config

添加如下内容:

CONFIG_SYSFS_DEPRECATED_V2=y

CONFIG_SYSFS_DEPRECATED=y

保存退出;


9.编辑hid-example.c:

[root@CentOS5 linux-3.8.7]# vi /usr/src/linux-3.8.7/samples/hidraw/hid-example.c

将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>


10.编辑input.h:

[root@CentOS5 linux-3.8.7]# 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


11.生成新内核:

[root@CentOS5 linux-3.8.7]# make bzImage


12.编译内核模块:

[root@CentOS5 linux-3.8.7]# make modules


13.安装模块:

[root@CentOS5 linux-3.8.7]# make modules_install


14.安装:

[root@CentOS5 linux-3.8.7]# make install


15.重启:

[root@CentOS5 linux-3.8.7]# reboot

*****************************************************************

其他:

# make localmodconfig         精简内核,只编译lsmod加载的模块,用于精简kernel的配置。

# make -jn bzImage           n表示用于编译内核主机的CPU核数,比如我的主机CPU是1颗2核,那么n=2,可提高编译速度。

# make INSTALL_MOD_STRIP=1 modules_install     加上该参数可减小编译后模块的尺寸。

原文地址:https://www.cnblogs.com/myiaas/p/4161371.html