CentOS替换更新源及Linux内核编译总结

从下载所需版本的内核文件:下面以文件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行以后。 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15748.html