Hardwareübersicht und Informationsquellen unter Linux

Welche CPU steckt im Rechner? Wie viel Arbeitsspeicher erkennt Linux? Welcher Treiber betreut die Netzwerkkarte? Und warum erscheint ein angeschlossenes Gerät zwar in einer Übersicht, lässt sich aber trotzdem nicht verwenden?

Linux bietet dafür verschiedene Informationsquellen und Werkzeuge. Einige zeigen die vom Kernel erkannte Hardware, andere lesen Angaben aus der Firmware oder stellen die Beziehungen zwischen Geräten, Treibern und logischen Ressourcen dar. Eine zuverlässige Hardwareübersicht entsteht deshalb nicht durch einen einzigen Befehl, sondern durch das Zusammenspiel dieser Ansichten.

Hardwareinformationen richtig einordnen

Bei einer Bestandsaufnahme sollten drei Fragen getrennt werden:

  • Welche Komponenten werden vom System erkannt?
  • Wie sind diese Komponenten eingebunden und konfiguriert?
  • Funktionieren sie für den vorgesehenen Zweck?

Eine Geräteauflistung beantwortet vor allem die erste Frage. Die Zuordnung eines Treibers liefert zusätzliche Informationen zur Einbindung. Für die tatsächliche Funktion müssen gegebenenfalls weitere Eigenschaften und Meldungen untersucht werden.

Beispielsweise zeigt lspci PCI- und PCIe-Geräte. Mit lspci -k lässt sich zusätzlich erkennen, welcher Kernel-Treiber für ein Gerät verwendet wird. Das ist aussagekräftiger als die reine Modellbezeichnung, ersetzt aber noch keinen Funktionstest.

Die wichtigste Grundregel lautet daher: Ein erkanntes Gerät ist nicht automatisch ein vollständig betriebsbereites Gerät.

Woher stammen die Informationen?

Die Werkzeuge greifen auf unterschiedliche Quellen zurück. Besonders wichtig sind die vom Kernel bereitgestellten Dateisysteme /proc und /sys, die udev-Datenbank sowie Firmwaretabellen.

InformationsquelleTypische Inhalte
/procProzessorinformationen, Speicherstatistiken und weitere Laufzeitdaten
/sysGeräte, Busse, Treiberzuordnungen und Geräteeigenschaften
udev-DatenbankZusätzliche Geräteinformationen und Kennzeichnungen
DMI-/SMBIOS-TabellenVon der Firmware gemeldete Angaben zu System, Mainboard und Speichermodulen

Nicht jedes Werkzeug verwendet alle diese Quellen. lscpu liest beispielsweise aus sysfs und /proc/cpuinfo; lsblk verwendet vor allem sysfs und die udev-Datenbank. dmidecode wertet dagegen die von der Firmware bereitgestellten DMI-/SMBIOS-Daten aus.

/proc und /sys sind keine gewöhnlichen Datenverzeichnisse

Diese virtuellen Dateisysteme stellen Informationen des laufenden Systems über Dateien und Verzeichnisse bereit. Besonders /sys bildet Beziehungen zwischen Geräten, Treibern und Bussen ab.

Ein Werkzeug wie lscpu oder lsblk bereitet solche Informationen lesbarer auf. Die Befehle sind also häufig komfortable Ansichten auf Daten, die der Kernel bereits bereitstellt.

Die wichtigsten Werkzeuge im Überblick

Für eine erste Orientierung genügt eine kleine Auswahl:

FragestellungWerkzeug beziehungsweise Aufruf
Welche Prozessorarchitektur und CPU-Topologie erkennt Linux?lscpu
Wie ist die aktuelle Speicherbelegung?free -h
Welche Blockgeräte und Partitionen gibt es?lsblk
Welche Dateisysteme gehören zu den Blockgeräten?lsblk -f
Welche PCI-/PCIe-Geräte werden erkannt?lspci
Welche Treiber betreuen PCI-Geräte?lspci -k
Welche USB-Geräte sind angeschlossen?lsusb
Wie ist die USB-Hierarchie aufgebaut?lsusb -t
Welche System- und Firmwareangaben sind hinterlegt?dmidecode
Wie sieht eine zusammengefasste Hardwareübersicht aus?lshw -short

Diese Werkzeuge betrachten unterschiedliche Ausschnitte. Eine Speicherstatistik ist beispielsweise keine Auflistung eingebauter RAM-Module, und eine Dateisystemübersicht ist keine reine Liste physischer Datenträger.

Je nach Distribution und Installationsumfang müssen einzelne Werkzeuge nachinstalliert werden. lscpu und lsblk gehören zu util-linux, lspci zu pciutils und lsusb zu usbutils.

Prozessoren: Kerne, Threads und NUMA unterscheiden

Eine CPU-Übersicht liefert:

lscpu

Die Ausgabe enthält unter anderem Architektur, Prozessormodell, logische CPUs, Kerne, Sockel, Cacheinformationen und gegebenenfalls NUMA-Knoten.

Dabei sind die Begriffe nicht austauschbar:

  • Ein Sockel beschreibt die Einordnung eines Prozessorpakets in der erkannten Topologie.
  • Ein Kern ist eine Recheneinheit innerhalb eines Prozessors.
  • Eine logische CPU ist eine vom Betriebssystem verwaltete Ausführungseinheit. Durch SMT kann ein Kern mehrere logische CPUs bereitstellen.

Die Zahl hinter CPU(s) darf deshalb nicht einfach als Anzahl eingebauter Prozessoren gelesen werden. Für die Einordnung müssen auch Sockel, Kerne und Threads berücksichtigt werden.

Eine detailliertere Zuordnung zeigt:

lscpu -e

Damit lassen sich beispielsweise die Beziehungen zwischen logischen CPUs, Kernen, Sockeln und NUMA-Knoten betrachten.

Besonderheit virtueller Maschinen

In einer virtuellen Maschine beschreibt lscpu vor allem die dem Gast präsentierte CPU-Konfiguration. Diese muss nicht der physischen Ausstattung des Hosts entsprechen. Aus acht sichtbaren virtuellen CPUs lässt sich daher nicht zuverlässig ableiten, wie viele physische Kerne der Host besitzt.

Arbeitsspeicher: Ausstattung und Nutzung sind unterschiedliche Ansichten

Bei RAM müssen zwei Fragen auseinandergehalten werden:

  1. Wie viel Speicher steht dem laufenden System zur Verfügung und wie wird er verwendet?
  2. Welche Speichermodule und Steckplätze meldet die Hardware beziehungsweise Firmware?

Für die Laufzeitansicht eignen sich:

free -h
cat /proc/meminfo

Diese Informationen helfen bei der Beurteilung des verfügbaren und verwendeten Speichers. Sie liefern aber keine vollständige Bestückungsliste der RAM-Steckplätze.

Für Modul- und Steckplatzangaben kann auf geeigneten Systemen Folgendes verwendet werden:

sudo dmidecode -t memory

Hier geht es um die Firmwarebeschreibung: beispielsweise Modulgrößen, Steckplatzbezeichnungen und gemeldete Speichereigenschaften.

Die beiden Ansichten beantworten somit unterschiedliche Fragen. Für die Untersuchung von Speicherdruck ist die Laufzeitansicht wichtig; für eine geplante Hardwareerweiterung sind Angaben zur Bestückung relevant.

Datenträger: Hardware, Partitionen und Dateisysteme trennen

Eine erste Übersicht liefert:

lsblk

Für eine gezielte Auswahl von Informationen:

lsblk -o NAME,TYPE,SIZE,MODEL,TRAN,MOUNTPOINTS

Die Baumansicht macht sichtbar, welche Blockgeräte vorhanden sind und wie beispielsweise Partitionen oder weitere Geräteebenen damit zusammenhängen. lsblk kann dabei sowohl physische als auch logische Blockgeräte anzeigen. Nicht jede Zeile steht für ein eigenes Laufwerk.

Für Dateisysteminformationen:

lsblk -f

Dieser Aufruf ergänzt unter anderem Dateisystemtyp, Label, UUID und Einhängepunkte.

Warum eine Laufwerksliste nicht ausreicht

Bei der Interpretation sollten folgende Ebenen getrennt werden:

  • Das Laufwerk beziehungsweise Blockgerät stellt Speicher bereit.
  • Eine Partition beschreibt einen Teilbereich eines Datenträgers.
  • Weitere logische Ebenen können dazwischenliegen.
  • Das Dateisystem organisiert Dateien und Verzeichnisse.
  • Der Einhängepunkt macht ein Dateisystem im Verzeichnisbaum zugänglich.

Die Beziehung ist nicht immer eins zu eins: Ein Dateisystem kann mehrere Blockgeräte verwenden, und dieselbe Ressource kann über mehrere Pfade erreichbar sein. Genau deshalb ist die Hierarchie in lsblk häufig wichtiger als die bloße Anzahl der Einträge.

PCI und PCIe: Interne Komponenten und ihre Treiber

Viele interne Geräte erscheinen als PCI- beziehungsweise PCIe-Geräte, darunter Grafikadapter, Netzwerkadapter und Speichercontroller.

Eine Übersicht liefert:

lspci

Für die Fehlersuche ist diese Variante besonders hilfreich:

lspci -nnk

Damit werden neben den Bezeichnungen auch numerische Gerätekennungen und Informationen zu Kernel-Treibern angezeigt. Hersteller- und Gerätekennungen sind nützlich, wenn eine Modellbezeichnung ungenau ist oder verschiedene Hardwarevarianten ähnlich heißen.

Dabei sollten Geräteerkennung und Treiberbindung getrennt betrachtet werden: Die vorhandene PCI-Funktion ist eine Information; der dafür tatsächlich verwendete Treiber eine weitere.

Auch kann eine einzelne Erweiterungskarte mehrere Funktionen bereitstellen. Die Anzahl der angezeigten Einträge ist daher keine verlässliche Zählung physisch eingebauter Karten.

USB: Geräte und Anschlussstruktur untersuchen

Für angeschlossene USB-Geräte dient:

lsusb

Die Ausgabe enthält unter anderem Hersteller- und Produktkennungen sowie Gerätebezeichnungen.

Die Baumdarstellung liefert:

lsusb -t

Sie hilft dabei, die Beziehungen zwischen USB-Bussen, Hubs und angeschlossenen Geräten zu verstehen.

Diese Sicht ergänzt andere Werkzeuge. Ein USB-Datenträger kann beispielsweise in lsusb als USB-Gerät erscheinen und in lsblk als Blockgerät. Die beiden Ausgaben beschreiben dann unterschiedliche Aspekte derselben Hardware.

Das ist bei der Fehlersuche entscheidend: Die Erkennung am USB-Bus und die Bereitstellung einer nutzbaren Speicherfunktion sind nicht dieselbe Stufe.

Firmwareangaben mit dmidecode auslesen

dmidecode wertet die DMI-/SMBIOS-Tabellen aus. Darin stellt die Firmware Informationen über das System bereit.

Typische Abfragen sind:

sudo dmidecode -t system
sudo dmidecode -t baseboard
sudo dmidecode -t bios
sudo dmidecode -t memory

Damit lassen sich beispielsweise Systemmodell, Mainboardangaben, Firmwareversion und Speichermodule untersuchen.

Firmwareangabe bedeutet nicht automatisch Messwert

Die Herkunft der Daten ist wichtig: dmidecode zeigt eine von der Firmware bereitgestellte Beschreibung. Es misst nicht selbst die aktuelle Leistung und überprüft auch nicht durch einen Belastungstest, ob die gemeldete Ausstattung fehlerfrei arbeitet.

Für wichtige Entscheidungen sollten daher passende Quellen kombiniert werden: Firmwaredaten für die Ausstattung, Kernelansichten für die erkannte Konfiguration und geeignete Messungen für den tatsächlichen Betrieb.

Eine Gesamtübersicht mit lshw erstellen

Für einen zusammengefassten Überblick eignet sich:

sudo lshw -short

Eine ausführlichere Darstellung liefert:

sudo lshw

lshw führt Informationen aus mehreren Quellen zusammen und ordnet sie nach Hardwarekomponenten und Geräteklassen. Das ist hilfreich für eine erste Bestandsaufnahme oder die Dokumentation eines Systems. Ohne ausreichende Berechtigungen können Informationen fehlen.

Eine solche Zusammenfassung ersetzt die Spezialwerkzeuge jedoch nicht. Für CPU-Topologie ist lscpu oft übersichtlicher, für Speicherbeziehungen lsblk und für Firmwaretabellen dmidecode.

Warum sich Ausgaben unterscheiden können

Unterschiedliche Ergebnisse bedeuten nicht zwangsläufig, dass eines der Werkzeuge falsch arbeitet. Häufig unterscheiden sich Fragestellung, Datenquelle oder Sichtbarkeit.

Typische Ursachen sind:

  • Ein Werkzeug liest Firmwaretabellen, ein anderes die aktuelle Kernelansicht.
  • Eine virtuelle Maschine sieht die bereitgestellte virtuelle Hardware.
  • Eine Übersicht enthält logische Geräte, eine andere Busgeräte.
  • Fehlende Berechtigungen verhindern vollständige Abfragen.
  • Nach einer Geräteänderung sind noch nicht alle udev-Informationen verfügbar.

Gerade nach dem Anschließen eines Geräts kann die letzte Ursache relevant sein. Die Dokumentation von lsblk weist darauf hin, dass die udev-Datenbank bei unmittelbar aufeinanderfolgenden Ereignissen noch unvollständig sein kann.

Die richtige Frage lautet daher nicht nur „Welche Ausgabe stimmt?“, sondern auch „Welche Ebene beschreibt die jeweilige Ausgabe?“.

Eine sinnvolle Vorgehensweise für die Bestandsaufnahme

Für eine übersichtliche Dokumentation bietet sich diese Reihenfolge an:

  1. Mit lshw -short einen groben Überblick gewinnen.
  2. Mit lscpu die Prozessorstruktur prüfen.
  3. Mit free -h die aktuelle Speichersituation betrachten.
  4. Mit lsblk und lsblk -f Speichergeräte und Dateisysteme zuordnen.
  5. Mit lspci -nnk und lsusb -t Geräte und ihre Einbindung untersuchen.
  6. Bei Bedarf mit dmidecode die Firmwareangaben ergänzen.

Diese Reihenfolge führt von der Gesamtübersicht zu den einzelnen Ebenen und vermeidet, eine einzelne Quelle als vollständiges Abbild des Rechners zu behandeln.

Ausgaben vor der Weitergabe prüfen

Hardwareberichte können Seriennummern, UUIDs, Gerätekennungen und weitere identifizierende Angaben enthalten. Vor der Veröffentlichung in einem Forum, einem Blog oder einem Supportticket sollten diese Informationen geprüft und bei Bedarf geschwärzt werden.

Für automatisierte Auswertungen sollten außerdem ausdrücklich benötigte Spalten oder geeignete maschinenlesbare Formate gewählt werden. Die Standardausgabe von Werkzeugen wie lsblk und lscpu kann sich zwischen Versionen ändern.

Fazit: Die Informationsquelle gehört zur Aussage

Eine Hardwareübersicht unter Linux ist mehr als eine Liste von Modellnamen. Sie verbindet Angaben zur Ausstattung mit der Sicht des Kernels, der Treiberzuordnung und der logischen Organisation von Ressourcen.

Wer diese Ebenen unterscheidet, kann die Werkzeuge gezielt einsetzen: lscpu erklärt die Prozessorstruktur, lsblk die Blockgerätebeziehungen, lspci und lsusb die Geräte an den jeweiligen Bussen und dmidecode die von der Firmware gemeldete Ausstattung.

Entscheidend ist dabei immer, woher eine Information stammt und was sie tatsächlich belegt. Eine erkannte Komponente, eine passende Treiberbindung und ein fehlerfreier Betrieb sind zusammenhängende, aber unterschiedliche Aussagen.


,
Andreas Moor
Andreas Moor
@blog@andreas-moor.de

Hallo Fediverse, ich bin Andy!

Hier und auf meiner Website findest du mein akkumuliertes Linux-Sysadmin-Wissen, meine kleinen und größeren Projekte und die Tools, die ich nutze.

Viel Spaß beim stöbern, lesen und lernen! 🧑‍💻

60 Beiträge
39 Folgende