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 加上该参数可减小编译后模块的尺寸。 (责任编辑:IT) |