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
|
.\" 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
.\"
.\" Translated Sun Aug 15 10:53:46 JST 1999
.\" by FUJIWARA Teruyoshi <fujiwara@linux.or.jp>
.\" Updated Thu 12 Oct 2000 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
.\" Updated Sat 5 Jan 2002 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
.\" Updated Fri 24 Apr 2002 by Kentaro Shirakata <argrath@ub32.org>
.\" Updated Sun 23 Feb 2003 by Kentaro Shirakata <argrath@ub32.org>
.\"
.TH DEPMOD 8 "January 26, 2002" Linux "Linux Module Support"
.SH 名前
depmod \- ローダブルカーネルモジュールの依存関係の記述を扱う
.SH 書式
.B depmod
[\-aA] [\-ehnqrsuvV]
.RI [\-C\ configfile "] [\-F\ " kernelsyms "] [\-b " basedirectory ]
.RI [ forced_version ]
.br
.B depmod \fR[\-enqrsuv] [\-F \fIkernelsyms\fR] module1.o module2.o ...
.SH 説明
.B depmod
および
.B modprobe
は、 Linux のモジュール化カーネルを管理するための、
ユーザー・管理者・ディストリビューションメンテナ向けユーティリティである。
.PP
.B depmod
は、コマンドラインで指定されたモジュール
(あるいは設定ファイルで指定されたディレクトリにあるモジュール)
のセットにあるシンボルに基づき、
"Makefile" 的な依存関係ファイルを作成する。
.PP
.B depmod
の普通の使い方は、
.I /etc/rc.d
にある rc ファイルのどれかに
.br
.B "/sbin/depmod -a"
.br
という行を入れることである。
これにより、正しいモジュールの依存関係をシステムの起動直後に使用できる。
現在は
.B \-a
オプションは省略可能である。
起動時には、
.B \-q
オプションの方がより適切である。
こちらは解決できなかったシンボルに関するワーニングを出力しない。
.PP
新しいカーネルのコンパイル直後に依存関係ファイルを作成することもできる。
例えば 2.2.98 カーネルのもとで
カーネル 2.2.99 とそのモジュールを初めてコンパイルしたとき、
"\fBdepmod\ -a\ 2.2.99\fR" とすれば、正しい位置にファイルが作成される。
しかしこの場合、
カーネルへの依存関係は正しいとは保証されない。
この扱いに関しては、上記の
.BR \-F ", " \-C ", " \-b
各オプションの説明を参照のこと。
.PP
モジュールと、他のモジュールからエクスポートされたシンボルとの関係を
構築する際に、
.B depmod
はモジュールやエクスポートされたシンボルの GPL 状態を考慮しない。
つまり、depmod は GPL 互換でないライセンスのモジュールが GPL 専用シンボル
(カーネル中の EXPORT_SYMBOL_GPL)を参照してもエラーを出さない。
しかし、insmod は 非 GPL モジュールを GPL 専用シンボルで解決することを
拒否するので、実際の読み込みは失敗する。
.SH オプション
.TP
.BR \-a ", " \-\-all
設定ファイル
.I /etc/modules.conf
があれば、そこで指定されている全てのディレクトリでモジュールを検索する。
.TP
.BR \-A ", " \-\-quick
ファイルのタイムスタンプを比較し、さらに必要ならば
.B "depmod \-a"
と同じように振る舞う。
このオプションは、何か変更があった場合にのみ
依存関係ファイルを更新する。
.TP
.BR \-e ", " \-\-errsyms
各モジュールごとに、解決されていない全てのシンボルを表示する。
.TP
.BR \-h ", " \-\-help
オプションの一覧を表示して直ちに終了する。
.TP
.BR \-n ", " \-\-show
依存関係ファイルを\fI/lib/modules\fR以下ではなく標準出力に書き出す。
.TP
.BR \-q ", " \-\-quiet
quiet モード。見付からないシンボルがあっても文句を言わない。
.TP
.BR \-r ", " \-\-root
ユーザによっては、モジュールを root 以外のユーザー ID でコンパイルし、
そのモジュールを root でインストールすることがある。
このプロセスでは、モジュールの所有者が root 以外のユーザー ID
のままになることがある (ディレクトリの所有者が root であっても)。
非 root のユーザー ID を許してしまうと、
侵入者がそのユーザー ID 保有のモジュールを置き換えることが
可能になるかもしれず、
これをきっかけに root アクセスを奪取されてしまうかもしれない。
.sp
デフォルトでは、 modutils は root の所有でないモジュールの利用を
拒否しようとする。 \fB\-r\fR を指定すると、このエラーを抑制し、
root 以外の所有するモジュールを root がロードできるようになる。
.sp
\-r の利用は大きなセキュリティ上の危険を招く可能性があり、推奨できない。
.TP
.BR \-s ", " \-\-syslog
全てのエラーメッセージを、標準出力ではなく syslog デーモン経由で書き出す。
.TP
.BR \-u ", " \-\-unresolved-error
\fBdepmod\fR 2.4 は解決できないシンボルがあったときには返り値を設定しない。
次の modutils のメジャーリリース (2.5) では、
解決できないシンボルに対して返り値を設定する予定である。
modutils 2.4 に対して非ゼロの返り値を期待している
ディストリビューションもあるが、
この変更は古い動作を期待しているユーザに対して問題を引き起こすかもしれない。
depmod 2.4 に非ゼロの返り値を希望する場合は \fB\-u\fR を指定すること。
\fBdepmod\fR 2.5 は \fB\-u\fR フラグを黙って無視し、
解決できないシンボルがあった場合には常に非ゼロの返り値を戻す。
.TP
.BR \-v ", " \-\-verbose
各モジュールを処理するごとに、それらのモジュールの名前を表示する。
.TP
.I \-V
\fBdepmod\fR のバージョンを表示する。
.PP
以下のオプションは、ディストリビューションを管理する人々に便利であろう。
.TP
\fB\-b \fIbasedirectory\fR, \fB\-\-basedir \fIbasedirectory
環境を変更するために、モジュールのサブツリーが含まれるディレクトリツリー
.I /lib/modules
をどこか別の場所に移したい場合、
その移動された
.I /lib/modules
イメージを探す場所を
.B \-b
オプションを使って depmod に伝える。
depmod が出力するファイル
.I modules.dep
におけるファイル参照は、
.I basedirectory
パスを含まない。
すなわち、最終的なディストリビューションでファイルツリーが
.I basedirectory/lib/modules
から
.I /lib/modules
に戻されても、全ての参照は正しく利用できる。
.TP
\fB\-C \fIconfigfile\fR, \fB\-\-config \fIconfigfile
.I configfile
を
.I /etc/modules.conf
の代わりに用いる。
環境変数
.B MODULECONF
を使っても、設定ファイルを
.I /etc/modules.conf
(あるいは
.I /etc/conf.modules
(使わないほうが良い))
以外に指定できる。
.TP
環境変数
.B UNAME_MACHINE
をセットすると、modutils は uname() システムコールの machine フィールドの
代わりにこの変数の値を用いる。
これは主に 32 ビットユーザー空間で 64 ビットモジュールをコンパイルする
(またはその逆)場合に用いる。
現在の modutils はモジュールに対する完全なクロスビルドモードに対応しておらず、
ホストアーキテクチャの 32 ビット版と 64 ビット版を選択できるだけである。
.TP
\fB\-F kernelsyms\fR,\fB\-\-filesyms \fIkernelsyms
現在実行されているカーネルとは
別のカーネルに対して依存関係ファイルを作成する場合、
.B depmod
に正しいカーネルシンボルのセットを利用させ、
各モジュールのカーネル参照を正しく解決させることが重要である。
これらのシンボルには、他のカーネルの
.I System.map
のコピーか、あるいは
.I /proc/ksyms
の出力のコピーを使える。
利用しているカーネルがバージョン付きのシンボルを使っている場合は、
.I /proc/ksyms
の出力を用いるのがもっともよい。なぜならこのファイルには
カーネルシンボルのシンボルバージョンが含まれているからである。
しかしバージョン付きのシンボルに対して
.I System.map
を使ってもかまわない。
.SH 設定
.B depmod
と
.B modprobe
の動作は、設定ファイル
.I /etc/modules.conf
によって調整できる (このファイルは無くても良い)。
詳細は
.BR modprobe (8)
および
.BR modules.conf (5)
を参照のこと。
.SH 方針
新しいカーネルをコンパイルして、
コマンド "\fBmake modules_install\fR" を実行すると、
新しいディレクトリが作成されるがデフォルトは変更されない。
.\"NAKANO なんの default?
.PP
カーネル配布に含まれないモジュールを利用したい場合は、
そのファイルは、
.I /lib/modules
以下の、
カーネルバージョンに関係しないディレクトリに置くのが良い。
.PP
これはデフォルトの方針であるが、
/etc/modules.conf によって変更できる。
.SH ファイル
.nf
.IR /etc/modules.conf (あるいは /etc/conf.modules (非推奨)) ,
.IR /lib/modules/*/modules.dep ,
.I /lib/modules/*
.fi
.SH 関連項目
.BR modules.conf "(5), " modprobe "(8), " modinfo "(8), "
.BR lsmod "(8), " ksyms "(8) "
.SH バグ
\fBdepmod\fR [ \-V | \-\-version ] は直ちに終了するべきである。
しかしながら、現在はバージョン情報を表示した後、
何もオプションが指定されなかったかのように振舞う。
.SH 著者
Jacques Gelinas (jack@solucorp.qc.ca)
.br
Bjorn Ekwall (bj0rn@blox.se)
|