Was steckt unter der Haube? Mit Lshw enthüllen Sie Details der PC-Hardware, die Sie in einigen Fällen noch nicht einmal in den Datenblättern finden.
Jede vom Kernel und seinen Modulen erkannte Hardware hinterlässt Spuren in den Log-Dateien oder den Pseudo-Dateisystemen /proc und /sys. Das Zusammentragen der Informationen von Hand fällt recht aufwändig aus. Einige Distributionen versuchen daher mit verschiedenen Programmen und unterschiedlichem Erfolg, dem Anwender diese Arbeit abzunehmen. Lshw [1] erweist sich dagegen als ein Programm, das auf allen Plattformen gut funktioniert und die Ergebnisse übersichtlich präsentiert.
Der Name der Software leitet sich von “List Hardware” ab. Das Programm ermittelt Informationen zu Hardwarekomponenten wie CPU, Speichermodulen oder auch zu Geräten, die Sie an PCI-, USB- oder IDE-Schnittstellen angeschlossen haben (zum Beispiel Soundkarte, Grafikkarte oder externe Laufwerke). Das kleine Tool arbeitet auf der Kommandozeile. Sie steuern es durch Optionen (siehe Tabelle “Wichtige Optionen”).
Wichtige Optionen
| Option | Beschreibung |
|---|---|
-html |
HTML-Ausgaben generieren |
-xml |
XML-Ausgaben generieren |
-short |
kurze Zusammenfassung erzeugen |
-businfo |
Bus-Information ausgeben |
-X |
grafische Oberfläche verwenden |
| Aktionen | |
-c, -C, -class Klasse |
Informationen zu Klasse zeigen |
-disable Test |
Test auslassen |
-enable Test |
Test vornehmen |
-quiet |
Statuszeile nicht anzeigen |
-sanitize |
sensible Informationen unterdrücken |
-numeric |
numerische IDs anzeigen |
Die erste Gruppe von Optionen steuert das Ausgabeformat. Voreingestellt schreibt Lshw die Ausgaben als Klartext auf das kontrollierende Terminal (Listing 1). Das ist praktisch, wenn es darum geht, die Ausgaben zu archivieren oder automatisch zu bearbeiten – etwa um mittels Grep bestimmte Zeilen herauszufiltern und weiter zu verarbeiten (lshw ... | grep size ...).
Für ähnliche Anwendungen existiert die Option -xml, die ein vollständiges, wohlformatiertes XML-Dokument erzeugt, das sich gut für das Archivieren in einer Datenbank eignet. Schöner und für Menschen besser zu lesen erscheinen die Ausgaben als HTML-Seite, wie sie die gleichnamige Option (klein geschrieben: -html) erzeugt. Noch einen Schritt weiter geht -X, das eine grafische Oberfläche startet.
Um nur eine kurze Übersicht statt der teilweise wirklich sehr detaillierten Informationen, wie Lshw sie voreingestellt ausgibt zu erhalten, stehen die Optionen -businfo und -short bereit.
Listing 1
# lshw
...
*-multimedia
description: Audio device
product: Azalia Audio Controller
vendor: Silicon Integrated Systems [SiS]
physical id: f
bus info: pci@0000:00:0f.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=HDA Intel latency=0 maxlatency=11 mingnt=52
resources: irq:18 memory:d4200000-d4203fff
...
*-usb:1
description: USB Controller
product: USB 1.1 Controller
vendor: Silicon Integrated Systems [SiS]
physical id: 3.1
bus info: pci@0000:00:03.1
version: 0f
width: 32 bits
clock: 33MHz
capabilities: bus_master
configuration: driver=ohci_hcd latency=32 maxlatency=80
resources: irq:21 memory:d4205000-d4205fff
*-usb:2
description: USB Controller
product: USB 2.0 Controller
vendor: Silicon Integrated Systems [SiS]
physical id: 3.3
bus info: pci@0000:00:03.3
version: 00
width: 32 bits
clock: 33MHz
capabilities: pm debug bus_master cap_list
configuration: driver=ehci_hcd latency=32 maxlatency=80
resources: irq:22 memory:d4206000-d4206fff
...
Im Detail
Ohne Root-Privilegien hat Lshw nur begrenzten Zugriff auf die Systeminformationen. Entsprechend schlanker fällt die Ausgabe aus, allerdings fehlen dann relevante Teile. Normalerweise sollten Sie Lshw daher als Root (sudo lshw) verwendet. Mit den entsprechenden Optionen passen Sie die Ausgabe den Wünschen entsprechend an. Dazu nutzen Sie zum Beispiel Klassen (Tabelle “Klassen”) und Tests (Tabelle “Tests”).
Klassen
address |
Speicheradressen für Extension-ROM oder Videospeicher |
bridge |
PCI-to-PCI, AGP, PCMCIA |
bus |
nur Busse, ohne daran hängende Hardware |
communication |
serielle Ports, Modem |
disk |
Laufwerke (auch optische) |
display |
Grafikkomponenten (ohne Monitor) |
generic |
andere Komponenten |
input |
Tastaturen, Mäuse, Joysticks |
memory |
RAM, BIOS, Firmware |
multimedia |
Sound-, TV- und Video-Karten |
network |
Bluetooth, Ethernet, FDDI, WLAN |
power |
Stromversorgungen, Batterien |
printer |
Drucker, All-in-one-Geräte |
processor |
CPU, aber auch RAID-Controller |
storage |
SCSI- oder IDE-Controller |
system |
Art des Systems: Laptop, Desktop, Server oder “Computer” |
tape |
DAT/DDS-Streamer |
volume |
Dateisysteme, Partitionen |
Tests
cpuid |
die ausgelesene CPU-ID |
cpuinfo |
Daten der CPU |
device-tree |
OpenFirmware Device Tree (PowerPC) |
dmi |
DMI/SMBIOS-Erweiterungen |
ide |
klassische IDE- und ATAPI-Geräte |
isapnp |
ISA-PnP-Erweiterungen |
pci |
PCI- und AGP-Geräte |
pcmcia |
PCMCIA- und PC-Card-Erweiterungen |
memory |
Memory-Size-Heuristiken |
network |
Netzwerk-Interfaces |
scsi |
echte und simulierte SCSI-Geräte |
spd |
Serial Presence Detect [2] |
usb |
alle USB-Geräte |
Mithilfe der Option -sanitize ersetzt Lshw sensible Informationen (wie Seriennummern und IP-Adressen) durch die Zeichenkette [REMOVED]. Das erweist sich dann also sinnvoll, wenn Sie diese Informationen an Dritte weitergeben möchten, etwa bei Anfragen in Foren oder Ähnlichem. Die Option -quiet verhindert, dass Lshw auf dem Terminal anzeigt, welche Klasse die Software momentan testet.
Ganz anders -numeric: Diese Option veranlasst die Ausgabe numerischer IDs für PCI, USB und andere Geräte. Die Ausgaben der einzelnen Klassen zeigt Lshw in einer Baumstruktur. Die Äste (“nodes”) können dabei mit einem von vier möglichen Schlüsselwörtern gekennzeichnet sein:
CLAIMED– es gibt einen geeigneten Treiber und er ist geladen (oft zeigt Lshw direkt die entsprechenden Informationen).UNCLAIMED– markiert Klassen, für die es (derzeit) keinen Treiber gibt.ENABLED– kennzeichnet Klassen mit voll funktionsfähigen Treibern (oft zeigt Lshw direkt die entsprechenden Informationen).DISABLE– erscheint, falls es mit dem Treiber ein Problem gibt
Für die Interpretation der Angaben gilt: Die Aussagen in den Bereichen size und capacity hängen von der jeweiligen Klasse ab. Sie unterscheiden sich also danach, ob Sie eine CPU oder einen Speicher analysieren. Die Angabe serial bezieht sich auf die Seriennummern von Geräten wie Festplatten, Speicherriegel, Prozessoren oder Mainboards. Bei Netzwerkgeräten gibt sie die MAC-Adresse an, bei Partitionen die GUID.
Festplatten mit mehreren logischen Partitionen erscheinen mehrfach: Einmal als logische Partition, einmal in der sie enthaltenen erweiterten Partition. Unter capabilities fasst Lshw die jeweils verfügbaren Features der Klassen zusammen; dabei hängt die Interpretation wieder vom jeweiligen Gerätetyp ab.
Mit GUI
Für Lshw gibt es eine grafische Oberfläche: Lshw-gtk (Abbildung 1). Sie starten diese zum einen direkt unter diesem Namen oder via Lshw mit der Option -X. Diese Ansicht spiegelt die Baumstruktur der von Lshw erhobenen Informationen wider. Diese erscheinen in bis zu drei Ebenen verschachtelt, ein Doppelklick öffnet die jeweils nächste Ebene.
Das klappt nur bei Einträgen, für die Lshw durch Fettung das Vorhandensein von Untereinträgen signalisiert. Ganz rechts zeigt das Fenster die jeweiligen Daten an. Die grafische Oberfläche unterstützt nicht die Optionen der Befehlszeile, sodass hier geduldiges Suchen angesagt ist, wenn es darum geht, bestimmte Einträge zu finden.
Fazit
Lshw erweist sich als ein nützliches Werkzeug, das durch ein wirklich einfaches Bedienkonzept überzeugt. Es zeigt überaus viele Informationen zu der im lokalen Rechner verbauten Hardware an und deckt dabei so manches auf, was die Hersteller weder im Datenblatt noch sonstwo dokumentierten. Natürlich bedarf es einiges Grundwissens über die Hardware, und auch Geduld sowie eine gute Internetverbindung schaden nicht, will man Wissenslücken füllen. Da erfreut, dass Lshw einiges Expertenwissen schon in seine Ausgabe packt.
Zunächst ist der Zugang über die grafische Oberfläche wohl am Einfachsten, später und bei mehreren Rechnern stellt sich aber die Befehlszeilenvariante als sehr elegant heraus. Nach dem Einbau neuer Hardware erstellt ein Scan mit Lshw schnell einen neuen Eintrag für die persönliche Datenbank mit den Hardware-Informationen. Später, bei einem Defekt, mag es dafür schon zu spät sein.
Bleibt nur noch ein Blick auf die von Lshw erzeugte Datenqualität: Das Programm zeigt natürlich nur das an, was die Hardware freiwillig preisgibt. Nicht immer fallen die Daten daher vollständig aus: So gibt eine im Testsystem verbaute ATI-Grafikkarte des Typs Radeon X1600 für den Standardausgang zwar die korrekte Produktbezeichnung, für den zweiten Port aber nur noch ATI Technologies Inc an. Hier heißt es also, die Ausgaben richtig zu interpretieren (sprich: begründet zu raten), um zu vernünftigen Ergebnissen zu kommen.
Infos
[1] Projektseite: http://ezix.org/project/wiki/HardwareLiSter
[2] Serial Presence Detect: http://en.wikipedia.org/wiki/Serial_presence_detect






