デバイスのコントロール

デバイス情報の確認

USBやPCIに接続されている各デバイス情報を参照するコマンドを使用し、実際の情報を確かめてみましょう。

USBデバイスの情報を確認するにはlsusbコマンドを入力します。

[centos@localhost ~]$ lsusb

PCIデバイスの情報を確認するにはlspciコマンドを入力します。

[centos@localhost ~]$ lsusb

デバイスドライバ

デバイスドライバとは、デバイスを使用するための制御プログラムです。デバイスをLinixで使用するのは、デバイスドライバのロード(取り込む)をしなければいけません。通常、デバイスドライバは、Linux起動時に自動でロードされます。

ロード済みモジュール情報を確認するにはlsmodコマンドを入力します。

[centos@localhost ~]$ lsmod

何らかの理由でデバイスドライバが自動でロードされない場合は、手動でデバイスドライバをロードしなければいけません。
手動でデバイスドライバをロードするにはmodprobeコマンドを使用します。また、下記のようなオプションがありますが、オプションを省略した場合は依存関係を考慮してモジュールをロードします。

[centos@localhost ~]$ modprobe [オプション] モジュール名
オプション 説明
-a 指定したモジュール名に一致するすべてのモジュールのロード
-l ロード可能なすべてのモジュールのファイル名を表示
-r 依存関係を考慮してモジュールをアンロード
-t 特定の機能を持つモジュールのみ指定

USBコントローラ

USBデバイスを利用するには、デバイスドライバ以外にUSBコントローラというUSBデバイスとの通信制御を行う仕組みが必要となります。USBコントローラには以下の様な種類があります。

UHCI(Universal Host Controler Interface)
USB1.xに対応。Intelが中心になり開発されました。インターフェイスがシンプルでコストが安いのがメリットな反面、比較的CPUに負荷がかかるというデメリットもあります。
OHCI(Open Host Controler Interface)
USB1.xに対応。マイクロソフトが中心になり開発されました。UHCIと比べてCPUに負荷がかかりません。
EHCI(Enhanced Host Controler Interface)
USB2.xに対応す。現在、最も一般的な方式です。
xHCI (eXtensible Host Controller Interface)
USB3.xに対応。Intelによって開発されました。次世代規格のUSBコントローラです。

プログラミングの必要性

フェイスブックのザッカーバーグ氏やマイクロソフトのビル・ゲイツ氏などが、プログラミングの必要性について語っています。

おすすめアイテム

「M570」以来、実に7年ぶりのロジクール製トラックボールマウス。プログラミングをするにあたって、一度使うともう元には戻れません!