変更要約: 初版(主題1.05・副主題1.05.1〜1.05.3に対応)
5.1ハードウェアの基礎知識と設定
Linux からハードウェアを認識・制御する仕組みを学びます。カーネルモジュールの操作(lsmod・modprobe・insmod・rmmod)、記憶装置(HDD・SSD・光学ストレージ)の違い、ハードウェア情報の取得(lsusb・lspci・/sys/・/proc/・/dev/)、sysfs・udev・D-Bus の概念を押さえます。
Linux ではデバイスドライバの多くがカーネルモジュールとして提供され、必要なときだけカーネルに組み込まれます。「USB 機器が認識されない」「NIC のドライバを入れ替えたい」といった場面で、モジュール操作と情報取得コマンドが手足になります。
5.1.1カーネルモジュールの操作
- lsmod=ロード済みモジュールの一覧(
lsmod | grep e1000が定番)。 - modprobe=依存モジュールごとロード/アンロード(
modprobe e1000e/modprobe -r e1000e)。実務・試験ともに第一選択。 - insmod/rmmod=単体のロード/アンロード(依存は解決しない・ファイルパス指定)。modprobe の下請けにあたる低レベルコマンド。
5.1.2記憶装置とハードウェア情報
- 大容量記憶装置の対比=HDD(磁気ディスク・安価大容量・可動部あり)/SSD(フラッシュ・高速・耐衝撃・書き込み回数に上限)/光学ストレージ(DVD 等・配布/アーカイブ用)。
- 情報取得=lspci(PCI デバイス一覧=NIC・GPU 等)・lsusb(USB デバイス一覧)。
- カーネルが見せる情報の窓口=/proc/(プロセス・カーネル状態。/proc/cpuinfo・/proc/meminfo)・/sys/(sysfs=デバイスツリー)・/dev/(デバイスファイル。/dev/sda 等)。
- udev=デバイスの抜き差しを検知して /dev/ のデバイスファイルを動的に作成・命名する仕組み(ルールで名前を固定できる)。D-Bus=デスクトップ等へイベントを通知するプロセス間通信。
「依存関係ごとロード=modprobe/単体=insmod」「PCI=lspci・USB=lsusb」「/dev を動的に管理=udev」 が定番の対応です。「モジュールのアンロードは modprobe -r(または rmmod)」、「/proc と /sys はディスク上に実体のない仮想ファイルシステム」も頻出ポイントです。
「USB メモリを挿してから使えるようになるまで」を追うと各要素がつながります。挿入を検知したカーネルは対応するカーネルモジュール(usb-storage 等)を自動ロードし、デバイスの詳細を sysfs(/sys/)に公開します。それを見張っている udev が命名ルールに従って /dev/sdb のようなデバイスファイルを作成し、あわせて D-Bus 経由でデスクトップ環境に「新しいデバイスが来た」と通知が飛びます(ファイルマネージャが自動で開くのはこのため)。トラブル時は逆順に辿ります:デバイスファイルが無い→ lsusb/lspci で物理認識を確認→ lsmod でドライバのロードを確認→ 必要なら modprobe ドライバ名 で手動ロード。insmod は insmod /path/to/driver.ko とファイルパスが必要で依存も解決しないため、通常は名前だけで済む modprobe を使う、という優先順位も試験どおりの実務感覚です。
| 目的 | コマンド/場所 | 要点 |
|---|---|---|
| ロード済みモジュール確認 | lsmod | grep と併用が定番 |
| 依存ごとロード/解除 | modprobe / modprobe -r | 名前指定でよい |
| PCI / USB の確認 | lspci / lsusb | 物理認識の確認に |
| デバイスファイルの動的管理 | udev(/dev/) | sysfs を監視・D-Busで通知 |
ひっかけ: 「insmod はモジュール名を指定すると依存関係ごとロードする」は誤りです。依存解決と名前指定ができるのは modprobe で、insmod はファイルパスの単体ロードです。また「/proc の内容はディスクに保存されている」も誤り=/proc・/sys はカーネルがメモリ上で生成する仮想ファイルシステムです。
5.1.3この節のまとめ
- モジュール=lsmod 確認・modprobe(依存込み)・insmod/rmmod(単体)
- 情報は lspci/lsusb・/proc・/sys(sysfs)・/dev。udev が /dev を動的管理・D-Bus が通知
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. NIC ドライバ e1000e を、依存するモジュールも含めてロードしたい。適切なコマンドは?
Q2. サーバーに接続された USB デバイスが OS から認識されているかを確認したい。適切なコマンドは?
Q3. USB メモリを挿すと /dev/sdb のようなデバイスファイルが自動的に作られる。この動的な作成・命名を担う仕組みはどれ?

