RMMOD(8)

名前
rmmod - ローダブルモジュールをアンロードする

書式
rmmod [ -aehrsvV ] module ...

このマニュアルについて
このマニュアルは、Linux Kernel 2.4 の時代に使われていた modutils パッケージの rmmod の説明で、古いものです。現在ではたいていの場合、kmod パッケージの rmmod が使われています。(2022/12/02, Linux JM Project)

説明
rmmod は、実行中のカーネルからローダブルモジュールをアンロードする。

rmmod はカーネルからモジュールのセットをアンロードしようとする。アンロードに は制限があり、そのモジュールは使用中であってはならず、また他のモジュール から参照中であってもならない。

コマンドラインで複数のモジュールが指示されている場合、モジュールは 指示された順に削除される。 これにより、スタックしているモジュールのアンロードも行うことが出来る。

オプション '-r' を与えると、モジュールを再帰的に削除しようとする。 つまり、スタックのトップにいるモジュールがコマンドラインで指定されると、 このモジュールが用いている全てのモジュールを (可能ならば) 削除する。

オプション

-a, --all
    自動削除を行う: 使っていないモジュールに「削除予定」のタグをつけ、 既にタグのついているモジュールを削除する。 前回の自動削除以降も未使用のままであったモジュールは タグがついたままである。 この 2 パスの手法により、一瞬使われなくなっただけの モジュールが削除されるのを防ぐ。

-e, --persist
    指定されたモジュールの永続データ(persistent data)を保存する。モジュールのアンロードは行わない。 モジュール名が指定されなかった場合は全てのモジュールの永続データが保存される。 データの保存は、カーネルと modutils の両方が永続データに対応しており、 かつ /proc/ksyms に
    __insmod_modulename_Ppersistent_filename
    エントリがある場合にのみ行われる。

-h, --help
    オプションの一覧を表示して直ちに終了する。

-r, --stacks
    モジュールのスタックを削除する。

-s, --syslog
    全ての出力を端末ではなく syslog(3) に対して行う。

-v, --verbose
    詳細に表示する。

-V, --version
    modutils のバージョンを表示する。

永続データ
モジュールに永続データ( insmod(8) と modules.conf(5) 参照)がある場合、モジュールをアンロードした時に __insmod _P エントリの ファイル名のファイルに永続データを保存する。 また、任意の時点で rmmod -e を実行することによってモジュールを アンロードすることなく永続データを保存することも出来る。

永続データがファイルに書き込まれるとき、先頭に以下のような 自動生成コメント行が付く。
#% kernel_version timestamp
自動生成コメント行は'#%'で始まる。 全ての自動生成コメント行は読み込み時に削除されるが、 その他のコメントは保存される。 データがファイルに保存されるとき、既に存在するコメントの順番と位置は保存される。 新しい値はファイルの最後に追加される。 モジュールにない値がファイルに合った場合、それらの値は保存されるが 「この値は使用されていない」旨の自動生成コメントによる警告がその前につく。 これにより、永続データを失ったり、警告メッセージを受け取ったりすることなく カーネルを切り替えることが出来る。

注意: 行の空白以外の最初の文字が'#'である場合にのみコメントとして扱われる。 空行以外で、'#'で始まっていない行はモジュールオプションとして 扱われる(一行毎に一つ)。 オプション行は先頭のスペースを取り除き、 残りは全て insmod にオプションとして渡される。

関連項目
insmod(8), lsmod(8), ksyms(8), modprobe(8).

バグ
rmmod [-V | --version] はバージョン情報を 表示して直ちに終了するべきである。 しかしながら、現在はバージョン情報を表示した後、 何もオプションが指定されなかったかのように振舞う。

履歴
モジュール対応を誰が最初に考えたのかは不明である。
Linux 用の最初のバージョンは Bas Laarhoven <bas@vimec.nl> が作成した。
バージョン 0.99.14 は Jon Tombs <jon@gtex02.us.es> が作成した。
Bjorn Ekwall <bj0rn@blox.se> が拡張を行った。
バージョン 2.1.17 への更新は Richard Henderson <rth@tamu.edu> が行った。
バージョン 2.2.2 への更新は Bjorn Ekwall <bj0rn@blox.se> が行った。
modutils 2.3.20 への更新は Keith Owens <kaos@ocs.com.au> が行った。
2.3.22 からの永続データは Keith Owens <kaos@ocs.com.au> が行った。