ドライバのロード・アンロード

ドライバのロード・アンロード

ドライバをビルドしただけでは、まだそのドライバは使えません。
使えるようにするためには、ドライバをロードしてやる必要があります。

ドライバのロードはinsmodコマンドにより行います。
koファイルがあるディレクトリに移動し、下記コマンドを実行します。

# insmod hello.ko

ドライバのロードはランレベル3以降でも行えます。
それはつまり、OSの再起動なしにドライバのロード・アンロードができるということです。
ただし、insmodコマンドはroot権限で実行する必要があります。

ドライバが正常にロードされたかどうかの確認はlsmodコマンドで行えます。

# lsmod
Module                  Size  Used by
hello                   5504  0 
  ~以下省略~  

lsmodコマンドは現在ロードされているカーネルモジュールを出力します。
ドライバはカーネルモジュールに含まれるので、正常にロードできていれば出力されます。

lsmodコマンドで確認できる内容は下記表になります。

列名意味
Moduleドライバ名
Sizeメモリ上のドライバサイズ
Used参照カウンタ
by依存ドライバ

ドライバのアンロードはrmmodコマンドにより行います。

# rmmod hello

rmmodコマンドで指定するパラメータはドライバファイル名ではなく、ドライバ名となります。
ドライバ名はlsmodコマンドのModule列で確認できます。


ドライバのロードはinsmodコマンドだけでなく、modprobeコマンドでも行えます。
insmodコマンドはカレントディレクトリにあるドライバをロードするためのものです。
それに対し、modprobeコマンドは「/lib/modules/`uname -r`」からドライバを探します。

modprobeコマンドはLinux起動時に自動的にドライバをロードさせたいときなど、rcスクリプトでよく使用されます。

タグ