25.5. モジュールパラメーターの設定

カーネルのように、モジュールは動作を変更するパラメーターを取ることもできます。大半の場合、デフォルトのパラメーターは十分動作しますが、モジュールに対しカスタムパラメーターを設定することが必要な、あるいは望ましい場合があります。実行中のカーネルにすでにロードされたモジュールに対してパラメーターを動的に設定することはできないため、それらを設定する方法は 2 つあります。
  1. パラメーターを設定したいモジュールが持つすべての依存関係のアンロード、modprobe -r を使用したモジュールのアンロード、そしてカスタマイズしたパラメーターの一覧と共に modprobe を使用したモジュールのロードを実行することができます。この方法がよく使用されるのは、モジュールに多くの依存関係がない場合、または様々なパラメーターの組み合わせを永続的にすることなくテスト目的で使用される場合です。これが本項で取り上げる方法です。
  2. 別の方法として、/etc/modprobe.d/ ディレクトリ内にある既存または新規作成のファイルに新しいパラメーターを一覧表示することもできます。モジュールがロードされるたびにモジュールパラメーターが設定されていることを確認することで、モジュールパラメーターを永続的にできます。例えば、毎回リブートした後や modprobe コマンドを使用した後などです。次の情報が前提条件ですが、この方法は 「永続的なモジュールのロード」 で説明します。
以下のコマンドライン形式を使用して、modprobe によりカスタムパラメーターでカーネルモジュールをロードできます:

例25.4 カーネルモジュールのロード時にオプションのパラメーターを指定

~]# modprobe <module_name> [parameter=value] 
コマンドラインでカスタムパラメーターを使ってモジュールをロードする場合は、以下の点に注意して下さい。
  • パラメーターと値を空白で区切ることで、複数入力が可能です。
  • 引数としてカンマで区切られた値の一覧を必要とするモジュールパラメーターもあります。値の一覧を入力する場合、カンマの後に空白を 入力しないで下さい。入力してしまうと、modprobe は空白に続く値を追加のパラメーターと間違って解釈することになります。
  • 以下のいずれかの場合、modprobe コマンドは、成功すると何も表示せずにステータスは 0 という終了に変わります。
    • モジュールのロードが成功、または
    • モジュールが すでに カーネルにロード済み
    そのため、カスタムパラメーターを使ったモジュールのロード試行前に、モジュールがまだロードされていないことを確認する必要があります。modprobe コマンドは、モジュールの自動的な再ロードやすでにモジュールがロードされている旨の警告を行うことはありません。
カスタムパラメーターの設定及びカーネルモジュールのロードを行うにあたって推奨される手順は以下のとおりです。これは、例として Intel PRO/1000 ネットワークアダプター用のネットワークドライバーである e1000e モジュールを使用した手順について説明しています。

手順25.1 カスタムパラメーターによるカーネルモジュールのロード

  1. 最初に、モジュールがカーネルにまだロードされていないことを確認します:
    ~]# lsmod |grep e1000e
    ~]# 
    出力は、モジュールがカーネルにすでにロードされていることを示しています。この場合は、続行前にまずそれをアンロードする必要があります。安全にアンロードする方法については、「モジュールのアンロード」 を参照して下さい。
  2. モジュールをロードして、モジュール名の後にすべてのカスタムパラメーターを表示します。例えば、 Energy Efficient Ethernet (EEE) が有効な状態で、割り込みスロットル値をドライバーの第 1、第 2、第 3 インスタンスに対して毎秒 3000 割り込みに設定した Intel PRO/1000 ネットワークドライバーをロードしたい場合は、[6]root で以下を実行します:
    ~]# modprobe e1000e InterruptThrottleRate=3000,3000,3000 EEE=1
    この例では、カンマで区切り空白を省くことにより、1 つのパラメーターに複数の値を渡すことを示しています。


[6] 例が示唆している内容に関わらず、デフォルト設定で Energy Efficient Ethernet は e1000e ドライバーで有効です。