wget --no-check-certificate https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.1.14.tar.xz
下载源代码。
yum install -y gcc gcc-c++ make ncurses-devel openssl-devel elfutils-libelf-devel
安装必要的依赖包。
完成之后,显示如下:
tar xf linux-5.1.14.tar.xz -C /usr/src/kernels/
解压源代码,这个过程可能有些久,没有任何报错,返回到命令提示符就是正常解压完成,如下图所示。
或者tar xvf linux-5.1.14.tar.xz -C /usr/src/kernels/
解压源代码,这样的话就可以看到解压过程。
解压过程最后部分如下:
cd /usr/src/kernels/linux-5.1.14/
进入到目录里边。
make menuconfig
执行之后报错如下:
/bin/sh: flex: command not found
make[2]: *** [scripts/kconfig/lexer.lex.c] Error 127
make[1]: *** [menuconfig] Error 2
make: *** [sub-make] Error 2
yum install -y bison flex elfutils-libelf-devel bc
安装依赖包。
make menuconfig
可以选择配置项,最上边有各个按键的解释,如下:
Arrow keys navigate the menu.
selects submenus —> (or empty submenus ----). Highlighted letters are hotkeys.
Pressing includes, excludes, modularizes features.
Press to exit, <?> for Help, </> for Search. Legend: [*] built-in [ ]
我先按两下Esc退出选择页面,到了下边的页面。
然后按左箭头按钮,选择之后,再按回车键,就推到了命令提示符处。
参考PuTTY 连接 linux 服务器执行 make menuconfig 乱码问题解决,可以先解决上边乱码问题。
cat <<EOF>>~/.bashrc
,然后把下边的内容输入进去:
export NCURSES_NO_UTF8_ACS=1
EOF
然后按一下Enter,就可以回到命令提示符这里了。
source ~/.bashrc
使配置生效。
在putty
处设置一下,Terminal-type string处填入“linux”。
putty重新登录之后,cd /usr/src/kernels/linux-5.1.14/
进入到目录里边。
make clean && make mrproper
我这里使用当前内核的配置文件当成升级内核的配置文件,cp /boot/config-3.10.0-957.21.3.el7.x86_64 /usr/src/kernels/linux-5.1.14/.config
make menuconfig
再次进入,如下图:
我按EscEsc退出选择页面,到了下边的页面。
直接按Enter可以保存配置,并退出到命令行。
lscpu
看一下CPU的个数。
make -j2 all
编译时间有点长。完成之后:
make modules_install
安装内核模块。
完成之后,如下图:
make install
开始安装
等了至少五分钟,才完成。
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
可以看到已经把新装的内核信息0 : CentOS Linux (5.1.14) 7 (Core)
配置到/etc/grub2.cfg
里边了。
cat /etc/default/grub
看一下默认的grub
文件里边的信息。
grub2-set-default 0
设置一下系统开启时选择内核,把/etc/default/grub
中的GRUB_DEFAULT=saved
修改为GRUB_DEFAULT=0
也就等于grub2-set-default 0
这个命令,即命令sed -i "s/GRUB_DEFAULT=saved/GRUB_DEFAULT=0/g" /etc/default/grub
就等于命令grub2-set-default 0
。
grub2-mkconfig -o /boot/grub2/grub.cfg
重新生成grub.cfg
文件。
reboot
重新启动。
重新使用putty连接云服务器,uname -r
可以看到内核版本已经换成了5.1.14
。
此文章为6月Day 25学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。