1.解压
tar -xf linux-3.10.58.tar.xz
2.更新当前系统
sudo yum update
说明:执行此操作会升级系统版本,建议不要执行
3.安装编译内核所需要的软件包
sudo yum groupinstall "Development Tools"#一口气安装编译时所需的一切工具
sudo yum install ncurses-devel#必须这样才能让make *config这个指令正确地执行。
sudo yum install qt-devel#如果你没有X环境,这一条可以不用
sudo yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel#创建CentOS-6内核时需要它们
4.uname -r
2.6.32-358.11.1.el6.x86_64 #查看当前系统内核
5.获取并解压内核源码,配置编译项,将当前系统的配置文件拷贝到当前目录。
tar -xf linux-3.10.58.tar.xz -C /usr/src/
cd /usr/src/linux-3.10.58/
cp /boot/config-2.6.32-358.11.1.el6.x86_64 ./.config # 此处boot下的这个config文件要根据实际,未必是这个文件名的文件。
6.使用旧内核配置,并自动接受每个新增选项的默认设置
sh -c 'yes "" | makeoldconfig' # make oldconfig会读取当前目录下的.config文件,在.config文件里没有找到的选项则提示用户填写,然后备份.config文件为.config.old,并生成新的.config文件
http://stackoverflow.com/questions/4178526/what-does-make-oldconfig-do-exactly-linux-kernel-makefile
7.编译
sudo make -j16 bzImage#生成内核文件
sudo make -j16 modules#编译模块
sudo make -j16 modules_install#编译安装模块
要严格按照这个顺序进行编译,不能合并成一句,sudo make -j8 bzImage modules modules_install。
-j后面的数字是线程数,用于加快编译速度,一般的经验是,有多少G内存,就填写那个数字, free -m查看内存大小,我的设备是16G内存,则为-j16。
8.安装后重启
sudomake install #如果弹出问题1.如下,需重新升级内核,升级成功。
如果出现了 ERROR: modinfo: could not find module xxx,数量少的话,可以忽略。
9.修改Grub引导顺序
安装完成后,需要修改Grub引导顺序,让新安装的内核作为默认内核。
编辑 grub.conf文件:
sudovim /etc/grub.conf # 数一下刚刚新安装的内核在哪个位置,从0开始,然后设置default为那个数字,一般新安装的内核在第一个位置,所以设置default=0。
10.重启
sudoreboot
uname–r #重启后,看一下当前内核版本号,
3.10.58

本文详细介绍了如何手动升级Linux内核,包括解压新内核源码、更新系统、安装所需软件包、配置、编译、安装及修改Grub引导顺序。遵循这些步骤,用户可以将内核从2.6.32-358.11.1.el6.x86_64升级到3.10.58。
175

被折叠的 条评论
为什么被折叠?



