Subject: [plamo:13170] /etc/modules.conf(Re:  Re: FV24のLAN認識)
From: KOJIMA Mitsuhiro 
To: plamo@linet.gr.jp
Date: Wed, 27 Feb 2002 20:53:29 +0900
Reply-To: plamo@linet.gr.jp
X-Mailer: Mew version 2.1 on Emacs 21.1 / Mule 5.0 (SAKAKI)


こじま@MDLP 対応なポータブル録再 MD を買ってきて,BBC 版の Lord of
the Rings をダビング中,です.

# 去年,Stanford Univ. の売店で買ってきたんだけど,60 分テープ全 13 巻
# で扱いが不便だったのが,LP4 モードだと MD 3 枚くらいに収まりそうだ.

From: Yosuke Aragane 
Subject: [plamo:13167] Re: FV24のLAN認識
Date: Wed, 27 Feb 2002 15:40:37 +0900

> 4. /etc/modules.conf に「alias eth0 rtl8139」の一行を追加
> 5. /etc/rc.d/rc.inet1 のIPADDR,NETMASK,NETWORK,BROADCASTを変更
> 6. /etc/rc.d/rc.inet1 の 「/sbin/ifconfig eth0・・・・」の行の
>    コメントアウトを外す
> 7. 再起動
> 
> これで,再起動後も問題なくネットワークが認識できました.

再起動すれば問題はないですが,/etc/modules.conf を変更したら 
/sbin/depmod -a を再実行するのがお約束ですね.

# 再起動時には depmod は自動的に実行される

depmod を実行することにより,/lib/modules//modules.dep に記録され
ているモジュール間の依存関係が更新されて,必要なモジュールが自動的にロー
ドされるようになります.

# /etc/modules.conf では alias で,ある機能(例えば eth0)に対して一つの
# モジュールを割り当てますが,実際にそのモジュールを使うためには他のモ
# ジュールが必要になる場合もあり,そういう依存関係は modules.dep の方
# に記述されています.

このあたりの仕組みを(私が理解している範囲で ^^;)書いておくと,
/etc/modules.conf で alias AAA BBB と記述した場合,AAA で指定したデバ
イスに対してアクセスが発生し,そのドライバがロードされていない場合,カー
ネルの kmod 機能により自動的に BBB というモジュールドライバがロードさ
れ,そのデバイスが実際に利用可能になります.

# カーネルの kmod 機能を使うためには make menuconfig 時に Enable
# Loadable module support を指定しておく必要あり

ただし,カーネル自体は /etc/modules.conf ではなく,
/lib/modules//modules.dep の方を見ているので,/etc/modules.conf 
を変更した後は depmod コマンドで設定を modules.dep ファイルの方に反映
させておく必要があるわけです.

また,/etc/modules.conf では post-install や pre-install という指定で,
そのモジュールドライバをインストールする前後で実行するコマンドを指定で
きるので,そのあたりをうまく使えば /etc/rc.d/rc.inet1 を使わなくてもネッ
トワークの設定をすることも可能でしょうね.

# まぁ,rc.inet1 で設定する方が見通しはいいと思うけど,,

例えば,手元の modules.conf ではサウンド関係を設定するのに以下のような
設定を加えています.

> # this is a sample setup for PCI SB64
> alias char-major-14 es1371
> post-install es1371 /usr/bin/aumix -q -v85 -w88

この char-major-14 というのは,/dev 以下で major 番号が 14 になってい
る以下のようなデバイスを使う際に,この指定が適用されることを意味してい
ます.

crw-rw-rw-   1 root     root      14,   4  7月 19日 1994年 audio
crw-rw-rw-   1 root     root      14,  20  7月 19日 1994年 audio1
crw-rw-rw-   1 root     root      14,   2  7月 19日 1994年 midi
crw-rw-rw-   1 root     root      14,   0  7月 19日 1994年 mixer
crw-rw-rw-   1 root     root      14,  16  7月 19日 1994年 mixer1

そして,post-install es1372 /usr/bin/aumix -q -v85 -w88 というのは,
「es1372 モジュールをインストールした後で aumix コマンドを指定したオプ
ションで実行してね」という指示で,具体的には全体ボリュームを 85%,Wav 
ファイルの出力ボリュームを 88% にする,という意味です.この指定で,
xmms 等が /dev/audio を利用しようとした際に es1371.o モジュールが組み
込まれ,適当なボリュームに設定されるというわけです.

少し昔話をしておくと,kernel 2.0 のころは,kerneld というデーモンがモ
ジュールの組み込み機能を担っていたのですが,2.2 以降ではカーネル内部の
スレッド(kmod)でこの機能を提供しているので kerneld は不要になりました.
一方,kerneld は組み込んだモジュールのうち,不要になったものは自動的に
取り外してくれましたが,kmod は不要モジュールを取り外す機能は持ってい
ないので,気にする人は cron で適宜 rmmod を実行してやる必要があります.

そのため,最近の Plamo のデフォルトでは root の crontab に

0-59/5 * * * * /sbin/rmmod -a

みたいなコマンドを仕込んであります.

------
こじま