次のページ
前のページ
目次へ
ローダブルカーネルモジュールを使うとメモリを節約できますし,設定も容易
です.モジュールのサポートする範囲は,ファイルシステム・
イーサネットカードドライバ・テープドライバ・プリンタドライバ等まで広がっ
てきました.
モジュール用ユーティリティはカーネルソースと同じところに
modules-x.y.z.tar.gz という形で置いてあります;現在使用してい
るカーネルのパッチレベル以下で,パッチレベル(x.y.z )がもっとも
高いものを取ってきてください.
`tar zxvf modules-x.y.z.tar.gz ' で展開し,ソース
展開がされたディレクトリ(modules-x.y.z )へ cd し,
README ファイルを読み,説明にしたがってインストールを実行しま
す(通常はそんなに難しくなくて,make install のようなことをす
るだけです).これで,/sbin に insmod ,
rmmod , ksyms , lsmod , gensyms ,
modprobe , depmod というプログラムができます.お望み
ならサブディレクトリ insmod にある ``hw '' という
サンプルのドライバを使ってユーティリティのテストを行ってください;
詳しくはそのサブディレクトリにある INSTALL ファイルを読んでく
ださい.
insmod は現在実行中のカーネルにモジュールを追加します.
モジュールには通常 .o という拡張子がついています;上述の
サンプルのドライバは drv_hello.o という名前ですので,これを追
加するには `insmod drv_hello.o ' としてください.カーネルが現
在使用中のモジュールを確認するには lsmod を使用します.出力は
以下のようになります:
blah# lsmod
Module: #pages: Used by:
drv_hello 1
`drv_hello ' はモジュールの名前で,これはメモリを 1 ページ
(4kB)使用しています.現時点ではこのモジュールに依存している他のカーネ
ルモジュールはありません.このモジュールを取り外すには,
`rmmod drv_hello ' とします.rmmod はファイル名ではな
く,モジュール名を要求することに注意してください;モジュール名
は lsmod の出力するリストに書いてあります.他の
モジュールユーティリティの目的は,それぞれのオンラインマニュアルに書か
れています.
バージョン 2.0.30 の時点では,ほとんどすべてのドライバはモジュールとし
て利用できます.これらのモジュールを使用するには,まずこれらのモジュー
ルの機能をカーネルに組み込んでいないことを確認してください;つまり,
`make config ' する際には,y と答えてはいけません.
新しいカーネルをコンパイルしそれでブートします.それから再度
/usr/src/linux へ cd し,`make modules ' を
実行します.するとカーネル設定で組み込まれなかった機能を持つモジュール
がすべてコンパイルされ,/usr/src/linux/modules に存在する
モジュールへリンクが張られます.そのディレクトリから直接実行することも
できますし,`make modules_install ' を実行すれば,できたモジュー
ルを /lib/modules/x.y.z へインストールすることもできます.
ここで x.y.z はカーネルのバージョンです.
モジュールは特にファイルシステムについて有用です.minix や msdos
ファイルシステムはあまり頻繁に使わないでしょう.例えば私が msdos のフ
ロッピーに遭遇した場合(ああ嫌だ),
insmod /usr/src/linux/modules/msdos.o し,用が済んだら
rmmod msdos します.これで,msdos ファイルシステムを使わないと
きには 50kB の RAM を節約することができます.minix ファイルシステムに
ついては少々注意すべきことがあります:復旧ディスクで使えるように,
minix ファイルシステムは常にカーネルに組み込んでおくべきです.
次のページ
前のページ
目次へ
|