カーネルモジュールの制御

Linuxのカーネルでは、特定のハードウェアに必要なデバイスドライバといった利用者が限られる機能などを必要に応じ読み込みや解放ができるモジュールという形式で提供しています。このため、不必要なモジュールを読み込まないことでリソースの節約が可能です。この章では、カーネルモジュールを制御する方法について解説します。

IV.20.1. カーネルモジュールを制御するコマンド

以下、カーネルモジュールを制御するコマンドについて簡単に説明します。それぞれのコマンドの詳細は、manページを確認してください。

例 IV.20-1lsmodのmanページを読む
$ man lsmod

IV.20.1.1. 読み込まれているモジュールの一覧表示

現在読み込まれているモジュールを確認するには、lsmodコマンドを実行します。一般ユーザでも実行可能です。

例 IV.20-2lsmodの表示例

表示は、4つの列に分かれており、左からモジュール名、大きさ、使用カウント数、当該モジュールを使用しているモジュール名です。

$ /sbin/lsmod
Module                  Size  Used by
udf                    72136  0 
crc_itu_t               2272  1 udf
fuse                   62688  0 
ipv6                  283280  20 
vboxnetflt             88780  0 
vboxdrv              1692492  1 vboxnetflt
autofs4                25224  2 
nf_conntrack_netbios_ns     2752  0 
ipt_REJECT              3200  1 
nf_conntrack_ipv4      14904  1 
nf_defrag_ipv4          2208  1 nf_conntrack_ipv4
xt_state                2336  1 
nf_conntrack           72640  3 nf_conntrack_netbios_ns,nf_conntrack_ipv4,xt_state
xt_tcpudp               3296  3 
iptable_filter          3744  1 
ip_tables              17488  1 iptable_filter

IV.20.1.2. カーネルモジュールの読み込みと解放

カーネルモジュールの読み込むと解放には、root権限でmodprobeコマンドを利用します。

例 IV.20-3lpモジュールの読み込み

以下の例では、パラレルポート用プリンタを使用するのに必要なlpモジュールをロードします。

$ sudo /sbin/modprobe lp

なお、lpモジュールが依存するモジュールも同時に読み込まれます。

例 IV.20-4pcspkrモジュールの解放

以下の例では、PCスピーカのビープ音を鳴らすモジュールを解放します。

$ sudo /sbin/modprobe -r pcspkr

なお、これらのコマンドによる操作結果は、コンピュータを終了するまでの一時的なものです。

IV.20.2. 起動時のカーネルモジュールの制御

起動時に自動的に読み込ませたいモジュールがある場合、ディレクトリ/etc/sysconfig/modules/filename.modulesのような名前で次の例のようなスクリプトファイルを作成します。(filenameの部分は、任意の名前にします。)

例 IV.20-5起動時にlpモジュールを読み込むスクリプト

起動時にlpモジュールを読み込ませたい場合、/etc/sysconfig/modules/lp.modulesといった名前で以下のスクリプトファイルを作成します。

#!/bin/bash

/sbin/modprobe lp

逆に読み込みを禁止したいモジュールがある場合は、次の例を参考にしてください。

例 IV.20-6pcspkrモジュールを読み込み禁止にする

pcspkrモジュールを読み込み禁止にするには、ファイル/etc/modprobe.d/blacklist.confに以下のような行を追加します。

blacklist pcspkr