Open1
カーネルモジュールと管理について
カーネルモジュールとは
- カーネルに動的に追加できる機能の部品
- 必要なときだけ読み込める
- デバイスドライバなどを含む
日常生活での例え:
- カーネル = 基本の家
- モジュール = 必要に応じて取り付け可能な設備(エアコン、照明など)
主要な管理コマンド
a) lsmod
- 現在ロードされているモジュールを表示
lsmod
b) modinfo
- モジュールの詳細情報を表示
modinfo モジュール名
c) insmod
- モジュールを手動でロード
sudo insmod /path/to/module.ko
d) rmmod
- モジュールをアンロード
sudo rmmod モジュール名
e) modprobe
- より賢いモジュール管理(依存関係も処理)
- ロード:
sudo modprobe モジュール名
- アンロード:
sudo modprobe -r モジュール名
- モジュールの場所:
- /lib/modules/$(uname -r)/
- カーネルバージョンごとに分かれている
- モジュールの設定:
- /etc/modules:起動時に読み込むモジュール
- /etc/modprobe.d/:モジュールのオプション設定
- 主な使用シーン:
- 新しいハードウェアの追加時
- 特定の機能が必要になったとき
- システムのカスタマイズ
- モジュールの依存関係:
- 一つのモジュールが他のモジュールに依存することがある
- modprobeは自動的に依存関係を解決
- 自動ロード:
- udevシステムにより、必要なモジュールが自動的にロードされる
- ハードウェアの検出時に対応するドライバを自動ロード
- トラブルシューティング:
- dmesgでモジュール関連のメッセージを確認
- モジュールのパラメータ調整
- 依存関係の確認
注意点:
- root権限が必要
- 誤ったモジュール操作はシステムの不安定化を招く可能性
- 公式なモジュールのみを使用推奨