1 .\"/* Copyright 1999 Bjorn Ekwall <bj0rn@blox.se>
2 .\" This program is distributed according to the Gnu General Public License.
3 .\" See the file COPYING in the base distribution directory
5 .\" Japanese Version Copyright (c) 2000 NAKANO Takeo all rights reserved.
6 .\" Translated Thu 12 Oct 2000 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
7 .\" Updated Sun 28 Jan 2001 by Kentaro Shirakata <argrath@ub32.org>
8 .\" Updated Sun 6 Jan 2002 by NAKANO Takeo
10 .TH MODULES.CONF 5 "07 December 1999"
13 modules.conf \- カーネルモジュールのロードに対する設定ファイル
21 によって変更できる (このファイルは無くてもよい)。
25 全ての空行と、'#' 文字以降の行末までは無視される。
27 行末が '\e' になっている行は次の行に継続する。
29 残りは指定行 (directive) であり、
33 [add] above module module_list
34 alias alias_name result
35 [add] below module module_list
42 include PATH_TO_CONFIG_FILE
43 insmod_opt=GENERIC_OPTIONS_TO_INSMOD
44 install module command ...
46 [add] options module MODULE_SPECIFIC_OPTIONS
49 generic_stringfile=A_PATH
54 ieee1394mapfile=A_PATH
56 [add] probe name module_list
57 [add] probeall name module_list
59 post-install module command ...
60 post-remove module command ...
61 pre-install module command ...
62 pre-remove module command ...
63 remove module command ...
64 persistdir directory_name
67 各指定行に与える引数の解釈では、シェルのメタキャラクタが有効になる。
68 すなわち、ワイルドカードやコマンドのバッククォートといった、
72 path[misc]=/lib/modules/1.1.5?/local
73 path[net]=/lib/modules/`uname \-r`/net
77 ユーザーが指定した入力にシェル展開を適用するのは
79 modutils は信頼できるデータに対してのみシェルコマンドのメタ展開を行う。
80 基本的にこれは設定ファイルのデータのみを展開することを意味する。
81 modutils では、ユーザーは modprobe を (自分自身の設定ファイルを指定して)
82 root 権限で実行することはできない、と仮定している。
83 ユーザーからの入力を指定して modutils を root 権限で起動するプログラム
84 (カーネルを含む) は、正確に一つだけのユーザー入力パラメータを渡し、
85 かつセーフモードに設定しないと、ローカルで root を奪取される危険がある。
93 を置くこともできる。これがないと、指定した module_list が以前の
95 これがあると module_list が以前の module_list に\fB追加される\fP。
101 .I \`kernelversion\`.
107 .RB ( modprobe " や " depmod
109 現在のカーネルのリリースとバージョン (それぞれ 2.2.3 や 2.2 など)
114 .\"NAKANO 原文は if -> of の typo だろう。
115 もし ' や " や ` が文字列にあると、
116 対応する ', ", ` にマッチするまでの全ての文字 (空白文字も)
120 は、その後メタキャラクタのルールにしたがって展開される。
121 .\"NAKANO w.r.t は with regard to かなあ?
122 展開した結果が二つ以上のワードになった場合は、
125 EXPRESSION は以下のいずれかである。
127 .I "WORD compare_op WORD"
128 compare_op は ==, !=, <, <=, >=, > のいずれかである。
131 .I "\-n WORD compare_op WORD"
132 compare_op は ==, !=, <, <=, >=, > のいずれかである。
137 展開した結果が "0" (zero), "false", "" (empty)
138 のいずれかであれば、展開結果の値は FALSE となる。
139 それ以外の場合は展開結果の値は TRUE となる。
142 FILENAME が存在するかどうかのテスト。
145 "autoclean" が有効になっているかどうか (すなわちカーネルから呼ばれたかどうか)
153 .I "define VARIABLE WORD"
154 .I putenv("VARIABLE=WORD")
155 を実行する。この指定は変数の作成・変更のいずれも行える。
157 現在のセッションで実行される全てのコマンドから利用できる。
165 によってモジュールとその依存モジュールを探すために利用される。
166 通常はデフォルトの値を用いるべきである。以下を参照のこと。
174 .IR else ", " elseif ", " endif
175 のいずれかにマッチするまでの全ての指定行が実行される。
177 と解釈されたら、それらの指定行は無視される。
179 行は、内部の最大値である 20 までネストできる。
183 指定行を条件式内部で処理することは避けて欲しい。
187 指定行の条件処理は、単に混乱を生むだけである。ほんとです。
191 .IR if " または " elseif
201 .I "elseif EXPRESSION"
203 .IR if " または " elseif
209 .IR elseif ", " else ", " endif
210 のいずれかが現れるまでの指定行が処理される。
213 これは設定ファイルにおける条件処理を制御する
214 .IR if ", " elseif ", " else
227 .IR else " と " elseif
230 .I "include PATH_TO_CONFIG_FILE"
231 別々のプラットフォームや設定を一つの設定ファイルで扱うのは、
236 指定行を用いれば、この取り扱いは簡単になる。
238 .I "insmod_opt=GENERIC_OPTIONS_TO_INSMOD"
239 insmod に (他では指定できないような) 特殊なオプションが必要な場合は、
240 このオプションで起動の度にそれらを追加することが可能である。
242 通常は insmod の標準的なデフォルトのオプションを変更する必要はない。
247 の記述を含む行の\fB前に\fP置かれた場合は、
248 デフォルトのパスのセットは保存され、それに追加される。
250 パスのセットが設定ファイルで\fB置き換え\fPられる。
254 .I "path[TAG]=A_PATH"
256 引数はモジュールを探すディレクトリの追加分を指定する。
258 指定行は、オプションのタグをとることができる。
259 これはそのモジュールの目的に関する情報を多少なりとも示し、
263 この "path" キーワードに追加されるタグは角括弧 [] で括られる。
264 タグがない場合は、 "misc" タグが指定されたかのように動作する。
268 がある。これはブート時にロードしなければならないモジュールを
269 保有しているすべてのディレクトリをマークするために利用できる。
275 指定行によるデフォルトのパスの置き換えを防ぐことができる。
277 .I "generic_stringfile=A_PATH"
278 これは generic_string ファイルへのパスである。このファイルは
280 によって作成され、モジュールからの文字列情報が必要な
282 通常はデフォルトの値を用いるべきである。以下を参照のこと。
284 .I "pcimapfile=A_PATH"
285 これは pcimap ファイルへのパスである。このファイルは
287 によって作成され、インストールスクリプトが
288 pci デバイスをサポートするモジュールを検索する際に用いられる。
289 通常はデフォルトの値を用いるべきである。以下を参照のこと。
291 .I "isapnpmapfile=A_PATH"
292 これは isapnpmap ファイルへのパスである。このファイルは
294 によって作成され、インストールスクリプトが
295 ISA PNP デバイスをサポートするモジュールを検索する際に用いられる。
296 通常はデフォルトの値を用いるべきである。以下を参照のこと。
298 .I "usbmapfile=A_PATH"
299 これは usbmap ファイルへのパスである。このファイルは
301 によって作成され、インストールスクリプトが
302 USB デバイスをサポートするモジュールを検索する際に用いられる。
303 通常はデフォルトの値を用いるべきである。以下を参照のこと。
305 .I "parportmapfile=A_PATH"
306 これは parportmap ファイルへのパスである。このファイルは
308 によって作成され、インストールスクリプトが
309 parport デバイスをサポートするモジュールを検索する際に用いられる。
310 通常はデフォルトの値を用いるべきである。以下を参照のこと。
312 .I "ieee1394mapfile=A_PATH"
313 これは ieee1394map ファイルへのパスである。このファイルは
315 によって作成され、インストールスクリプトが
316 ieee1394 デバイスをサポートするモジュールを検索する際に用いられる。
317 通常はデフォルトの値を用いるべきである。以下を参照のこと。
319 .I "pnpbiosmapfile=A_PATH"
320 これは pnpbiosmap ファイルへのパスである。このファイルは
322 によって作成され、インストールスクリプトが
323 pnpbios デバイスをサポートするモジュールを検索する際に用いられる。
324 通常はデフォルトの値を用いるべきである。以下を参照のこと。
326 .I "alias alias_name result"
327 "alias" 指定行はモジュールに別名をつけるために用いる。
334 のような行があれば、実際にはそのようなモジュールがなくても
335 .B "modprobe iso9660"
341 alias some_module off
344 という行は、modprobe にそのモジュールのロード要求を無視させる。
348 alias some_module null
351 というエイリアスは、some_module への要求を常に成功させるが、
352 しかし実際にはそのモジュールはインストールされない。
357 指定行で作成されるスタックのベースとして利用できる。
361 (訳注: alias の alias の alias... としてかまわない)。
363 実際に物理的に存在しているモジュールを探すべく、再帰的に展開される。
364 エイリアスの実際の深さの限界は、おおよそ 1000 程度になっている。
365 これは以下のようなループを検知するためである。
373 マッピングの最終的な結果がいずれのモジュールにもマッチしなければ、
374 modprobe はその結果に probe と probeall をマップする。
375 これらも成功しなければ、そのモジュールは見付からなかったことになる。
376 したがって以下のような指定は気が利いていると言える (devfs より)。
377 .\"NAKANO 最後の文、意味わかってません。
380 alias /dev/sg* /dev/sg
381 probeall /dev/sg scsi-hosts sg
385 モジュール A が実際に存在する場合にも、モジュール A をモジュール B への
387 しかしこれは誤解の元であるので\fB推奨できない\fP。
388 歴史的な理由から、カーネルのサウンドシステムには
389 sound.o というモジュールがある。しかしサウンドの開発者たちも、
390 sound をユーザサウンドカード用モジュールへのエイリアスとしたい、
391 すなわち "alias\ sound\ sb" としたいことがあるかもしれない。
393 なおかつ「オプションをエイリアスに与えることが可能」
395 modprobe はモジュール名のエイリアス展開を、
396 その名前が modules.dep に見付かった場合には行わない
398 これはエイリアスと実際のモジュールのあり得る全ての組み合わせに対して
400 実際に存在するモジュールと同じ名前へのエイリアスは避けるべきなのである。
402 .I "[add] probe name module_list"
404 .I "[add] probeall name module_list"
409 のコマンドラインで要求されたモジュール名である場合に限って利用できる。
412 への要求があると、 module_list にあるモジュールが、
413 指定の順序で試される。二つの指定行の違いは、
415 はモジュールの挿入が一度成功すればそこで試行を終了するのに対して、
418 終了ステータスは、いずれかのモジュールのインストールに
421 が前に付加されると、新しいリストを前のリストに置き換えるのではなく追加する。
424 インストールされているカーネルに対するモジュールディレクトリのトップには、
425 モジュールではないファイルがおかれている。
427 modules.generic_string, modules.pcimap, modules.isapnpmap,
428 modules.usbmap, modules.parportmap, modules.ieee1394map,
429 modules.pnpbiosmap のほか、
430 カーネルソースツリーへのビルド用 symlink など、インストールプロセスが
431 ビルドツリーから保存しておきたいと考えたファイルが含まれる。
434 が "not an ELF file" という警告を発するのをやめさせるには、
435 これらのモジュールでないファイルが prune リストに入っていなければならない。
437 は組み込みの prune リストを持っており、これにはいかなるカーネルビルドに
438 おいても存在するファイルが含まれているので、削除することはできない。
439 自分のファイルをこのモジュールディレクトリのトップに追加したら、
448 かつそのディレクトリが標準的なサブディレクトリ名リスト以下、
449 高々一つのサブディレクトリしか含まない場合にしか
450 (すなわちカーネルのインストールでビルドされた
451 トップディレクトリのように見える場合にしか) 参照されない。
452 .\"NAKANO と言うことを言っていると思うのだけれど...
458 .I "[add] options [-k] module [MODULE_SPECIFIC_OPTIONS]"
459 エイリアスされた名前も含め、すべてのモジュール名はそれぞれ固有の
462 エイリアスに対して指定されたオプションは、
463 より「基本的な」名前に対して指定されたオプションよりも高い優先度を持つ。
467 コマンドラインで指定されたオプションは、最も高い優先度を持つ。
474 で実行されていた場合でも、モジュールは autoclean されなくなる。
476 が前に付加されると、新しいリストを前のリストに置き換えるのではなく追加する。
482 は、probe[all] を呼ぶ前に捨てられる。
483 .I MODULE_SPECIFIC_OPTIONS
484 のどれかにシェルにとって特別な文字 (スペース・コンマ・括弧)
485 が含まれている場合には、そのオプションは '"..."'
487 modules.conf の内部でオプションを区切り、 "" は
488 オプションがシェルに渡されるときにそれを区切る。以下に例を示す。
491 abc='"def,ghi jkl (xyz)"'
495 .I "[add] above module module_list"
496 この指定行は、あるモジュールのモジュールスタックの上に
497 他のモジュールセットを "pull in" するのに利用できる。
504 ファイルには記述できないほど複雑なような状況下で有用である。
509 指定行の最適化された場合であるとみなすことができる。
512 の終了ステータスには影響しないことに注意。
514 が前に付加されると、新しいリストを前のリストに置き換えるのではなく追加する。
516 .I "[add] below module module_list"
517 この指定行は、あるモジュールのモジュールスタックの下に
518 他のモジュールセットを "push" するのに利用できる。
525 ファイルには記述できないほど複雑なような状況下で有用である。
530 指定行の最適化された場合であるとみなすことができる。
533 の終了ステータスには影響しないことに注意。
535 が前に付加されると、新しいリストを前のリストに置き換えるのではなく追加する。
537 以下の指定行はモジュールのロード・アンロードの際に
538 特定のコマンドを実行したい場合に利用できる (指定しなくてもよい)。
539 エイリアスされたモジュール名に対してもこれらの指定は可能で、
540 エイリアス展開後のモジュール名に対する指定が他にあれば、
543 .I "pre-install module command"
550 .I "install module command"
551 指定したモジュールをインストールする際に、デフォルトの
557 .I "post-install module command"
564 .I "pre-remove module command"
571 .I "remove module command"
572 指定したモジュールを削除する際に、デフォルト (組み込み) の
578 .I "post-remove module command"
585 .I "persistdir\fR=directory_name\fI"
587 が永続モジュールパラメータを含むモジュールを削除する時、
592 が永続モジュールパラメータを含むモジュールをロードする時、
597 はモジュールがロードされた時に読み込み可能で、
598 モジュールがアンロードされた時に書き込み可能でなければならない。
599 デフォルト値は /var/lib/modules/persist である。
600 多くの Linux ディストリビューションはファイルシステムをマウントする前に
601 モジュールをロードするが、これは永続データに関する問題を引き起こすかもしれない。
602 /var が別のパーティションにあって、モジュールがロードされてからマウントされる場合、
605 /var が別のパーティションにある場合には、二つの選択肢がある。
610 例えば /lib/modules/persist を指定する。
613 が実行されるときにルートパーティションが書き込み可能であることを仮定している。
615 2)\ ファイルシステム関係のモジュールを全て最初にロードし、
616 /var パーティションをマウントし、それから残りのモジュールをロードする。
617 これはファイルシステムに永続データがないことを仮定している。
620 設定ファイル '/etc/modules.conf' がない場合や、
621 あるいは指定行の上書き変更がない場合には、
625 depfile=/lib/modules/`uname \-r`/modules.dep
626 generic_stringfile=/lib/modules/`uname \-r`/modules.generic_string
627 pcimapfile=/lib/modules/`uname \-r`/modules.pcimap
628 isapnpmapfile=/lib/modules/`uname \-r`/modules.isapnpmap
629 usbmapfile=/lib/modules/`uname \-r`/modules.usbmap
630 parportmapfile=/lib/modules/`uname \-r`/modules.parportmap
631 ieee1394mapfile=/lib/modules/`uname \-r`/modules.ieee1394map
632 pnpbiosmapfile=/lib/modules/`uname \-r`/modules.pnpbiosmap
634 path[boot]=/lib/modules/boot
635 path[toplevel]=/lib/modules/`uname \-r`
636 path[toplevel]=/lib/modules/`kernelversion`
637 path[toplevel]=/lib/modules/default
638 path[toplevel]=/lib/modules
640 persistdir=/var/lib/modules/persist
646 指定行に対しても一連のデフォルト設定がある。
647 このセットは継続的に拡張されているので、ここにはリストしない。
656 指定行は、以下のようにモジュールに必要なオプションを指定する。
670 指定行は (されていないモジュールと) 同じように使うことができる。
671 これは例えばダミーのモジュールに便利である。
675 options dummy0 \-o dummy0
678 歴史的な理由から、もし /etc/modules.conf が存在しないと、
679 modutils は代わりに /etc/conf.modules を読む。
681 /etc/modules.conf に置き換えるべきである。
682 このバージョンの modutils では、
683 /etc/conf.modules があると警告メッセージを発する。
684 以降のバージョンではエラーメッセージを出して
685 モジュールのロードを行わないことになるだろう。
692 Bjorn Ekwall <bj0rn@blox.se>
693 Keith Owens <kaos@ocs.com.au>