从下载所需版本的内核文件:下面以文件linux-3.19.3.tar.xz为例
使用xshell连接linux主机,或登录linux主机
使用rz命令上传内核文件
rz
解压内核文件
xz -dk linux-3.19.3.tar.xz //如果提示xz not found,请帮yum换源,再用yum install xz安装
继续解压,得到文件夹:linux-3.19.3
tar xvf linux-3.19.3.tar
进入刚得到的文件夹
cd linux-3.19.3
使用yum安装编译需要的编译环境
yum install -y gcc make bison ncurses-devel rpm-build
复制现有内核编译的配置文件
cp /boot/config-`uname -r` .config
如果想使用旧内核配置,并自动接收每个新增选项的默认设置
sh -c 'yes "" | make oldconfig'
进入菜单配置
make menuconfig
根据需求,设置选项“[ ] 64-bit kernel" 是否选择,按‘y’选择,‘n’取消
进入General setup, 勾选 "Enable deprected sysfs features to support old userspace tools"
生成内核文件,通常生成在/usr/src/arch/x86/boot目录下
make bzImage
编译内核模块
make modules
安装新内核模块,即把它们放到相应的位置
make modules_install //上面三步也可以写成这样: //make bzImage && make modules && make modules_install
安装内核
make install
设置系统引导管理器,以便从新的内核启动
vi /etc/grub.conf //将default=1改为default=0,保存退出
重启系统
reboot
验证内核版本
uname -a
!!!以上任一编译过程出现错误需重新编译!!!
先执行!清除安装过程中的临时文件
make mrproper //make clean
再重复编译步骤。
PS:下面的错误只遇到了两个,其它是��解决过程中收集的,如若侵犯了你的权益,请劳烦告知删除,谢谢~
错误一:
In file included from /usr/include/sys/time.h:31,
from /usr/include/linux/input.h:12,
from samples/hidraw/hid-example.c:14:
/usr/include/sys/select.h:78: 错误:与 ‘fd_set’ 类型冲突
/usr/include/linux/types.h:12: 错误:‘fd_set’ 的上一个声明在此
In file included from /usr/include/linux/input.h:14,
from samples/hidraw/hid-example.c:14:
/usr/include/sys/types.h:62: 错误:与 ‘dev_t’ 类型冲突
/usr/include/linux/types.h:13: 错误:‘dev_t’ 的上一个声明在此
/usr/include/sys/types.h:67: 错误:与 ‘gid_t’ 类型冲突
/usr/include/linux/types.h:27: 错误:‘gid_t’ 的上一个声明在此
/usr/include/sys/types.h:72: 错误:与 ‘mode_t’ 类型冲突
/usr/include/linux/types.h:15: 错误:‘mode_t’ 的上一个声明在此
/usr/include/sys/types.h:77: 错误:与 ‘nlink_t’ 类型冲突
/usr/include/linux/types.h:16: 错误:‘nlink_t’ 的上一个声明在此
/usr/include/sys/types.h:82: 错误:与 ‘uid_t’ 类型冲突
/usr/include/linux/types.h:26: 错误:‘uid_t’ 的上一个声明在此
In file included from /usr/include/sys/types.h:133,
from /usr/include/linux/input.h:14,
from samples/hidraw/hid-example.c:14:
/usr/include/time.h:105: 错误:与 ‘timer_t’ 类型冲突
/usr/include/linux/types.h:22: 错误:‘timer_t’ 的上一个声明在此
In file included from /usr/include/linux/input.h:14,
from samples/hidraw/hid-example.c:14:
/usr/include/sys/types.h:235: 错误:与 ‘blkcnt_t’ 类型冲突
/usr/include/linux/types.h:114: 错误:‘blkcnt_t’ 的上一个声明在此
samples/hidraw/hid-example.c:15:26: 错误:linux/hidraw.h:没有那个文件或目录
samples/hidraw/hid-example.c: In function ‘main’:
samples/hidraw/hid-example.c:48: 错误:‘rpt_desc’ 的存储大小未知
samples/hidraw/hid-example.c:49: 错误:‘info’ 的存储大小未知
samples/hidraw/hid-example.c:65: 错误:‘HIDIOCGRDESCSIZE’ 未声明 (在此函数内第一次使 用)
samples/hidraw/hid-example.c:65: 错误:(即使在一个函数内多次出现,每个未声明的标识符 在其
samples/hidraw/hid-example.c:65: 错误:所在的函数内只报告一次。)
samples/hidraw/hid-example.c:73: 错误:‘HIDIOCGRDESC’ 未声明 (在此函数内第一次使用)
samples/hidraw/hid-example.c:84: 警告:隐式声明函数 ‘HIDIOCGRAWNAME’
samples/hidraw/hid-example.c:91: 警告:隐式声明函数 ‘HIDIOCGRAWPHYS’
samples/hidraw/hid-example.c:98: 错误:‘HIDIOCGRAWINFO’ 未声明 (在此函数内第一次使用)
samples/hidraw/hid-example.c:49: 警告:未使用的变量 ‘info’
samples/hidraw/hid-example.c:48: 警告:未使用的变量 ‘rpt_desc’
samples/hidraw/hid-example.c: In function ‘bus_str’:
samples/hidraw/hid-example.c:171: 错误:‘BUS_VIRTUAL’ 未声明 (在此函数内第一次使用)
make[2]: *** [samples/hidraw/hid-example] 错误 1
make[1]: *** [samples/hidraw] 错误 2
make: *** [vmlinux] 错误 2
解决方法:
cp include/linux/hidraw.h /usr/include/linux/ cp include/linux/hid.h /usr/include/linux/ vi samples/hidraw/hid-example.c
将13-15行的如下3行移动到33行以后。