第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 )を参照してください。