カーネルモジュールの制御
Linuxのカーネルでは、特定のハードウェアに必要なデバイスドライバといった利用者が限られる機能などを必要に応じ読み込みや解放ができるモジュールという形式で提供しています。このため、不必要なモジュールを読み込まないことでリソースの節約が可能です。この章では、カーネルモジュールを制御する方法について解説します。
カーネルモジュールを制御するコマンド
以下、カーネルモジュールを制御するコマンドについて簡単に説明します。それぞれのコマンドの詳細は、manページを確認してください。
lsmodのmanページを読む
$ man lsmod
読み込まれているモジュールの一覧表示
現在読み込まれているモジュールを確認するには、lsmodコマンドを実行します。一般ユーザでも実行可能です。
lsmodの表示例
表示は、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
カーネルモジュールの読み込みと解放
カーネルモジュールの読み込むと解放には、root権限でmodprobeコマンドを利用します。
lpモジュールの読み込み
以下の例では、パラレルポート用プリンタを使用するのに必要なlpモジュールをロードします。
# /sbin/modprobe lp
なお、lpモジュールが依存するモジュールも同時に読み込まれます。
pcspkrモジュールの解放
以下の例では、PCスピーカのビープ音を鳴らすモジュールを解放します。
# /sbin/modprobe -r pcspkr
なお、これらのコマンドによる操作結果は、コンピュータを終了するまでの一時的なものです。
起動時のカーネルモジュールの制御
起動時に自動的に読み込ませたいモジュールがある場合、ディレクトリ/etc/sysconfig/modules/にfilename.modulesのような名前で次の例のようなスクリプトファイルを作成します。(filenameの部分は、任意の名前にします。)
起動時にlpモジュールを読み込むスクリプト
起動時にlpモジュールを読み込ませたい場合、/etc/sysconfig/modules/lp.modulesといった名前で以下のスクリプトファイルを作成します。
#!/bin/bash
/sbin/modprobe lp
逆に読み込みを禁止したいモジュールがある場合は、次の例を参考にしてください。
pcspkrモジュールを読み込み禁止にする
pcspkrモジュールを読み込み禁止にするには、ファイル/etc/modprobe.d/blacklist.confに以下のような行を追加します。
blacklist pcspkr