Ermitteln Sie, ob der im Kernel integrierte Treiber ein Gerät unterstützt

Ermitteln Sie, ob der im Kernel integrierte Treiber ein Gerät unterstützt

Ich versuche, eine Möglichkeit zu finden, genau zu bestimmen, ob auf der gesamten Hardware eines Systems ein gültiger Treiber entweder über ein Kernelmodul oder in den Kernel integriert installiert ist.

Ich arbeite mit RHEL 5.5 auf einem Dell Optiplex 990.

Ich weiß, dass lspci ein guter Ausgangspunkt ist, aber es ist nicht zuverlässig, da es manuell aktualisiert werden kann und neue Treiber es nicht immer aktualisieren. Ich weiß, dass ich in /lib/modules/$(uname -r)/modules.pcimap nachsehen kann, ob es ein Treibermodul für das Gerät basierend auf der ID gibt, aber was ist mit integrierten Treibern? Ich habe einen neuen Kernel installiert und versuche herauszufinden, ob das integrierte agpgart-intel-Modul die Host-Bridge mit der Vendor:Device-ID 8086:0100 unterstützt.

Gibt es außerdem ein geeignetes Verfahren zum Aktualisieren der pci.ids-Liste beim Aktualisieren des Kernels? Ich weiß, dass ich einfach alles mit update-pciids aktualisieren oder die Liste aus dem Internet herunterladen könnte, aber ist es nicht sinnvoller, nur IDs einzuschließen, die von der aktuellen Installation unterstützt werden?

Antwort1

Alex beantwortet deine Frage. Vergleichelspci

00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:19.0 Ethernet controller: Intel Corporation 82577LM Gigabit Network Connection (rev 06)
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.3 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 (rev 06)
00:1c.4 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 5 (rev 06)
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation QM57 Chipset LPC Interface Controller (rev 06)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 06)
02:00.0 Network controller: Intel Corporation Centrino Ultimate-N 6300 (rev 35)
ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
ff:02.3 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)

mit dem Ergebnis vonls -l pci*/*:*/driver

lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:00.0/driver -> ../../../bus/pci/drivers/agpgart-intel
lrwxrwxrwx. 1 root root 0 May 21 09:34 pci0000:00/0000:00:02.0/driver -> ../../../bus/pci/drivers/i915
lrwxrwxrwx. 1 root root 0 May 21 09:06 pci0000:00/0000:00:16.0/driver -> ../../../bus/pci/drivers/mei_me
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:19.0/driver -> ../../../bus/pci/drivers/e1000e
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1a.0/driver -> ../../../bus/pci/drivers/ehci-pci
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1b.0/driver -> ../../../bus/pci/drivers/snd_hda_intel
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1c.0/driver -> ../../../bus/pci/drivers/pcieport
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1c.3/driver -> ../../../bus/pci/drivers/pcieport
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1c.4/driver -> ../../../bus/pci/drivers/pcieport
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1d.0/driver -> ../../../bus/pci/drivers/ehci-pci
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.0/driver -> ../../../bus/pci/drivers/lpc_ich
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.2/driver -> ../../../bus/pci/drivers/ahci
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.3/driver -> ../../../bus/pci/drivers/i801_smbus
lrwxrwxrwx. 1 root root 0 May 21 09:37 pci0000:00/0000:00:1f.6/driver -> ../../../bus/pci/drivers/intel ips

Es wird nicht unbedingt „die gesamte Hardware“ abdecken. Insbesondere könnte es Funktionen geben, auf die über ACPI zugegriffen werden kann. Das wäre allerdings zu viel, um es manuell zu erforschen.

Eine Alternative wäreStartindem Sie beim Versuch, das System zu verwenden, eine grundlegende Checkliste mit Funktionen erstellen. Für mich ist das ein positiverer Ansatz, da Linux auf meinem System oft einige Funktionen nicht unterstützt, ich Linux aber gerne verwende, ohne diese Funktion zu benötigen :).

Ich stimme zu, dass lspci ein netter Helfer ist. Es könnte jedoch einfacher sein, z. B. wenn Sie die Ethernet-Zeile sehen, einfach zu bestätigen, dass Sie ein funktionierendes Ethernet haben. Wenn Ethernetnichtfunktioniert, kann ich prüfen, ob ein Treiber fehlt, aber ich muss den Treiber nicht prüfen, bevor ich es ausprobiere.

Ich möchte später vielleicht auch eine Aufzeichnung des genauen Treibers, weil ich froh bin, dass er gut funktioniert hat und ich denke, dass es wieder eine gute Hardware ist :). Leider kann Hardware-Support, wie vonbrand sagt, ein Minenfeld sein, also sollten Sie im IdealfallTrotzdemSie möchten eine Zertifizierung für Ihr Betriebssystem oder das Community-Äquivalent: Viele „Funktioniert bei mir super“-Berichte in Google.

Ich frage mich, ob AGP etwas ist, das Sie verwenden wollten? RHEL 5 ist vor Gnome3, sodass Sie Ihre Terminalemulatoren bei Bedarf ohne 3D-Beschleunigung öffnen können. Wenn SieTunWenn Sie 3D-Beschleunigung benötigen, brauchen Sie auch eine GL-Bibliothek dafür. Probieren Sie doch einfach die anspruchsvollsten Grafik-Apps aus, die Sie verwenden möchten, und prüfen Sie, ob sie laufen.

Die Leistung zu beurteilen ist etwas schwieriger. Es ist mehr als nur ein Kontrollkästchen, aber es könnte trotzdem durch eine diskrete Möglichkeit verursacht werden, wie z. B. dass ein generischer Treiber anstelle eines hardwarespezifischen verwendet wird. Es kann nützlich sein, in Ihrer Funktionsliste nach schnellen Benchmarks zu suchen und die Ergebnisse als Referenzpunkt zu notieren. Beispielsweise ist Gnome Disks ein sehr praktisches Benchmark-Tool, das standardmäßig auf den neuesten Versionen (hüstel) dieses Desktops installiert ist.

Wenn Sie auf einem Ihrer Systeme einen Leistungsfehler feststellen (z. B. wenn Gnome 3 ruckelt), können Sie dies als möglichen Checklistenpunkt notieren. Auf einem neuen System könnten Sie dann beispielsweise feststellen, dass Gnome 3 nicht ständig ruckelt und diesen Test bestanden hat.

Antwort2

Wenn Sie die Kbuild-Symbole für die gewünschten Treiber kennen, können Sie diese /proc/config.gzoder jede andere verfügbare Quelle für die Kernelkonfiguration prüfen (Distributionen platzieren die Konfiguration normalerweise /bootneben dem Kernel, oder Sie können die Konfiguration aus dem Kernel mithilfe scripts/extract-ikconfigdes Kernel-Quellcodebaums extrahieren – vorausgesetzt natürlich, die Konfiguration wurde in den Kernel kompiliert).

Antwort3

Sie müssen die für die Maschine aufgelisteten Geräte anhand einer Liste der von RHEL unterstützten Geräte nachschlagen. Ja, es gibt möglicherweise welche, die funktionieren, aber niemand hat sich die Mühe gemacht, ihre Funktion zu überprüfen/zu bestätigen.

Seien Sie vorsichtig, manchmal Geräte mit ähnlichen Namen (z. B. eine Ethernet-Karte mit dem Namen SC-423+ war einvollständigein anderes Kaliber als das oberflächlich identische SC-423; und einmal wurden wir von Karten mit genau derselben Modellnummer gebissen, die ziemlich unterschiedlich waren). Und andersherum wurden völlig unterschiedliche Geräte von unterschiedlichen Anbietern auf denselben Teilen aufgebaut. Aber auch so, dass Hersteller A absolut zuverlässig war, während B höllisch unzuverlässig war.

verwandte Informationen