カーネル・モジュールについて

ブート・ローダーはカーネルをメモリーにロードします。ソース・ファイルをカーネル・ソース・ツリーに含めてカーネルを再コンパイルすることにより、新しいコードをカーネルに追加できます。カーネル・モジュールでは、カーネルによる新しいハードウェアへのアクセス、異なるファイル・システム・タイプのサポート、および他の方法での機能の拡張を可能にするデバイス・ドライバを提供します。モジュールは、必要に応じて動的にロードおよびアンロードできます。未使用のデバイス・ドライバにメモリーを浪費しないよう、Oracle Linuxではロード可能なカーネル・モジュール(LKM)をサポートしているため、メモリーにロードする必要があるデバイス・ドライバとカーネル・コードのみを使用してシステムを実行できます。Oracle Linuxでカーネル・モジュールを管理する方法の詳細は、「カーネル・モジュールの管理」を参照してください。

ノート:

UEK R7以降では、より合理化されたカーネルを提供するためにカーネル・パッケージの変更が適用されます。ほとんどのサーバー構成に必要なカーネル・モジュールはkernel-uek-modulesパッケージで提供されますが、Bluetooth、Wi-Fi、ビデオ・キャプチャ・カードなどのサーバー構成では検出されないハードウェアのオプションのカーネル・モジュールは、kernel-uek-modules-extraパッケージにあります。これらのパッケージの両方に、linux-firmwareパッケージをインストールする必要があることに注意してください。

これらのパッケージの内容を表示するには、次を実行します。

dnf repoquery -l kernel-uek-modules
dnf repoquery -l kernel-uek-modules-extra
すべての使用可能なカーネル・モジュールをインストールするには、次を実行します。
sudo dnf install -y kernel-uek-modules kernel-uek-modules-extra linux-firmware

Unbreakable Enterprise Kernelリリース7: リリース・ノート(5.15.0-0.30)も参照してください。

ブート時に悪意のあるコードを実行することからシステムを保護するために、カーネル・モジュールに署名できます。UEFIセキュア・ブートが有効になっている場合は、正しい署名情報を含むカーネル・モジュールのみをロードできます。詳細は、『Oracle Linux: UEFI Secure Bootの操作』を参照してください。

弱い更新モジュールについて

ドライバの更新ディスクを使用してインストールされるドライバや、独立したパッケージからインストールされるドライバなどの外部モジュールは、通常、/lib/modules/kernel-version/extraディレクトリにインストールされます。このディレクトリに格納されるモジュールは、これらのモジュールのロード時にカーネルに含まれている一致するモジュールよりも優先されます。インストールされた外部ドライバおよびモジュールは、既存のカーネル・モジュールをオーバーライドして、ハードウェアの問題を解決できます。カーネル更新ごとに、これらの外部モジュールを互換性のある各カーネルで使用可能にする必要があるため、影響を受けるハードウェアとのドライバの非互換性によって発生する可能性のあるブートの問題を回避できます。

互換性のあるカーネル更新ごとに外部モジュールをロードする必要はシステムで重要であるため、互換性のあるカーネルの弱い更新モジュールとして外部モジュールをロードできるようにするためのメカニズムが存在します。

/lib/modules/kernel-version/weak-updatesディレクトリに互換性のあるモジュールへのシンボリック・リンクを作成することで、弱い更新モジュールを使用できるようにします。パッケージ・マネージャは、互換性のあるカーネルの/lib/modules/kernel-version/extraディレクトリにインストールされているドライバ・モジュールを検出すると、このプロセスを自動的に処理します。

たとえば、新しいカーネルが以前のカーネルにインストールされたモジュールと互換性がある場合、次のコマンド出力に示すように、外部モジュール(kmod-kvdoなど)がインストール・プロセスの一部としてweak-updatesディレクトリにシンボリック・リンクとして自動的に追加されます。

ls -l /lib/modules/5.15.0-208.159.3.2.el8.x86_64/weak-updates/kmod-kvdo/uds
lrwxrwxrwx. 1 root root 68 Jul  8 07:57 uds.ko -> 
/lib/modules/5.15.0-208.159.3.2.el8.x86_64/extra/kmod-kvdo/uds/uds.ko
ls -l /lib/modules/5.15.0-208.159.3.2.el8.x86_64/weak-updates/kmod-kvdo/vdo
lrwxrwxrwx. 1 root root 68 Jul  8 07:57 uds.ko -> 
/lib/modules/5.15.0-208.159.3.2.el8.x86_64/extra/kmod-kvdo/uds/uds.ko

シンボリック・リンクを使用すると、外部モジュールをカーネル更新用にロードできます。

弱い更新は有益であり、カーネル更新で外部モジュールを実行するために追加作業は必要ありません。カーネルのアップグレード後に発生する可能性のあるドライバ関連のブートの問題が防止されるため、このアプローチにより、システムとそのハードウェアの実行がより予測可能になります。

カーネル・バージョンが優れているか優先されるドライバまたはモジュール・バージョンを提供している場合は、弱い更新モジュールを削除できます。詳細は、「弱い更新モジュールの削除」を参照してください。

外部ドライバ・モジュールおよびドライバ更新ディスクの詳細は、『Oracle Linux 8: Oracle Linuxのインストール』を参照してください。