CentOS5.8下编译安装3.X版本内核
2016-02-15 17:11
411 查看
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 加上该参数可减小编译后模块的尺寸。
[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 加上该参数可减小编译后模块的尺寸。
相关文章推荐
- Linux 自检和 SystemTap
- Centos6 编译安装Python
- 硬盘安装CentOS 6.2以及添加GRUB启动菜单
- CentOS 6.2实战部署Nginx+MySQL+PHP
- CentOS 7系统配置上的变化解析
- 一张图看尽 Linux 内核运行原理
- CentOS下DB2数据库安装过程详解
- CentOS 6.3下编译安装Ruby 2.0笔记
- 在Centos 5.5 上编译安装mysql 5.5.9
- 在阿里云的CentOS环境中安装配置MySQL的教程
- CentOS 6.5源码安装Erlang教程
- Centos下安装docker教程
- Linux内核链表实现过程
- 在CenOS系统下安装和配置Redis数据库的教程
- centos 5.6 升级php到5.3的方法
- CentOS mysql安装系统方法
- centos下安装mysql服务器的方法
- CentOS 5.1 4.6最新官方下载地址列表