CentOS 6.x 编译升级内核(2.6.32 -> 3.10.104)
1.准备工作
实验环境:
物理机:Lenovo ThinkPad W520(Intel Core i7-2860QM 16G)
操作系统:Windows 10
虚拟机系统:VMware Workstation 12
虚拟机配置:1C2T 1G 20G CentOS 6.8 不含X11
确认当前版本号
1 2 3 4 |
[root@localhost ~]# uname -r 2.6.32-642.el6.x86_64 [root@localhost ~]# cat /etc/centos-release CentOS release 6.8 (Final) |
安装软件包解决编译所需依赖
1 2 |
[root@localhost ~]# yum groupinstall "Development Tools" [root@localhost ~]# yum install ncurses-devel hmaccalc zlib-devel binutils-devel elfutils-libelf-devel |
2.下载内核源码并配置编译选项
Linux的内核可以在https://www.kernel.org/获取,可以选择长期支持(longterm)版。
这里选择使用3.10.104。
1 2 3 |
[root@localhost ~]# wget https://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.10.104.tar.xz [root@localhost ~]# tar -xf linux-3.10.104.tar.xz -C /usr/src/ [root@localhost ~]# cd /usr/src/linux-3.10.104/ |
在当前内核配置文件的基础上建立新的编译选项,复制一份到内核源码目录下,命名为.config
1 |
[root@localhost linux-3.10.104]# cp /boot/config-2.6.32-642.el6.x86_64 .config |
接下来继续配置。
1 2 3 4 5 |
[root@localhost linux-3.10.104]# sh -c 'yes "" | make oldconfig' scripts/kconfig/conf --oldconfig Kconfig # # configuration written to .config # |
3.编译升级及后续处理
开始make
之前,要对.config
进行一些调整,因为是在Vmware上进行的,不对内核编译选项进行修改极易引发ERROR: modinfo: could not find module vmware_balloon
错误。
1 |
[root@localhost linux-3.10.104]# vi .config |
插入以下两行内容。
1 2 |
HYPERVISOR_GUEST=y CONFIG_VMWARE_BALLOON=m |
开始编译
1 2 3 4 5 6 7 8 9 |
#make -jx x为线程数,由于虚拟机分配了1C2T,故使用-j2 #生成内核文件 [root@localhost linux-3.10.104]# make -j2 bzImage #编译模块 [root@localhost linux-3.10.104]# make -j2 modules #安装模块 [root@localhost linux-3.10.104]# make -j2 modules_install #升级 [root@localhost linux-3.10.104]# make install |
最后只需要修改/etc/grub.conf
,将默认启动项设置为新内核即可。
版权声明
转载保留版权: 大D技研室 | 《CentOS 6.x 编译升级内核(2.6.32 -> 3.10.104)》
本文链接地址:https://www.dadclab.com/archives/6520.jiecao
转载须知:如果您需要转载本文,请将版权信息,版权授权方式,以及本文的链接地址注明,谢谢合作。
已有 2 条评论
发表评论
电子邮件地址不会被公开。 必填项已标注。
CentOS的内核是定制过的,还是要去Centos官网上下载内核,直接用kernel.org的可能有问题
原来如此~