ELRepoを使った最新カーネルとモジュールの導入手順(RHEL/CentOS 9系)
CentOS Stream 9 や RHEL 9 系で、ELRepo を利用して最新のカーネル(kernel-ml など)を導入し、必要なカーネルモジュールを設定する手順を解説します。
現在のカーネル確認
uname -r
ELRepo リポジトリの追加
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
dnf install -y https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
ELRepo の状態確認と有効化
dnf repolist all | grep elrepo-kernel
dnf config-manager --set-enabled elrepo-kernel
カーネルのインストール
dnf でカーネルをインストールすると、そのカーネル用の initramfs(初期RAMディスク)が自動的に生成されます。(後述)
◆kernel-lt(長期サポート版)をインストールしたい場合:
dnf install kernel-lt
◆kernel-ml(最新の安定版)をインストールしたい場合:
dnf install kernel-ml
インストール済みカーネルの確認
rpm -qa | grep kernel
デフォルトカーネルの設定
◆デフォルトの確認:
grubby --default-kernel
◆インストール済みのカーネル一覧:
grubby --info=ALL
◆デフォルトカーネルの変更:
■対象カーネルの確認
ls -ld /boot/vmlinuz*
■デフォルトカーネルを変更
grubby --set-default /boot/vmlinuz-6.13.2-1.el9.elrepo.x86_64
再起動&確認
reboot
uname -r
カーネルモジュールのインストール
参考:カーネルモジュールとは
https://qiita.com/miyuki_samitani/items/941e911f9aaa1321e1f2
◆利用可能なモジュールを確認:
kernel-ml(最新の安定版)をインストールする場合
kernel-mlで使える追加モジュールや関連パッケージを表示
dnf list available kernel-ml*
◆インストール:
例:
dnf install -y kernel-ml-modules kernel-ml-modules-extra
◆確認:
rpm -qa | grep -E "kernel-ml-.*"
モジュール情報の更新と確認
◆モジュールファイルの確認と展開
find /lib/modules/$(uname -r) -type f -name "*.ko*"
cd /lib/modules/$(uname -r)/kernel/
find . -name "*.ko.xz" -exec unxz {} \;
◆モジュールの依存関係データベース(modules.dep)を生成・更新
モジュールを新たに追加・削除した後、依存モジュールを自動で読み込むために必要な情報を更新します。
depmod
モジュールのロード
◆対象モジュールの存在確認
※例として"bcma"
grep bcma /lib/modules/$(uname -r)/modules.dep
■モジュールの手動ロード
modprobe -v bcma
■モジュールの自動ロード設定
【/etc/modules-load.d/*.conf】
Linuxでは、/etc/modules-load.d/ にある .conf ファイルに書かれたモジュール名が、ブート時に自動で modprobe される仕組みです。
つまり、PCを再起動しても、bcma モジュールが自動でロードされるようになります。
echo "bcma" | tee /etc/modules-load.d/bcma.conf
モジュールの確認
lsmod | grep bcma
カーネルモジュールの情報を表示
modinfo bcma
initramfs の再生成(必要時)
dnf でカーネルをインストールすると、そのカーネル用の initramfs(初期RAMディスク)が自動的に生成される。
ls -l /boot/initramfs-$(uname -r).img
◆ initramfs生成コマンド
すべてのカーネルの initramfs(初期 RAM ディスク)を強制的に再生成する。
これにより、カーネルやモジュールに関わる変更があった後、すべてのカーネルについて安全に起動できるように初期環境を更新する。
dracut --force --regenerate-all
オプション | 意味 |
---|---|
--force |
既存の initramfs を上書きする |
--regenerate-all |
システムにインストールされている すべてのカーネル に対して initramfs を作り直す |
■補足
【initramfs】
Linux の起動時、ハードディスクをマウントする前に使われる「初期環境」。
initramfs には、必要なカーネルモジュール(例:ファイルシステムドライバ、ストレージドライバなど)が入っている。
再起動
reboot
おまけ
以上で、ELRepo を使ったカーネルおよびモジュールのインストール・設定は完了です。