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 \- カーネルモジュールのロードに対する設定ファイル
16 このマニュアルは、Linux Kernel 2.4 の時代に使われていた modutils
17 パッケージの設定ファイル \fBmodules.conf\fP
18 の説明で、古いものです。現在ではたいていの場合、kmod
19 パッケージのユーティリティがモジュールの管理に使われており、
20 設定ファイルのマニュアルも \fBmodprobe.d\fP と \fBdepmod.d\fP
21 の二つに別れています。(2022/12/02, Linux JM Project)
28 によって変更できる (このファイルは無くてもよい)。
32 全ての空行と、'#' 文字以降の行末までは無視される。
34 行末が '\e' になっている行は次の行に継続する。
36 残りは指定行 (directive) であり、
40 [add] above module module_list
41 alias alias_name result
42 [add] below module module_list
49 include PATH_TO_CONFIG_FILE
50 insmod_opt=GENERIC_OPTIONS_TO_INSMOD
51 install module command ...
53 [add] options module MODULE_SPECIFIC_OPTIONS
56 generic_stringfile=A_PATH
61 ieee1394mapfile=A_PATH
63 [add] probe name module_list
64 [add] probeall name module_list
66 post-install module command ...
67 post-remove module command ...
68 pre-install module command ...
69 pre-remove module command ...
70 remove module command ...
71 persistdir directory_name
74 各指定行に与える引数の解釈では、シェルのメタキャラクタが有効になる。
75 すなわち、ワイルドカードやコマンドのバッククォートといった、
79 path[misc]=/lib/modules/1.1.5?/local
80 path[net]=/lib/modules/`uname \-r`/net
84 ユーザーが指定した入力にシェル展開を適用するのは
86 modutils は信頼できるデータに対してのみシェルコマンドのメタ展開を行う。
87 基本的にこれは設定ファイルのデータのみを展開することを意味する。
88 modutils では、ユーザーは modprobe を (自分自身の設定ファイルを指定して)
89 root 権限で実行することはできない、と仮定している。
90 ユーザーからの入力を指定して modutils を root 権限で起動するプログラム
91 (カーネルを含む) は、正確に一つだけのユーザー入力パラメータを渡し、
92 かつセーフモードに設定しないと、ローカルで root を奪取される危険がある。
100 を置くこともできる。これがないと、指定した module_list が以前の
102 これがあると module_list が以前の module_list に\fB追加される\fP。
108 .I \`kernelversion\`.
114 .RB ( modprobe " や " depmod
116 現在のカーネルのリリースとバージョン (それぞれ 2.2.3 や 2.2 など)
121 .\"NAKANO 原文は if -> of の typo だろう。
122 もし ' や " や ` が文字列にあると、
123 対応する ', ", ` にマッチするまでの全ての文字 (空白文字も)
127 は、その後メタキャラクタのルールにしたがって展開される。
128 .\"NAKANO w.r.t は with regard to かなあ?
129 展開した結果が二つ以上のワードになった場合は、
132 EXPRESSION は以下のいずれかである。
134 .I "WORD compare_op WORD"
135 compare_op は ==, !=, <, <=, >=, > のいずれかである。
138 .I "\-n WORD compare_op WORD"
139 compare_op は ==, !=, <, <=, >=, > のいずれかである。
144 展開した結果が "0" (zero), "false", "" (empty)
145 のいずれかであれば、展開結果の値は FALSE となる。
146 それ以外の場合は展開結果の値は TRUE となる。
149 FILENAME が存在するかどうかのテスト。
152 "autoclean" が有効になっているかどうか (すなわちカーネルから呼ばれたかどうか)
160 .I "define VARIABLE WORD"
161 .I putenv("VARIABLE=WORD")
162 を実行する。この指定は変数の作成・変更のいずれも行える。
164 現在のセッションで実行される全てのコマンドから利用できる。
172 によってモジュールとその依存モジュールを探すために利用される。
173 通常はデフォルトの値を用いるべきである。以下を参照のこと。
181 .IR else ", " elseif ", " endif
182 のいずれかにマッチするまでの全ての指定行が実行される。
184 と解釈されたら、それらの指定行は無視される。
186 行は、内部の最大値である 20 までネストできる。
190 指定行を条件式内部で処理することは避けて欲しい。
194 指定行の条件処理は、単に混乱を生むだけである。ほんとです。
198 .IR if " または " elseif
208 .I "elseif EXPRESSION"
210 .IR if " または " elseif
216 .IR elseif ", " else ", " endif
217 のいずれかが現れるまでの指定行が処理される。
220 これは設定ファイルにおける条件処理を制御する
221 .IR if ", " elseif ", " else
234 .IR else " と " elseif
237 .I "include PATH_TO_CONFIG_FILE"
238 別々のプラットフォームや設定を一つの設定ファイルで扱うのは、
243 指定行を用いれば、この取り扱いは簡単になる。
245 .I "insmod_opt=GENERIC_OPTIONS_TO_INSMOD"
246 insmod に (他では指定できないような) 特殊なオプションが必要な場合は、
247 このオプションで起動の度にそれらを追加することが可能である。
249 通常は insmod の標準的なデフォルトのオプションを変更する必要はない。
254 の記述を含む行の\fB前に\fP置かれた場合は、
255 デフォルトのパスのセットは保存され、それに追加される。
257 パスのセットが設定ファイルで\fB置き換え\fPられる。
261 .I "path[TAG]=A_PATH"
263 引数はモジュールを探すディレクトリの追加分を指定する。
265 指定行は、オプションのタグをとることができる。
266 これはそのモジュールの目的に関する情報を多少なりとも示し、
270 この "path" キーワードに追加されるタグは角括弧 [] で括られる。
271 タグがない場合は、 "misc" タグが指定されたかのように動作する。
275 がある。これはブート時にロードしなければならないモジュールを
276 保有しているすべてのディレクトリをマークするために利用できる。
282 指定行によるデフォルトのパスの置き換えを防ぐことができる。
284 .I "generic_stringfile=A_PATH"
285 これは generic_string ファイルへのパスである。このファイルは
287 によって作成され、モジュールからの文字列情報が必要な
289 通常はデフォルトの値を用いるべきである。以下を参照のこと。
291 .I "pcimapfile=A_PATH"
292 これは pcimap ファイルへのパスである。このファイルは
294 によって作成され、インストールスクリプトが
295 pci デバイスをサポートするモジュールを検索する際に用いられる。
296 通常はデフォルトの値を用いるべきである。以下を参照のこと。
298 .I "isapnpmapfile=A_PATH"
299 これは isapnpmap ファイルへのパスである。このファイルは
301 によって作成され、インストールスクリプトが
302 ISA PNP デバイスをサポートするモジュールを検索する際に用いられる。
303 通常はデフォルトの値を用いるべきである。以下を参照のこと。
305 .I "usbmapfile=A_PATH"
306 これは usbmap ファイルへのパスである。このファイルは
308 によって作成され、インストールスクリプトが
309 USB デバイスをサポートするモジュールを検索する際に用いられる。
310 通常はデフォルトの値を用いるべきである。以下を参照のこと。
312 .I "parportmapfile=A_PATH"
313 これは parportmap ファイルへのパスである。このファイルは
315 によって作成され、インストールスクリプトが
316 parport デバイスをサポートするモジュールを検索する際に用いられる。
317 通常はデフォルトの値を用いるべきである。以下を参照のこと。
319 .I "ieee1394mapfile=A_PATH"
320 これは ieee1394map ファイルへのパスである。このファイルは
322 によって作成され、インストールスクリプトが
323 ieee1394 デバイスをサポートするモジュールを検索する際に用いられる。
324 通常はデフォルトの値を用いるべきである。以下を参照のこと。
326 .I "pnpbiosmapfile=A_PATH"
327 これは pnpbiosmap ファイルへのパスである。このファイルは
329 によって作成され、インストールスクリプトが
330 pnpbios デバイスをサポートするモジュールを検索する際に用いられる。
331 通常はデフォルトの値を用いるべきである。以下を参照のこと。
333 .I "alias alias_name result"
334 "alias" 指定行はモジュールに別名をつけるために用いる。
341 のような行があれば、実際にはそのようなモジュールがなくても
342 .B "modprobe iso9660"
348 alias some_module off
351 という行は、modprobe にそのモジュールのロード要求を無視させる。
355 alias some_module null
358 というエイリアスは、some_module への要求を常に成功させるが、
359 しかし実際にはそのモジュールはインストールされない。
364 指定行で作成されるスタックのベースとして利用できる。
368 (訳注: alias の alias の alias... としてかまわない)。
370 実際に物理的に存在しているモジュールを探すべく、再帰的に展開される。
371 エイリアスの実際の深さの限界は、おおよそ 1000 程度になっている。
372 これは以下のようなループを検知するためである。
380 マッピングの最終的な結果がいずれのモジュールにもマッチしなければ、
381 modprobe はその結果に probe と probeall をマップする。
382 これらも成功しなければ、そのモジュールは見付からなかったことになる。
383 したがって以下のような指定は気が利いていると言える (devfs より)。
384 .\"NAKANO 最後の文、意味わかってません。
387 alias /dev/sg* /dev/sg
388 probeall /dev/sg scsi-hosts sg
392 モジュール A が実際に存在する場合にも、モジュール A をモジュール B への
394 しかしこれは誤解の元であるので\fB推奨できない\fP。
395 歴史的な理由から、カーネルのサウンドシステムには
396 sound.o というモジュールがある。しかしサウンドの開発者たちも、
397 sound をユーザサウンドカード用モジュールへのエイリアスとしたい、
398 すなわち "alias\ sound\ sb" としたいことがあるかもしれない。
400 なおかつ「オプションをエイリアスに与えることが可能」
402 modprobe はモジュール名のエイリアス展開を、
403 その名前が modules.dep に見付かった場合には行わない
405 これはエイリアスと実際のモジュールのあり得る全ての組み合わせに対して
407 実際に存在するモジュールと同じ名前へのエイリアスは避けるべきなのである。
409 .I "[add] probe name module_list"
411 .I "[add] probeall name module_list"
416 のコマンドラインで要求されたモジュール名である場合に限って利用できる。
419 への要求があると、 module_list にあるモジュールが、
420 指定の順序で試される。二つの指定行の違いは、
422 はモジュールの挿入が一度成功すればそこで試行を終了するのに対して、
425 終了ステータスは、いずれかのモジュールのインストールに
428 が前に付加されると、新しいリストを前のリストに置き換えるのではなく追加する。
431 インストールされているカーネルに対するモジュールディレクトリのトップには、
432 モジュールではないファイルがおかれている。
434 modules.generic_string, modules.pcimap, modules.isapnpmap,
435 modules.usbmap, modules.parportmap, modules.ieee1394map,
436 modules.pnpbiosmap のほか、
437 カーネルソースツリーへのビルド用 symlink など、インストールプロセスが
438 ビルドツリーから保存しておきたいと考えたファイルが含まれる。
441 が "not an ELF file" という警告を発するのをやめさせるには、
442 これらのモジュールでないファイルが prune リストに入っていなければならない。
444 は組み込みの prune リストを持っており、これにはいかなるカーネルビルドに
445 おいても存在するファイルが含まれているので、削除することはできない。
446 自分のファイルをこのモジュールディレクトリのトップに追加したら、
455 かつそのディレクトリが標準的なサブディレクトリ名リスト以下、
456 高々一つのサブディレクトリしか含まない場合にしか
457 (すなわちカーネルのインストールでビルドされた
458 トップディレクトリのように見える場合にしか) 参照されない。
459 .\"NAKANO と言うことを言っていると思うのだけれど...
465 .I "[add] options [-k] module [MODULE_SPECIFIC_OPTIONS]"
466 エイリアスされた名前も含め、すべてのモジュール名はそれぞれ固有の
469 エイリアスに対して指定されたオプションは、
470 より「基本的な」名前に対して指定されたオプションよりも高い優先度を持つ。
474 コマンドラインで指定されたオプションは、最も高い優先度を持つ。
481 で実行されていた場合でも、モジュールは autoclean されなくなる。
483 が前に付加されると、新しいリストを前のリストに置き換えるのではなく追加する。
489 は、probe[all] を呼ぶ前に捨てられる。
490 .I MODULE_SPECIFIC_OPTIONS
491 のどれかにシェルにとって特別な文字 (スペース・コンマ・括弧)
492 が含まれている場合には、そのオプションは '"..."'
494 modules.conf の内部でオプションを区切り、 "" は
495 オプションがシェルに渡されるときにそれを区切る。以下に例を示す。
498 abc='"def,ghi jkl (xyz)"'
502 .I "[add] above module module_list"
503 この指定行は、あるモジュールのモジュールスタックの上に
504 他のモジュールセットを "pull in" するのに利用できる。
511 ファイルには記述できないほど複雑なような状況下で有用である。
516 指定行の最適化された場合であるとみなすことができる。
519 の終了ステータスには影響しないことに注意。
521 が前に付加されると、新しいリストを前のリストに置き換えるのではなく追加する。
523 .I "[add] below module module_list"
524 この指定行は、あるモジュールのモジュールスタックの下に
525 他のモジュールセットを "push" するのに利用できる。
532 ファイルには記述できないほど複雑なような状況下で有用である。
537 指定行の最適化された場合であるとみなすことができる。
540 の終了ステータスには影響しないことに注意。
542 が前に付加されると、新しいリストを前のリストに置き換えるのではなく追加する。
544 以下の指定行はモジュールのロード・アンロードの際に
545 特定のコマンドを実行したい場合に利用できる (指定しなくてもよい)。
546 エイリアスされたモジュール名に対してもこれらの指定は可能で、
547 エイリアス展開後のモジュール名に対する指定が他にあれば、
550 .I "pre-install module command"
557 .I "install module command"
558 指定したモジュールをインストールする際に、デフォルトの
564 .I "post-install module command"
571 .I "pre-remove module command"
578 .I "remove module command"
579 指定したモジュールを削除する際に、デフォルト (組み込み) の
585 .I "post-remove module command"
592 .I "persistdir\fR=directory_name\fI"
594 が永続モジュールパラメータを含むモジュールを削除する時、
599 が永続モジュールパラメータを含むモジュールをロードする時、
604 はモジュールがロードされた時に読み込み可能で、
605 モジュールがアンロードされた時に書き込み可能でなければならない。
606 デフォルト値は /var/lib/modules/persist である。
607 多くの Linux ディストリビューションはファイルシステムをマウントする前に
608 モジュールをロードするが、これは永続データに関する問題を引き起こすかもしれない。
609 /var が別のパーティションにあって、モジュールがロードされてからマウントされる場合、
612 /var が別のパーティションにある場合には、二つの選択肢がある。
617 例えば /lib/modules/persist を指定する。
620 が実行されるときにルートパーティションが書き込み可能であることを仮定している。
622 2)\ ファイルシステム関係のモジュールを全て最初にロードし、
623 /var パーティションをマウントし、それから残りのモジュールをロードする。
624 これはファイルシステムに永続データがないことを仮定している。
627 設定ファイル '/etc/modules.conf' がない場合や、
628 あるいは指定行の上書き変更がない場合には、
632 depfile=/lib/modules/`uname \-r`/modules.dep
633 generic_stringfile=/lib/modules/`uname \-r`/modules.generic_string
634 pcimapfile=/lib/modules/`uname \-r`/modules.pcimap
635 isapnpmapfile=/lib/modules/`uname \-r`/modules.isapnpmap
636 usbmapfile=/lib/modules/`uname \-r`/modules.usbmap
637 parportmapfile=/lib/modules/`uname \-r`/modules.parportmap
638 ieee1394mapfile=/lib/modules/`uname \-r`/modules.ieee1394map
639 pnpbiosmapfile=/lib/modules/`uname \-r`/modules.pnpbiosmap
641 path[boot]=/lib/modules/boot
642 path[toplevel]=/lib/modules/`uname \-r`
643 path[toplevel]=/lib/modules/`kernelversion`
644 path[toplevel]=/lib/modules/default
645 path[toplevel]=/lib/modules
647 persistdir=/var/lib/modules/persist
653 指定行に対しても一連のデフォルト設定がある。
654 このセットは継続的に拡張されているので、ここにはリストしない。
663 指定行は、以下のようにモジュールに必要なオプションを指定する。
677 指定行は (されていないモジュールと) 同じように使うことができる。
678 これは例えばダミーのモジュールに便利である。
682 options dummy0 \-o dummy0
685 歴史的な理由から、もし /etc/modules.conf が存在しないと、
686 modutils は代わりに /etc/conf.modules を読む。
688 /etc/modules.conf に置き換えるべきである。
689 このバージョンの modutils では、
690 /etc/conf.modules があると警告メッセージを発する。
691 以降のバージョンではエラーメッセージを出して
692 モジュールのロードを行わないことになるだろう。
699 Bjorn Ekwall <bj0rn@blox.se>
700 Keith Owens <kaos@ocs.com.au>