Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

25.6. 永続的なモジュールのロード

例25.1「lsmod を使用したカーネルモジュール情報の一覧表示」 のとおり、カーネルモジュールの多くはブート時に自動的にロードされます。/etc/sysconfig/modules/ ディレクトリ内に新しい <file_name>.modules ファイルを作成することで、ロードする追加のモジュールを指定できます。<file_name> は、分かりやすければどのような名前でも構いません。<file_name>.modules ファイルは、システムのスタートアップスクリプトによりシェルスクリプトとして扱われ、1 行目は 感嘆符の行 とも呼ばれる interpreter directive (解釈実行プログラム指示文) で始まる必要があります。

例25.5 file_name.modules ファイルの 1 行目

#!/bin/sh
また、<file_name>.modules ファイルは実行可能でなければなりません。実行可能なファイルに設定する方法は、以下のとおりです:
modules]# chmod +x <file_name>.modules
例えば、以下の bluez-uinput.modules スクリプトは uinput モジュールをロードします。

例25.6 /etc/sysconfig/modules/bluez-uinput.modules

#!/bin/sh

if [ ! -c /dev/input/uinput ] ; then
        exec /sbin/modprobe uinput >/dev/null 2>&1
fi
3 行目の if の条件付きステートメントにより、/dev/input/uinput ファイルが 存在していない ようにします (! の記号は条件を無効にします)。その場合は、exec /sbin/modprobe uinput を呼び出すことで uinput モジュールをロードします。uinput モジュールは /dev/input/uinput ファイルを作成するため、そのファイルが存在するかどうか調べることは、uinput モジュールがカーネルにロードされているかどうかを確認することを意味します。
その行の最後にある >/dev/null 2>&1 は、すべての出力を /dev/null にリダイレクトするため、modprobe コマンドは使用されません。