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 モジュール名
  1. モジュールの場所:
  • /lib/modules/$(uname -r)/
  • カーネルバージョンごとに分かれている
  1. モジュールの設定:
  • /etc/modules:起動時に読み込むモジュール
  • /etc/modprobe.d/:モジュールのオプション設定
  1. 主な使用シーン:
  • 新しいハードウェアの追加時
  • 特定の機能が必要になったとき
  • システムのカスタマイズ
  1. モジュールの依存関係:
  • 一つのモジュールが他のモジュールに依存することがある
  • modprobeは自動的に依存関係を解決
  1. 自動ロード:
  • udevシステムにより、必要なモジュールが自動的にロードされる
  • ハードウェアの検出時に対応するドライバを自動ロード
  1. トラブルシューティング:
  • dmesgでモジュール関連のメッセージを確認
  • モジュールのパラメータ調整
  • 依存関係の確認

注意点:

  • root権限が必要
  • 誤ったモジュール操作はシステムの不安定化を招く可能性
  • 公式なモジュールのみを使用推奨