kernelのバージョンは 2022/07/02に最新版の5.18.9が出ていたのでそちらをベースにしています。
なお、kernelを5系以上にする場合、gccはversion: 4.9.0以上が必要となるので、そちらから記載していきます。
gccのアップグレード 2022/05/06が最新(7/3現在)gcc-12.1.0
gcc -v
gcc バージョン 4.8.5
yum install gcc-c++
cd /usr/local/src
curl -LO http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-12.1.0/gcc-12.1.0.tar.gz
curl -LO http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-12.1.0/sha512.sum
tar -xvzf gcc-12.1.0.tar.gz
cd /usr/local/src/gcc-12.1.0/
./contrib/download_prerequisites
mkdir build
cd build
../configure --enable-languages=c,c++ --prefix=/usr/local --disable-bootstrap --disable-multilib
※このmakeは非常に時間がかかるのでマルチコアでmakeしています。(本サーバは8スレ)
make -j8
make install
/usr/local/bin/gcc --version
vi /etc/ld.so.conf
追記
/usr/local/lib64
ldconfig -v
cd /etc/ld.so.conf.d
vi usr-local-lib64.conf
追記
/usr/local/lib64
ldconfig -v
gcc -v
reboot
kernelのアップグレード 2022/07/02が最新(7/3現在)linux-5.18.9.tar.xz
cd /usr/local/src
yum install ncurses-devel openssl-devel bc elfutils-libelf-devel
curl -O https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.18.9.tar.xz
xz -d linux-5.18.9.tar.xz
tar xvf linux-5.18.9.tar
cd linux-5.18.9
cp -p /boot/config-3.10.0-514.el7.x86_64 ./.config
or
cp -p /boot/config-3.10.0-957.el7.x86_64 ./.config
cd /usr/local/src/linux-5.18.9
yes "" | make oldconfig
下記makeも異常に時間がかかるので、マルチコアでmake
make -j8
make modules_install
make install
追加カーネル確認
cat /etc/grub2-efi.cfg | less
or
cat /etc/grub2.cfg | less
※ここはファイルがgrub2.cfgになっているケースもあるので注意!
-------------
### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (5.18.9) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-514.el7.x86_64-advanced-3a7e4818-eec6-49e9-95cd-260b8edc0339' {
-------------
太字箇所があればOK
起動するカーネルの変更
コマンドで必要な部分を抽出
上から順に 0 から始まるエントリとなっている
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2-efi.cfg
or
awk -F\' '$1=="menuentry " {print $2}' /etc/grub2.cfg
※ここはファイルがgrub2.cfgになっているケースもあるので注意!
CentOS Linux (5.18.9) 7 (Core)
CentOS Linux (3.10.0-1160.45.1.el7.x86_64) 7 (Core)
CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)
CentOS Linux (0-rescue-c6eb70c3ed0f4ebd94266f7e03383554) 7 (Core)
起動カーネルの選択
grub2-set-default 0
grub2-editenv list
reboot
yumのアプデではkernelを除外
vi /etc/yum.conf
#追記
exclude=kernel*
[…] ※2022/07/23現在、カーネルとgccのアップデートにおける最新記事はこちらにまとめています […]