[386] | 1 | <chapter id="kernel-modules"> |
---|
| 2 | <title>カーネルモジュールの制御</title> |
---|
| 3 | <para>Linuxのカーネルでは、特定のハードウェアに必要なデバイスドライバといった利用者が限られる機能などを必要に応じ読み込みや解放ができるモジュールという形式で提供しています。このため、不必要なモジュールを読み込まないことでリソースの節約が可能です。この章では、カーネルモジュールを制御する方法について解説します。</para> |
---|
| 4 | <sect1 id="module-command"> |
---|
| 5 | <title>カーネルモジュールを制御するコマンド</title> |
---|
| 6 | <para>以下、カーネルモジュールを制御するコマンドについて簡単に説明します。それぞれのコマンドの詳細は、manページを確認してください。</para> |
---|
| 7 | <example> |
---|
| 8 | <title>lsmodのmanページを読む</title> |
---|
| 9 | <screen>$ man lsmod</screen> |
---|
| 10 | </example> |
---|
| 11 | <sect2> |
---|
| 12 | <title>読み込まれているモジュールの一覧表示</title> |
---|
| 13 | <para>現在読み込まれているモジュールを確認するには、<command>lsmod</command>コマンドを実行します。一般ユーザでも実行可能です。</para> |
---|
| 14 | <example> |
---|
| 15 | <title>lsmodの表示例</title> |
---|
| 16 | <para>表示は、4つの列に分かれており、左からモジュール名、大きさ、使用カウント数、当該モジュールを使用しているモジュール名です。</para> |
---|
| 17 | <screen> |
---|
| 18 | $ /sbin/lsmod |
---|
| 19 | Module Size Used by |
---|
| 20 | udf 72136 0 |
---|
| 21 | crc_itu_t 2272 1 udf |
---|
| 22 | fuse 62688 0 |
---|
| 23 | ipv6 283280 20 |
---|
| 24 | vboxnetflt 88780 0 |
---|
| 25 | vboxdrv 1692492 1 vboxnetflt |
---|
| 26 | autofs4 25224 2 |
---|
| 27 | nf_conntrack_netbios_ns 2752 0 |
---|
| 28 | ipt_REJECT 3200 1 |
---|
| 29 | nf_conntrack_ipv4 14904 1 |
---|
| 30 | nf_defrag_ipv4 2208 1 nf_conntrack_ipv4 |
---|
| 31 | xt_state 2336 1 |
---|
| 32 | nf_conntrack 72640 3 nf_conntrack_netbios_ns,nf_conntrack_ipv4,xt_state |
---|
| 33 | xt_tcpudp 3296 3 |
---|
| 34 | iptable_filter 3744 1 |
---|
| 35 | ip_tables 17488 1 iptable_filter |
---|
| 36 | </screen> |
---|
| 37 | </example> |
---|
| 38 | </sect2> |
---|
| 39 | <sect2> |
---|
[387] | 40 | <title>カーネルモジュールの読み込みと解放</title> |
---|
[390] | 41 | <para>カーネルモジュールの読み込むと解放には、root権限で<command>modprobe</command>コマンドを利用します。</para> |
---|
[386] | 42 | <example> |
---|
| 43 | <title>lpモジュールの読み込み</title> |
---|
| 44 | <para>以下の例では、パラレルポート用プリンタを使用するのに必要なlpモジュールをロードします。</para> |
---|
| 45 | <screen># /sbin/modprobe lp</screen> |
---|
| 46 | <para>なお、lpモジュールが依存するモジュールも同時に読み込まれます。</para> |
---|
| 47 | </example> |
---|
| 48 | <example> |
---|
| 49 | <title>pcspkrモジュールの解放</title> |
---|
[390] | 50 | <para>以下の例では、PCスピーカのビープ音を鳴らすモジュールを解放します。</para> |
---|
[387] | 51 | <screen># /sbin/modprobe -r pcspkr</screen> |
---|
[386] | 52 | </example> |
---|
[390] | 53 | <para>なお、これらのコマンドによる操作結果は、コンピュータを終了するまでの一時的なものです。</para> |
---|
[386] | 54 | </sect2> |
---|
| 55 | </sect1> |
---|
| 56 | <sect1 id="modprobe_conf"> |
---|
| 57 | <title>起動時のカーネルモジュールの制御</title> |
---|
[526] | 58 | <para>起動時に自動的に読み込ませたいモジュールがある場合、ディレクトリ<filename class="directory">/etc/sysconfig/modules/</filename>に<filename>filename.modules</filename>のような名前で次の例のようなスクリプトファイルを作成します。(filenameの部分は、任意の名前にします。)</para> |
---|
[390] | 59 | <example> |
---|
| 60 | <title>起動時にlpモジュールを読み込むスクリプト</title> |
---|
[526] | 61 | <para>起動時にlpモジュールを読み込ませたい場合、/etc/sysconfig/modules/lp.modulesといった名前で以下のスクリプトファイルを作成します。</para> |
---|
[390] | 62 | <screen> |
---|
| 63 | #!/bin/bash |
---|
| 64 | |
---|
| 65 | /sbin/modprobe lp |
---|
| 66 | </screen> |
---|
| 67 | </example> |
---|
| 68 | <para>逆に読み込みを禁止したいモジュールがある場合は、次の例を参考にしてください。</para> |
---|
| 69 | <example> |
---|
| 70 | <title>pcspkrモジュールを読み込み禁止にする</title> |
---|
| 71 | <para>pcspkrモジュールを読み込み禁止にするには、ファイル<filename>/etc/modprobe.d/blacklist.conf</filename>に以下のような行を追加します。</para> |
---|
| 72 | <screen>blacklist pcspkr</screen> |
---|
| 73 | </example> |
---|
[386] | 74 | </sect1> |
---|
| 75 | </chapter> |
---|
| 76 | |
---|
| 77 | <!-- |
---|
| 78 | vi:syntax=docbkxml |
---|
| 79 | --> |
---|