第45章 一般的なパラメーターおよびモジュール
本章では、一般的なハードウェアデバイス ドライバーで利用可能な いくつか の可能なパラメーターについて説明します。 [9]Red Hat Enterprise Linux では、カーネル モジュール と呼ばれます。ほとんどの場合、デフォルトのパラメーターは機能します。ただし、デバイスが正しく機能するか、デバイスのデフォルトパラメーターを上書きするために追加のモジュールパラメーターが必要になる場合があります。
インストール時に、Red Hat Enterprise Linux は、安定したインストール環境を作成するために、限定されたデバイスドライバーのサブセットを使用します。インストールプログラムは多くの異なるタイプのハードウェアでのインストールをサポートしますが、一部のドライバー(SCSI アダプターおよびネットワークアダプター用など)はインストールカーネルに含まれていないものもあります。代わりに、起動時にユーザーがモジュールとして読み込む必要があります。
インストールが完了すると、カーネルモジュールを介して多数のデバイスのサポートが存在します。
重要な影響
Red Hat は、kernel
-smp-unsupported- <kernel-version> および kernel- hugemem-unsupported- <kernel-version > と呼ばれるパッケージのグループに、多数の対応対応デバイスドライバーを提供しています 。< ;kernel-version> を、システムにインストールされているカーネルのバージョンに置き換えます。これらのパッケージは Red Hat Enterprise Linux インストールプログラムによってインストールされず、提供されるモジュールは Red Hat, Inc ではサポートされません。
45.1. カーネルモジュールユーティリティー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
module-init-tools パッケージがインストールされている場合は、カーネルモジュールを管理するコマンドのグループが利用できます。これらのコマンドを使用して、モジュールが正常に読み込まれているかどうか、または新しいハードウェアで異なるモジュールを試行するときに確認します。
コマンド /sbin/lsmod は、現在読み込まれているモジュールの一覧を表示します。以下に例を示します。
Module Size Used by
tun 11585 1
autofs4 21573 1
hidp 16193 2
rfcomm 37849 0
l2cap 23873 10 hidp,rfcomm
bluetooth 50085 5 hidp,rfcomm,l2cap
sunrpc 153725 1
dm_mirror 29073 0
dm_mod 57433 1 dm_mirror
video 17221 0
sbs 16257 0
i2c_ec 5569 1 sbs
container 4801 0
button 7249 0
battery 10565 0
asus_acpi 16857 0
ac 5701 0
ipv6 246113 12
lp 13065 0
parport_pc 27493 1
parport 37001 2 lp,parport_pc
uhci_hcd 23885 0
floppy 57317 1
sg 34653 0
snd_ens1371 26721 1
gameport 16073 1 snd_ens1371
snd_rawmidi 24897 1 snd_ens1371
snd_ac97_codec 91360 1 snd_ens1371
snd_ac97_bus 2753 1 snd_ac97_codec
snd_seq_dummy 4293 0
snd_seq_oss 32705 0
serio_raw 7493 0
snd_seq_midi_event 8001 1 snd_seq_oss
snd_seq 51633 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device 8781 4 snd_rawmidi,snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss 42849 0
snd_mixer_oss 16833 1 snd_pcm_oss
snd_pcm 76485 3 snd_ens1371,snd_ac97_codec,snd_pcm_oss
snd_timer 23237 2 snd_seq,snd_pcm
snd 52933 12 snd_ens1371,snd_rawmidi,snd_ac97_codec,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer
soundcore 10145 1 snd
i2c_piix4 8909 0
ide_cd 38625 3
snd_page_alloc 10569 1 snd_pcm
i2c_core 21697 2 i2c_ec,i2c_piix4
pcnet32 34117 0
cdrom 34913 1 ide_cd
mii 5825 1 pcnet32
pcspkr 3521 0
ext3 129737 2
jbd 58473 1 ext3
mptspi 17353 3
scsi_transport_spi 25025 1 mptspi
mptscsih 23361 1 mptspi
sd_mod 20929 16
scsi_mod 134121 5 sg,mptspi,scsi_transport_spi,mptscsih,sd_mod
mptbase 52193 2 mptspi,mptscsih
各行について、1 番目の列はモジュール名、2 番目の列はモジュールのサイズ、3 番目の列は使用数です。
/sbin/lsmod の出力は、
/proc/modules の出力よりも詳細で読みやすいものになります。
カーネルモジュールを読み込むには、/sbin/modprobe コマンドの後にカーネルモジュール名を指定します。デフォルトでは、modprobe は
/lib/modules/ <kernel-version> /kernel/drivers/ サブ ディレクトリーからモジュールの読み込みを試みます。ネットワークインターフェイスドライバーの net/ サブディレクトリーなど、各タイプのモジュールにはサブディレクトリーがあります。カーネルモジュールの中にはモジュールの依存関係があるものがあります。つまり、読み込むには他のモジュールを最初に読み込む必要があります。/sbin/modprobe コマンドは、これらの依存関係をチェックし、指定されたモジュールを読み込む前にモジュールの依存関係を読み込みます。
たとえば、コマンドは以下のようになります。
modprobe e100
モジュールの依存関係を読み込み、
e100 モジュールをロードします。
/sbin/modprobe としてすべてのコマンドに出力するには、
-v オプションを使用します。以下に例を示します。
modprobe -v e100
以下のような出力が表示されます。
insmod /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko
Using /lib/modules/2.6.9-5.EL/kernel/drivers/net/e100.ko
Symbol version prefix 'smp_'
/sbin/insmod コマンドは、カーネルモジュールを読み込むためにも存在しますが、依存関係は解決しません。したがって、/sbin/modprobe コマンドを使用することが推奨されます。
カーネルモジュールをアンロードするには、/sbin/rmmod コマンドの後にモジュール名を使用します。rmmod ユーティリティーは、使用されていないモジュールのみをアンロードします。これは、使用中の他のモジュールの依存関係ではありません。
たとえば、コマンドは以下のようになります。
rmmod e100
e100 カーネルモジュールをアンロードします。
もう 1 つの便利なカーネルモジュールユーティリティーは modinfo です。/sbin/modinfo コマンドを使用して、カーネルモジュールに関する情報を表示します。一般的な構文は以下のとおりです。
modinfo [options] <module>
オプションには、モジュールの簡単な説明を表示する -d と、モジュールがサポートするパラメーターを一覧表示する -p が含まれます。オプションの完全なリストは、modinfo の man ページ(man modinfo )を参照してください。