31.7. 永続的なモジュールの読み込み
例31.1「lsmod を使用したカーネルモジュール情報の一覧表示」 で示されているように、多くのカーネルモジュールは、システムの起動時に自動的に読み込まれます。読み込む追加のモジュールを指定するには、
/etc/sysconfig/modules/ ディレクトリーに新しい < file_name > .modules ファイルを作成します。ここで、< file_name > は任意の説明的な名前です。< ;file_name > .modules ファイルはシステム起動スクリプトがシェルスクリプトとして扱われ、そのためには最初の行として インタープリターディレクティブ ( 「bang 行」とも呼ばれます)で開始する必要があります。
例31.6 file_name.modules ファイルの最初の行
#!/bin/sh
#!/bin/sh
さらに、<
file_name> .modules ファイルは実行可能である必要があります。以下を実行して実行可能にします。
modules]# chmod +x <file_name>.modules
modules]# chmod +x <file_name>.modules
たとえば、以下の
bluez-uinput.modules スクリプトは uinput モジュールを読み込みます。
例31.7 /etc/sysconfig/modules/bluez-uinput.modules
#!/bin/sh
if [ ! -c /dev/input/uinput ] ; then
exec /sbin/modprobe uinput >/dev/null 2>&1
fi
#!/bin/sh
if [ ! -c /dev/input/uinput ] ; then
exec /sbin/modprobe uinput >/dev/null 2>&1
fi
3 行目の
if-conditional ステートメントは、/dev/input/uinput ファイルが存在し ない ことを確認します(この条件は ! 記号を否定)し、その場合は exec /sbin/modprobe uinput を呼び出すことで uinput モジュールをロードします。uinput モジュールは /dev/input/uinput ファイルを作成するため、そのファイルが存在するかどうかをテストし、uinput モジュールがカーネルに読み込まれているかどうかを検証します。
その行の最後 にある以下の >/dev/null 2>&1 句は、その行の最後で出力を
/dev/null にリダイレクトすることで、modprobe コマンドが quiet のままになるようにします。