31.6. モジュールパラメーターの設定
また、カーネル自体と同様に、モジュールは動作を変更するパラメーターを取ることもできます。多くの場合、デフォルトのパラメーターは適切に機能しますが、モジュール用のカスタムパラメーターを設定する必要がある場合があります。実行中のカーネルにすでにロードされているモジュールにはパラメーターを動的に設定できないため、設定方法は 2 つあります。
- コマンドラインで modprobe コマンドを実行し、カスタマイズされたパラメーターの一覧を実行して、カーネルモジュールを読み込みます。モジュールがすでにロードされている場合は、modprobe -r コマンドを使用して、最初にすべての依存関係とモジュール自体をアンロードする必要があります。この方法では、変更を永続化せずに、特定の設定でカーネルモジュールを実行できます。詳細は、「カスタマイズされたモジュールの読み込み: 一時的な変更」 を参照してください。
- または、
/etc/modprobe.d/
ディレクトリーにある、既存のファイルまたは新たに作成されたファイルで、カスタマイズしたパラメーターの一覧を指定します。この方法では、再起動または modprobe コマンドごとに、モジュールが読み込まれるたびに指定のパラメーターを設定すると、モジュールのカスタマイズが永続化されます。詳細は、「カスタマイズされたモジュールの読み込み - 永続的な変更」 を参照してください。
31.6.1. カスタマイズされたモジュールの読み込み: 一時的な変更
特定の設定でカーネルモジュールを一時的に実行するのに役に立つ場合もあります。現在のシステムセッション用にカスタマイズしたパラメーターでカーネルモジュールを読み込むか、モジュールが別のパラメーターでリロードされるまでは、root で以下の形式の modprobe を実行します。
~]# modprobe <module_name> [parameter=value]
[parameter=value] は、そのモジュールで利用可能なカスタマイズされたパラメーターのリストを表します。コマンドラインでカスタムパラメーターを使用してモジュールを読み込む場合は、以下の点に注意してください。
- 複数のパラメーターおよび値を入力するには、それらをスペースで区切ります。
- モジュールパラメーターによっては、コンマ区切りの値の一覧を引数として要求するものもあります。値の一覧を入力する際には、コンマごとにスペースを挿入し ない でください。または、modprobe は、以下のスペースの値を追加のパラメーターとして誤って解釈します。
- モジュールが正常に読み込まれた場合、また はモジュールが すでに カーネルに読み込まれている場合は、modprobe コマンドは、終了ステータス
0
で警告なしで成功します。したがって、カスタムパラメーターで読み込む前に、モジュールがまだロードされていないことを確認する必要があります。modprobe コマンドは、モジュールを自動的に再読み込みしません。もしくは、すでに読み込まれていることを警告します。
以下の手順は、たとえば、Intel PRO/1000 ネットワークアダプターのネットワークドライバーである
e1000e
モジュールのカスタムパラメーターを使用してカーネルモジュールを読み込むのに推奨される手順を説明します。
手順31.1 カスタムパラメーターを使用したカーネルモジュールの読み込み
- 以下のコマンドを実行して、モジュールがまだカーネルに読み込まれていないことを確認します。
~]# lsmod|grep e1000e e1000e 236338 0 ptp 9614 1 e1000e
この例のコマンドの出力は、e1000e
モジュールがすでにカーネルに読み込まれていることを示しています。また、このモジュールにはptp
モジュールの依存関係が 1 つあることも示されています。 - モジュールがすでにカーネルに読み込まれている場合は、次のステップに進む前にモジュールとそのすべての依存関係をアンロードする必要があります。安全にアンロードする方法は、「モジュールのアンロード」 を参照してください。
- モジュールを読み込み、モジュール名の後にすべてのカスタムパラメーターを一覧表示します。たとえば、割り込みスロットルレートで Intel PRO/1000 ネットワークドライバーを読み込む場合は、ドライバーの 1 番目、秒、および 3 番目のインスタンスに対して、割り込みスロットルを 3000 割り込みに設定し、EEE(EEE)がオンになります。 [5]root で以下のコマンドを実行します。
~]# modprobe e1000e InterruptThrottleRate=3000,3000,3000 EEE=1
この例では、コンマで複数の値を区切り、それらの間のスペースを省略して、複数の値を 1 つのパラメーターに渡す方法を示しています。