本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、カーネルモジュールのロード、アンロードを行う「modprobe」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、カーネルモジュールのロード、アンロードを行う「modprobe」コマンドです。
「modprobe」は「カーネルモジュール(モジュール)」の組み込み(ロード)と取り外し(アンロード)を行うコマンドです。
カーネルモジュールとは、Linuxカーネルの機能の一部を、カーネル本体とは別にロード、アンロードできるように分離したサイズの小さいバイナリファイルです。多くの場合、ハードウェアにアクセスし、操作するためのドライバ部分がカーネルモジュールとなっています。
ドライバ自体をカーネルに組み込む古い方式では、ハードウェア構成を変更した場合に、カーネルの再構築が必要になります。現在では、ほとんどのドライバがモジュールとして提供されているため、ハードウェア構成変更後は、必要なカーネルモジュールをロードしてカーネルに組み込むだけで対応できるようになっています。
modprobeは、モジュールの依存関係を確認し、必要なモジュールがあれば同時に組み込むといった処理も行います。モジュールの組み込みには内部的に「insmod」コマンドを用いており、取り外しでは「rmmod」コマンドを使っています。
なお、現在どのようなモジュールが組み込まれているのかは、「lsmod」コマンド(連載第267回)で確認できます。
modprobe [オプション] [カーネルモジュール名...]
※[ ]は省略可能な引数を示しています。
短いオプション | 長いオプション | 意味 |
---|---|---|
-r | --remove | モジュールを取り外す |
--first-time | 既に組み込まれているモジュールを組み込もうとしたり、組み込まれていないモジュールを取り外そうとしたりした場合、エラーで終了する | |
-f | --force | モジュールのバージョンやマジック番号(バージョンを厳密にチェックするための文字列)を無視する(※1) |
--force-modversion | モジュールのバージョンを無視する(※1) | |
--force-vermagic | モジュールのマジック番号を無視する(※1) | |
※1 不用意に「-f」などを利用すると、システムの停止やデータの損失を招くことがある。
短いオプション | 長いオプション | 意味 |
---|---|---|
-D | --show-depends | モジュールの依存関係を表示する |
-c | --show-config,--showconfig | 設定ファイルの内容を表示する |
-R | --resolve-alias | モジュールのエイリアスを探して表示する |
短いオプション | 長いオプション | 意味 |
---|---|---|
-n | --dry-run,--show | モジュールの組み込みや取り外しを実際には実行せず実行内容の表示だけを行う(「-v」と組み合わせて使用) |
-C ファイル | --config=ファイル | 設定ファイルを指定する(デフォルトは「/etc/modprobe.conf」または「/etc/modprobe.d/」) |
-d ディレクトリ | --dirname=ディレクトリ | モジュールのディレクトリを指定する(デフォルトは「/lib/modules」) |
-S バージョン | --set-version=バージョン | カーネルのバージョンを指定する(デフォルトは「uname -r」の実行結果) |
-s | --syslog | エラーを標準エラー(stderr)ではなくsyslogに出力する |
-q | --quiet | メッセージを表示しない |
-v | --verbose | 詳しいメッセージを表示する |
「modprobe モジュール」で、指定したモジュールをメモリに組み込みます。実行にはroot権限が必要です(連載第68回)。
モジュールの組み込みに成功した場合や、既にモジュールが組み込まれている場合には、メッセージを表示しません。メッセージを表示したい場合は「-v」(--verbose)オプションを付けて実行します。
どのファイルが組み込まれるかなどをあらかじめ確認したい場合は、「-n」(--dry-run)を付けて試すことができます(画面1)。この場合、モジュールを組み込む際のコマンドが表示されますが、実際には何も実行しません。なお、「-n」オプション付きで実行する場合、root権限は不要です。
指定したモジュールが既に組み込まれている場合、エラーメッセージを表示しません。組み込み済みのモジュールを指定した場合にエラーとしてメッセージを表示したい場合は「--first-time」オプションを指定します。
modprobe モジュール
(モジュールを組み込む、既に組み込まれている場合は何も行わない)
modprobe --first-time モジュール
(モジュールを組み込む、既に組み込まれている場合はエラーメッセージを表示する)
modprobe -n -v モジュール
(モジュールを組み込む際のコマンドを表示する)
「modprobe -r モジュール」で、指定したモジュールを取り外します(画面2)。実行にはroot権限が必要です。
カーネルモジュールを組み込む場合と同様に、「-n」(--dry-run)、「-v」(--verbose)や「--first-time」オプションを使用できます。
modprobe -r モジュール
(モジュールを取り外す、指定したモジュールがカーネルに組み込まれていない場合は何も行わない)
modprobe -r --first-time モジュール
(モジュールを取り外す、組み込まれていない場合はエラーメッセージを表示する)
modprobe -r -n -v モジュール
(モジュールを取り外す際のコマンドを表示する)
「modprobe -D モジュール」でモジュールの依存関係を確認できます(画面3)。なお、ロード済みのモジュールを一覧表示する「lsmod」コマンド(第267回)を使うと、ロード済みのモジュールに限って依存関係を表示できます。
modprobe -D モジュール
(モジュールの依存関係を表示する)
【訂正:2021年3月3日午後6時40分】本記事の初出時、「コマンド実行例」などでコマンド名を「modprove」としておりましたが、正しくは「modprobe」です。お詫びして訂正いたします。該当箇所は既に修正済みです(編集部)
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.