私が読んでここlinux
複数のデバイスドライバをサポートし、さらにポートを介して接続された複数のデバイスもサポートしますUSB
。このウェブサイトからのもの:
今日、Linuxは世界の歴史上、どのオペレーティングシステムよりも多くのハードウェアデバイスをサポートしています。これは、おなじみのWindowsデバイスドライバモデルとは大きく異なる開発モデルを使用して行われます。
サポートされているさまざまなデバイスのリストがありますかlinux
?および/またはUSB
Linuxを介して接続されサポートされているデバイスのリストはありますか?
これは、特定のディストリビューションが現在どのデバイスドライバをサポートしているかを調べるためにコマンドを使用するのとは異なり、ディストリビューションlsmod
プロバイダlspci
はdmesg | grep <string>
.NETでサポートされているすべてのドライバのうち、いくつかの共通ドライバのみをサポートしますlinux
。
答え1
lspci
コマンドは、特定のlsusb
バスに接続されているデバイスのみを列挙します。彼らはバスからIDを読み取り、特殊ファイルを使用してこのIDを文字列にマップします。
表示されているのはすべてlsmod
リストです。Linuxカーネルモジュール。 Linuxカーネルモジュールは、Linuxカーネルコードの動的にロードされた部分です。モジュールはドライバに必要ではなく、カーネルコードの一部にすぎません。このメカニズムは、カーネルの開発を容易にするためにメモリと起動時間を節約し、起動時にすべてのコードをロードしないようにするために使用されます(カーネルの一部をアンロード/修正/ロードできます)。デバイスドライバは、これらのダイナミックローディングの優れたアプリケーションの1つであるため、ほとんどのドライバで使用されます。ドライバー以外の例には、ユーザーが実際に要求した部分だけがロードされる iptables (ネットワーク フィルター機構) があります。
これはdmesg
カーネルテキストログにすぎません。通常、開発者は初期化時に何かを書いていますが、これは完全に自発的です。したがって、そこで見つけることができるコンテンツと形式は完全にランダムです。
サポートされているハードウェアの完全なリストを取得することは困難です。カーネルは、さまざまな人が作成したさまざまな部分で構成されており、異なるラベルを持つ類似のデバイスがたくさんあります。
通常、専用ページでデバイスがサポートされているかどうかを確認できます。
- サポートされているプリンタはLinuxプリンタデータベースにあります。http://www.openprinting.org/printers
- スキャナーページが正常です
- ビデオカードを開くhttp://www.x.org/wiki/Projects/Drivers/
- など。
これは、主にユーザー空間階層用のカーネルドライバが必要であるだけでなく、ユーザー空間の基本インターフェイスで両方の部分を実行する「プロジェクト」もあるためです。
トップレベルのサポートリストはカーネルコードから抽出できます。通常、各特定のドライバがサポートするPCI / USB IDのリストがあります。これを抽出する方法があります。http://www.cyberciti.biz/tips/linux-find-supported-pci-hardware-drivers.html。ただし、カーネルモジュールがリストにIDを持っていても、デバイスが完全にサポートされているわけではなく、モジュールを使用できるユーザースペースツールがあるか、ユーザースペースツールがあるという意味でもありません。特定の展開バージョンに存在します。
ディストリビュータでサポートされているデバイスのリストを提供することもありますが、通常これは小さなサブセットです。
Debian の場合、pciid-> カーネルモジュールマッピングリストもあります。https://wiki.debian.org/DeviceDatabase/PCI。
USBデバイスに関しては、カメラなど多くのものにlibusb経由のユーザースペースドライバーがあります。この場合、カーネルドライバはまったく必要ありません。
また、Linuxはほぼ20のアーキテクチャ(何十億もの異なるAndroidスマートフォンにどれだけのドライバがあるかを想像してみてください)で動作し、各アーキテクチャには独自の巨大なドライバセットがあることを忘れないでください。総合が他のすべてのアーキテクチャを容易に上回ることがわかります。オペレーティングシステムを理解してください。
答え2
この質問に対する答えはあいまいだと思います!次のリストをお探しの場合装備Linuxカーネルがサポートする特定のハードウェアの試みHノード検索
デバイスドライバは実際には「Windows言語」です。カーネルのデバイスサポートは、組み込みまたは動的に追加されたカーネルモジュールで、これはデバイスドライバに最も近いものです。カーネルはより正確にサポートできますチップセットデバイス自体内にあります。
多くのデバイスが実際に同じチップセットを使用することができ、同じメーカーの製品IDコードが表示されている一部のデバイスはまったく異なるチップセットを使用できます。 (私の不気味を知ったように!)
答え3
何について
find /lib/modules/`uname -r` -name "*usb*"