File: modprobe.8

package info (click to toggle)
manpages-ja 0.5.0.0.20120606-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 25,964 kB
  • sloc: perl: 161; makefile: 116
file content (280 lines) | stat: -rw-r--r-- 14,239 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
.\" Copyright (c) 1994, 1995 Jacques Gelinas (jacques@solucorp.qc.ca)
.\" Copyright (c) 1995, 1999 Bjorn Ekwall (bj0rn@blox.se)
.\" This program is distributed according to the Gnu General Public License.
.\" See the file COPYING in the base distribution directory
.\"
.\" Japanese Version Copyright (c) 2000 NAKANO Takeo all rights reserved.
.\" Translated Thu 12 Oct 2000 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
.\" Updated Sun 28 Jan 2001 by Kentaro Shirakata <argrath@ub32.org>
.\" Updated Tue  4 Apr 2001 by Kentaro Shirakata <argrath@ub32.org>
.\" Updated Fri 30 Nov 2001 by Kentaro Shirakata <argrath@ub32.org>
.\" Updated Mon 18 Mar 2002 by Kentaro Shirakata <argrath@ub32.org>
.\" Updated Sun 23 Feb 2003 by Kentaro Shirakata <argrath@ub32.org>
.\"
.TH MODPROBE 8 "February 4, 2002" Linux "Linux Module Support"
.SH 名前
modprobe \- ローダブルモジュールの高レベル管理
.SH 書式
.hy 0
.B modprobe
[\-adnqv]\ [\-C\ \fIconfig\fR]\ module\ [symbol=value\ ...]
.br
.B modprobe
[\-adnqv] [\-C\ \fIconfig\fR] [\-t\ \fItype\fR] pattern
.br
.B modprobe
\-l [\-C\ \fIconfig\fR] [\-t\ \fItype\fR] pattern
.br
.B modprobe
\-c [\-C\ \fIconfig\fR]
.br
.B modprobe
\-r [\-dnv] [\-C\ \fIconfig\fR] [module ...]
.br
.B modprobe
-Vh
.SH オプション
.TP
.BR \-a ", " \-\-all
最初にロードに成功した後に停止するのではなく、
マッチしたモジュールを\fBすべて\fPロードする。
.TP
.BR \-c ", " \-\-showconfig
現在用いられている設定を表示する。
.TP
\fB\-C\fR,\ \fB\-\-config\fR\ \fIconfig\fR
設定ファイルを \fI/etc/modules.conf\fR ではなく \fIconfig\fR にする。
.RI ( /etc/modules.conf
はなくてもよい)。
環境変数 \fBMODULECONF\fR でも設定ファイルを /etc/modules.conf
(あるいは推奨しないが \fI/etc/conf.modules\fR) から変更できる。
.TP
環境変数
.B UNAME_MACHINE
をセットすると、modutils は uname() システムコールの machine フィールドの
代わりにこの変数の値を用いる。
これは主に 32 ビットユーザー空間で 64 ビットモジュールをコンパイルする
(またはその逆)場合に用いる。
現在の modutils はモジュールに対する完全なクロスビルドモードに対応しておらず、
ホストアーキテクチャの 32 ビット版と 64 ビット版を選択できるだけである。
.TP
.BR \-d ", " \-\-debug
モジュールのスタックの内部表現に関する情報を表示する。
.TP
.BR \-h ", " \-\-help
オプションの一覧を表示して直ちに終了する。
.TP
.BR \-k ", " \-\-autoclean
ロード済みのモジュールに "autoclean" を設定する。
カーネルが
.B modprobe
に足りない機能をモジュールとして提供するよう依頼するときに用いられる。
\fB\-k\fR オプションを指定すると、自動的に \fB\-q\fR オプションも有効になる。
これらのオプションは自動的に \fBinsmod\fR に送られる。
.TP
.BR \-l ", " \-\-list
マッチするモジュールをリストする。
.TP
.BR \-n ", " \-\-show
実際には動作を行わず、何が行われるかを表示する。
.TP
.BR \-q ", " \-\-quiet
\fBinsmod\fR がモジュールのインストールに失敗しても報告しない。
黙って他の可能性を試しながら通常のように継続する。
このオプションは自動的に \fBinsmod\fR に送られる。
.TP
.BR \-r ", " \-\-remove
コマンドラインでモジュールが指定されればモジュール (のスタック) を削除する。
されなければ autoclean を実行する。
.TP
.BR \-s ", " \-\-syslog
標準エラー出力にではなく syslog を経由してレポートする。
このオプションは自動的に \fBinsmod\fR に送られる。
.TP
\fB\-t\fR\ \fImoduletype\fR;\ \fB\-\-type\fR\ \fImoduletype\fR
指定したタイプのモジュールだけを扱う。
modprobe は、ディレクトリパスに "/\fImoduletype\fR/"
をこの形で含むモジュールだけしか対象にしない。
\fImoduletype\fR にはディレクトリを複数の階層で指定しても良い。例えば
"\fB\-t\fR\ \fIdrivers/net\fR" とすれば、 
\fIxxx/drivers/net/\fR およびそのサブディレクトリにあるモジュールだけを
対象にする。
.TP
.BR \-v ", " \-\-verbose
すべてのコマンドを、実行される通りに表示する。
.TP
.BR "\-V, \-\-version"
\fBmodprobe\fR のバージョンを表示する。
.TP
.B 注意:
モジュール名にはパス ('/') や末尾の '.o' を含めてはならない。
例えば、 'slip' は
.B modprobe
に対する正当なモジュール名だが、
'/lib/modules/2.2.19/net/slip' や 'slip.o' は不正である。
これはコマンドラインと設定ファイルの両方に適用されるルールである。
.SH 説明
\fBmodprobe\fR と \fBdepmod\fRは、Linux のモジュール化されたカーネルを、
あらゆるユーザー、管理者、ディストリビューションの作成者にとって
より管理しやすいものにするために作成された。
.PP
\fBmodprobe\fR は Makefile に似た形式で依存関係を記述したファイルを用いる。
これは \fBdepmod\fR によって作成されるもので、
あらかじめ定められたディレクトリツリーに置かれたモジュールのセットから、
関連するファイル (群) を自動的にロードするためのものである。
.PP
\fBmodprobe\fRはモジュールのセット (単一のモジュールであることも、
依存関係にあるモジュールのスタックであることもある) のロードに用いられる。
また、特定のタグがつけられたすべてのモジュールをロードするのにも用いられる。
.PP
\fBmodprobe\fRはモジュールスタックに必要とされるベースモジュールを、
依存関係を記述したファイル \fImodules.dep\fR の記述にしたがって
すべてロードする。これらのモジュールのどれかをロードできないと、
現在のセッションでロードされたモジュールスタックの全体が
自動的にアンロードされることになる。
.PP
\fBmodprobe\fRがモジュールをロードするやりかたは 2 種類ある。
ひとつめ (プローブモード) は、
(\fIpattern\fR で定義された) リストからモジュールをロードしようとする。
モジュールがひとつロードできると、\fBmodprobe\fRはただちに停止する。
これはイーサネットドライバのリストから
モジュールをひとつロードするような場合に利用できるだろう。
.PP
もうひとつの方では、\fBmodprobe\fRはリストの\fBすべての\fPモジュールを
ロードする。以下の「\fB例\fP」の記述を参照のこと。
.PP
\fB\-r\fRオプションをつけると、 modprobe は自動的にモジュールのスタックを
アンロードする("\fBrmmod \-r\fR"と同様)。
"\fBmodprobe \-r\fR"とだけすると、
使われていない autoload されたモジュールを削除すると同時に、
設定ファイル \fI/etc/modules.conf\fR の記述にしたがって
削除の前処理・後処理用のコマンドを実行する。
.PP
\fB\-l\fR オプションと\fB\-t\fRオプションを同時に指定すると、
利用可能なすべてのモジュールのうち、特定のタイプのものだけが表示される。
.PP
\fB\-c\fRオプションを指定すると、
現在用いられている設定が表示される (デフォルト + 設定ファイル)。
.SH 設定
\fBmodprobe\fR(と\fBdepmod\fR)の動作は、設定ファイル
\fI/etc/modules.conf\fRによって変更できる (このファイルはなくてもよい)。
.PP
このファイルに記述できる内容の詳細や、\fBdepmod\fRと
\fBmodprobe\fRが用いるデフォルトの設定に関しては
\fBmodules.conf\fR(5)を参照のこと。
.PP
モジュールがカーネルによって "autoload" された場合は、
削除の前処理・後処理のコマンドは\fB実行されない\fPことに注意。
将来サポートされる予定の「永続型モジュール保存 (persistent module storage)」
に期待して欲しい。
.\"NAKANO 訳語?
.PP
削除の前後処理の機能を用いたい場合は、
kerneld の autoload を使わないようにして、
以下のような行を \fBcrontab\fR に書きこむ必要がある
(これは kmod システムによっても用いられる)。
以下では autoclean を 2 分おきに行っている。
.sp
.nf
 */2 * * * * test \-f /proc/modules && /sbin/modprobe \-r
.fi
.SH 動作ルール
\fBmodprobe\fRは、現在のカーネルリリース向けにコンパイルされたモジュールを
含むディレクトリをまず最初に見る。
そこにモジュールがなければ、\fBmodprobe\fRはカーネルバージョンに共通の
ディレクトリ (2.0, 2.2 など) を見る。
そこにもモジュールがなければ、
デフォルトのリリース以外のモジュールを含むディレクトリを見る。
.PP
新しい Linux をインストールしたときは、モジュールをそのカーネルのリリース
(とバージョン) に対応したディレクトリに移動すべきである。
そしてこのディレクトリから「デフォルト」のディレクトリに
シンボリックリンクをはるようにする。
.PP
新しいカーネルをコンパイルして"\fBmake modules_install\fR"
コマンドを実行すると、新しいディレクトリは作成するが、
「デフォルト」のリンクは変更しない。
.PP
カーネルの配布に含まれないモジュールを入手したら、
それは \fI/lib/modules\fR 以下のバージョンには依存しないディレクトリに
配置するとよい。
.PP
以上がデフォルトの動作であるが、これは
\fI/etc/modules.conf\fR の記述によって変更できる。
.SH 例
.TP
.B modprobe \-t net
"net" という名前のディレクトリにあるモジュールのどれかひとつをロードする。
どれかのモジュールのロードに成功するまで、各モジュールがひとつづつ試みられる。
.TP
.B modprobe \-a \-t boot
"boot"という名前のディレクトリにあるすべてのモジュールがロードされる。
.TP
.B modprobe slip
これを実行すると、
s1hc.o というモジュールがまだロードされていなければロードしようとする。
slip モジュールには s1hc モジュールの機能が必要だからである。
この依存関係は、\fBdepmod\fRによって (これ以前に) 自動的に生成された
\fImodules.dep\fR というファイルに記述されている。
.TP
.B modprobe \-r slip
slip モジュールをアンロードする。
s1hc モジュールも自動的にアンロードする
(ただし ppp のような他のモジュールによって利用されていない場合)。
.SH ファイル
.nf
.IR /etc/modules.conf ( /etc/conf.modules も使えるが推奨しない)
.IR /lib/modules/*/modules.dep ,
.I  /lib/modules/*
.fi
.SH 関連項目
.BR depmod "(8), " lsmod "(8), " kerneld "(8), " ksyms "(8), " rmmod (8)
.SH セーフモード
実効 UID が 実 UID と異なる場合、 \fBmodprobe\fR は入力を非常に慎重に扱う。
最後のパラメータは(たとえ'-'で始まっていても)モジュール名として扱われる。
一つのモジュール名だけが指定でき、"変数=値"の形のオプション指定は禁止される。
モジュール名は常に文字列として扱われ、セーフモードではメタ展開は行われない。
しかし、設定ファイルから読み込んだデータはメタ展開を行う。
.PP
modprobe がカーネルから起動された場合、実効 UID は実 UID と異なるかもしれない。
これはカーネルが 2.4.0-test11 以上の時に真となる。
理想的な世界では \fBmodprobe\fR は
カーネルが正しいパラメータだけを modprobe に渡すと信用することが出来た。
しかし高レベルカーネルコードは未検証のパラメータを直接ユーザーから modprobe に渡すので、
少なくとも一つのローカル root exploit が発生する。
それで、もはや modprobe はカーネルからの入力を信用しない。
.PP
.ne 8
\fBmodprobe\fR は環境変数が以下の文字列しか含まない場合、
自動的にセーフモードとなる。
.nf
 HOME=/
 TERM=linux
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
.fi
これは昔のカーネルのように実 UID と実効 UID が同じであっても、
カーネル 2.2 から 2.4.0-test11 までの カーネルから modprobe が起動されたことを検出する。
.SH ログ記録コマンド
\fI/var/log/ksymoops\fR ディレクトリが存在し、\fBmodprobe\fR がモジュールを
読み込み・削除できるようなオプションを付けて起動されていた場合、
modprobe は実行したコマンドと返り値を
\fI/var/log/ksymoops/`date\ +%Y%m%d.log`\fR のファイル名で記録する。
この自動ログ記録を停止するオプションはない。
もしこのような記録をさせたくなければ、
\fI/var/log/ksymoops\fR ディレクトリを作らなければよい。
もしディレクトリを作るなら、root が所有してモードは 644 か 600 にし、
毎日ぐらいのペースで \fBinsmod_ksymoops_clean\fR を実行するべきである。
.SH 必要なユーティリティ
.BR depmod "(8), " insmod (8)
.SH 注意
\fBmodprobe\fR に与えるパターンが (シェルによって解釈されずに)
意図通りに解釈されるようにするには、
パターンにエスケープが必要となることが多いだろう。
.SH バグ
\fBmodprobe\fR\ [ \fB\-V\fR\ |\ \fB\-\-version\fR ] は直ちに終了するべきである。
しかしながら、現在はバージョン情報を表示した後、
何もオプションが指定されなかったかのように振舞う。
.SH 著者
Jacques Gelinas (jack@solucorp.qc.ca)
.br
Bjorn Ekwall (bj0rn@blox.se)