Build_kernel
カーネルのビルド、インストールをしてみる。
Ref.
必要なパッケージインストール
dnf install -y ncurses-devel dracut grub2 bc
LANG=C dnf -y group install "Development Tools"
カーネルソースの準備
cd
curl -sLO https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.7.6.tar.xz
tar Jvxf linux-6.7.6.tar.xz -C /usr/src
cd /usr/src/linux-6.7.6
#make defconfig
cp -v /boot/config... .config
sed -i 's@^CONFIG_SYSTEM_TRUSTED_KEYS="certs/rhel.pem"@CONFIG_SYSTEM_TRUSTED_KEYS=""@g' .config
sed -i 's@^CONFIG_DEBUG_INFO_BTF=y@CONFIG_DEBUG_INFO_BTF=n@g' .config
make menuconfig
cd /usr/src/linux-6.7.6
make menuconfig
カーネルビルド
# build
time make -j $(nproc); echo ${?}
# install
# dracutコマンド実行時のみ、「6.7.6」と指定する点に注意。
cd /usr/src/linux-6.7.6
make modules_install; echo ${?}
cp -f arch/x86_64/boot/bzImage /boot/vmlinuz-6.7.x86_64
dracut --force /boot/initramfs-6.7.x86_64.img 6.7.6
# (第二引数が多分uname -rの出力結果)
dracut
dracutはカーネルによって使用される初期イメージを生成し、ルートファイルシステムにアクセスするのに必要なブロックデバイスモジュール (IDE、SCSI、RAID など) をプリロードします。
grub.cfgの更新
# BIOS環境の場合
cp -pv /boot/grub2/grub.cfg ~/grub.cfg.bak
grub2-mkconfig -o /boot/grub2/grub.cfg
# EFI環境の場合
cp -pv /boot/efi/EFI/almalinux/grub.cfg ~/grub.cfg.efi.bak
grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg
# grubへのエントリ追加
grubby --add-kernel=/boot/vmlinuz-6.7.x86_64 --title 'AlmaLinux 9(6.7.6.x86_64)';echo ${?}
# 追加したエントリを起動時に自動選択設定
grub2-set-default 1
# 0:一行目、1:2ぎょうめ、つまり、一個しかない場合は、1を選択
#または、boot時に
grubby --default-kernel
その他設定
for f in $(ls -1 /boot/loader/entries/*.conf); do echo $f; grep options ${f}; done
sed -i 's/^options/options $kernelopts $tuned_params/g' /boot/loader/entries/5de5d51b138a43fe9a9729b711cc6dc7-6.7.x86_64.conf
結果
before
[root@localhost ~]# uname -r
5.14.0-362.8.1.el9_3.x86_64
[root@localhost ~]#
after
[root@localhost ~]# uname -r
6.7.6
[root@localhost ~]#
Env.
AlmaLinux release 9.3 (Shamrock Pampas Cat)