Windowsデバイスマネージャーに相当するLinux、またはWindows DevCon
ユーティリティ(ハードウェア管理機能を備えたコマンドラインユーティリティ)があるかどうか疑問に思いました。
Linuxでもドライバーは同じように機能しますか?
Windows devcon
によって提供される機能は、Linuxのさまざまな機能とコマンドでカバーされています。
Linuxの「プラグアンドプレイ」マネージャーは通常udev
です。 udev
は、ハードウェアの変更を認識し、(場合によっては)モジュールを自動ロードし、必要に応じて/dev
にノードを作成します。 LinuxでUSBデバイスの取り外しをシミュレートするなどの操作(devcon
で実行できる操作)を行う場合は、実行中のudevd
と対話するコマンドを使用する必要があると思います。 Linuxではこれを行っていませんが、udev
についてさらに学ぶことから始めることができます。
lsmod
は、現在ロードされているすべてのカーネルモジュールを表示します。デバイスドライバは、カーネルモジュールの1つの機能です。 insmod
は、可能であればモジュールをロードして起動します。ほとんどの場合、デバイスは/dev
に表示されます。 rmmod
はその逆を行います。 lsmod
を実行すると、一部のモジュールが他のモジュールに依存していることに気付くでしょう。rmmod
では、何かが依存している場合、モジュールを削除できません。 modprobe
とそのオプションは、依存関係を処理します。
Linuxでは、モジュールをカーネルに「組み込む」こともでき、モジュールリストには表示されません。これらは、カーネルがブートローダーによってロードされるとすぐに、いつでも利用できます。別のオプションは、「初期ramdisk」(initrd
)内のディレクトリにモジュールを配置することです。これもブートローダーによってロードされ、起動時にカーネルにすぐにアクセスできます。デバイスドライバの「インストール」または「更新」には、モジュールが組み込まれた新しいカーネルまたは更新されたカーネルの作成、またはそれがない場合はinitrdでの追加/更新が含まれる場合があります。ほとんどのディストリビューションは、これを行うためのツールとユーティリティを提供します。
カーネルモジュール(ドライバーを含む)はカーネルの一部であり、サポートされているすべてのデバイスのドライバーであるため、kernel.orgの「公式」カーネルに含まれていない限り、通常、サードパーティのドライバーのインストールや取得について心配する必要はありません。も含まれており、通常はディストリビューションに付属しています。そのため、Linuxで「メーカー提供のドライバー」をインストールする必要があることは、ドライバー開発者が必要とする技術情報に関してまだ多くの法的負担があるビデオドライバーや一部のワイヤレスチップセットを除いて、それほど一般的ではありません。
lshw
は、この情報のほとんどをツリーのような形式で提供できます。 lspci
、lsusb
、lsscsi
、およびlscpu
も非常に役立ちます。 PCI、SCSI、USBなどのほとんどのバスには、特定のクラスのデバイスの情報を構成および取得するために使用できる、ほとんどのLinuxディストリビューションで利用可能な多くのユーザーランドユーティリティがあります(例:hdparm
)。そして、この段落で言及されているほとんどすべて、およびそれ以上は、/proc
および/sys
のさまざまなファイルおよびディレクトリへのフロントエンドにすぎません。ほとんどの場合、ユーティリティを使用することをお勧めします。
ドライバーはWindowsやLinuxと同じではありません。ただし、状況によっては、WindowsデバイスドライバーをLinuxカーネルにロードできます。
Linuxデバイスドライバーについて:
ドライバーは、Linuxカーネルにコンパイルすることもモジュールとしてコンパイルすることもできます。モジュールの場合は、オンデマンドで(アン)ロードできます。
次のコマンドを使用して、マシンデバイスに関する情報を見つけることができます。
lspci
lsusb
私のお気に入りは
lspci -nn
名前と番号について。
次のコマンドのマニュアルページをご覧ください。
modprobe
rmmod
lsmod
modinfo
要するに:
modprobeはカーネルモジュールをロードします。 rmmodはカーネルmodileを削除します。 lsmodは、現在ロードされているモジュールを一覧表示します。 modinfoは、特定のモジュールに関する情報を表示します。
GUIアプリもあります。 KDEのコントロールセンターにはkinfocenterと呼ばれるものがあると思います。
お役に立てば幸いです。
Linuxで次のコマンドを試してください:lshw-gtk、これはlshwのフロントエンドです。
Linuxのほとんどのデバイスドライバーはカーネル拡張です。それらを「lsmod」でリストするか、「rmmod」で削除するか、「modprobe」でロードすることができます。
/sys
で、lsusb/lspciが単に要約されたタブロイドビューを表示している実際のデバイスツリーを探すことができます。