Linuxでサポートされているデバイスドライバのリストはどこにありますか?

Linuxでサポートされているデバイスドライバのリストはどこにありますか?

私が読んでここlinux複数のデバイスドライバをサポートし、さらにポートを介して接続された複数のデバイスもサポートしますUSB。このウェブサイトからのもの:

今日、Linuxは世界の歴史上、どのオペレーティングシステムよりも多くのハードウェアデバイスをサポートしています。これは、おなじみのWindowsデバイスドライバモデルとは大きく異なる開発モデルを使用して行われます。

サポートされているさまざまなデバイスのリストがありますかlinux?および/またはUSBLinuxを介して接続されサポートされているデバイスのリストはありますか?

これは、特定のディストリビューションが現在どのデバイスドライバをサポートしているかを調べるためにコマンドを使用するのとは異なり、ディストリビューションlsmodプロバイダlspcidmesg | grep <string>.NETでサポートされているすべてのドライバのうち、いくつかの共通ドライバのみをサポートしますlinux

ベストアンサー1

lspciコマンドは、特定のlsusbバスに接続されているデバイスのみを列挙します。彼らはバスからIDを読み取り、特殊ファイルを使用してこのIDを文字列にマップします。

表示されているのはすべてlsmodリストです。Linuxカーネルモジュール。 Linuxカーネルモジュールは、Linuxカーネルコードの動的にロードされた部分です。モジュールはドライバに必要ではなく、カーネルコードの一部にすぎません。このメカニズムは、カーネルの開発を容易にするためにメモリと起動時間を節約し、起動時にすべてのコードをロードしないようにするために使用されます(カーネルの一部をアンロード/修正/ロードできます)。デバイスドライバは、これらのダイナミックローディングの優れたアプリケーションの1つであるため、ほとんどのドライバで使用されます。ドライバー以外の例には、ユーザーが実際に要求した部分だけがロードされる iptables (ネットワーク フィルター機構) があります。

これはdmesgカーネルテキストログにすぎません。通常、開発者は初期化時に何かを書いていますが、これは完全に自発的です。したがって、そこで見つけることができるコンテンツと形式は完全にランダムです。

サポートされているハードウェアの完全なリストを取得することは困難です。カーネルは、さまざまな人が作成したさまざまな部分で構成されており、異なるラベルを持つ類似のデバイスがたくさんあります。

通常、専用ページでデバイスがサポートされているかどうかを確認できます。

これは、主にユーザー空間階層用のカーネルドライバが必要であるだけでなく、ユーザー空間の基本インターフェイスで両方の部分を実行する「プロジェクト」もあるためです。

トップレベルのサポートリストはカーネルコードから抽出できます。通常、各特定のドライバがサポートする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スマートフォンにどれだけのドライバがあるかを想像してみてください)で動作し、各アーキテクチャには独自の巨大なドライバセットがあることを忘れないでください。総合が他のすべてのアーキテクチャを容易に上回ることがわかります。オペレーティングシステムを理解してください。

おすすめ記事