カーネルモジュールは、カーネルを構成する機能を分離してモジュール化したもの。
モジュール化することによって、カーネル本体のサイズが小さくなり起動までの時間が短縮できる。
また使わないデバイスのドライバを外すことで、カーネルの利用するメモリを節約できる。
ただしメモリ管理やスケジューラなどの核となる部分は分離できない。
モジュール化することによって、カーネル本体のサイズが小さくなり起動までの時間が短縮できる。
また使わないデバイスのドライバを外すことで、カーネルの利用するメモリを節約できる。
ただしメモリ管理やスケジューラなどの核となる部分は分離できない。
カーネルモジュールが配置されているディレクトリは「/lib/modules/カーネルバージョン」以下のディレクトリにある。
カーネルモジュールを操作するコマンド
lsmod ~ ロードされているモジュールを一覧表示する
modinfo ~ モジュールの情報を表示する
insmod ~ ローダブルモジュールをロードする
rmmod ~ ロードされているモジュールをアンロードする
modprobe ~ モジュールのロード・アンロードする
depmod ~ moudules.depファイルを作成する
「 modules.depファイル 」にはmodprobeコマンドが参照するモジュールの依存関係が記述されている。
modules.dep の書式
モジュールのパス:依存するモジュールのパス モジュールAは、モジュールBとモジュールCが必要 /lib/modules/~/A.ko: /lib/modules/~/B.ko /lib/modules/~/C.ko モジュールBはモジュールCが必要 /lib/modules/~/B.ko: /lib/modules/~/C.ko
Linuxでは、ほとんどのドライバがモジュール化され、必要に応じて組み込んだり、取り外したりできるようになっている。
この組み込み作業を自動化するために、どのデバイスを使う際にどのモジュールドライバが必要になるかを
指定するためのファイルが「/etc/modprobe.conf」
カーネル2.4までは「/etc/modules.conf」で行っていたが、カーネル2.6では「/etc/modprobe.conf」に変更されている。
(カーネル2.2では「/etc/conf.modules」)
この組み込み作業を自動化するために、どのデバイスを使う際にどのモジュールドライバが必要になるかを
指定するためのファイルが「/etc/modprobe.conf」
カーネル2.4までは「/etc/modules.conf」で行っていたが、カーネル2.6では「/etc/modprobe.conf」に変更されている。
(カーネル2.2では「/etc/conf.modules」)
モジュールをロード・アンロードをする時に前処理・後処理が必要な場合や
モジュールをロードする際にパラメータを指定する場合は、「 /etc/modprobe.conf 」で設定する
モジュールをロードする際にパラメータを指定する場合は、「 /etc/modprobe.conf 」で設定する
/etc/modprobe.confファイルの書式
ファイル内のコマンド エイリアス名 モジュール 例> alias eth0 3c59x ファイル内のコマンド alias ~ モジュールのエイリアス名(別名)を指定 options ~ モジュールのオプションを指定 install ~ 指定されたシェルコマンドを実行 remove ~ modprobe -r が実行された時にシェルコマンド実行 include ~ 他の設定ファイルまたはディレクトリ全体を読み込むことができる。 読み込まれたファイル中のエイリアス名は現在のファイルで定義されたエイリアス名を上書きする。