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

/sbin/modprobe lp
</screen>
		</example>
		<para>逆に読み込みを禁止したいモジュールがある場合は、次の例を参考にしてください。</para>
		<example>
			<title>pcspkrモジュールを読み込み禁止にする</title>
			<para>pcspkrモジュールを読み込み禁止にするには、ファイル<filename>/etc/modprobe.d/blacklist.conf</filename>に以下のような行を追加します。</para>
			<screen>blacklist pcspkr</screen>
		</example>
	</sect1>
</chapter>

<!--
vi:syntax=docbkxml
-->
