Hardware des Rechners unter Linux herausfinden

ZuluDC

assimiliert
Welche Hardware steckt in meinem Rechner und wie kann ich mir dies unter Linux anzeigen lassen?

Es war einmal ein Tool für die Kommandozeile, das man unter dem Pingu wahrlich gut gebrauchen konnte und da hiess...

hwinfo

Unter debianbasierenden Distributionen installiert man es über den Befehl apt-get install hwinfo (sofern die sources.list mitspielt). Andere Distris verwenden zumeist rpm's. Eventuell ist das Teil aber schon in Eurer heissgeliebten Pinguversion dabei.

hwinfo --help liefert Befehloptionen, die man in der Konsole angeben kann. Bei mir wird Folgendes angezeigt:
zuludc@inet:~$ hwinfo --help
Usage: hwinfo [options]
Probe for hardware.
--short just a short listing
--log logfile write info to logfile
--debug level set debuglevel
--version show libhd version
--dump-db n dump hardware data base, 0: external, 1: internal
--hw_item probe for hw_item
hw_item is one of:
cdrom, floppy, disk, network, gfxcard, framebuffer, monitor, camera,
mouse, joystick, keyboard, chipcard, sound, isdn, modem, storage-ctrl,
netcard, printer, tv, dvb, scanner, braille, sys, bios, cpu, partition,
usb-ctrl, usb, pci, isapnp, ide, scsi, bridge, hub, memory, smp, pppoe,
pcmcia, pcmcia-ctrl, wlan, zip, dsl, all, reallyall

Note: debug info is shown only in the log file. (If you specify a
log file the debug level is implicitly set to a reasonable value.)

Man kann also unter Anderem cdrom, floppy, disk, network etc. als Optionen zu hwinfo angeben. Beispiele gefällig?

hwinfo --disk spuckt bei mir folgendes aus:
zuludc@inet:~$ hwinfo --disk
17: IDE 00.0: 10600 Disk
[Created at block.190]
Unique ID: Fffu.tFkSIwsYou7
Parent ID: 3p2J.I3HlqgMKfs2
SysFS ID: /block/hda
SysFS BusID: 0.0
SysFS Device Link: /devices/pci0000:00/0000:00:1f.1/ide0/0.0
Hardware Class: disk
Model: "IC35L060AVER07-0"
Device: "IC35L060AVER07-0"
Driver: "PIIX_IDE", "ide-disk"
Device File: /dev/hda
Device Number: block 3:0-3:63
Drive status: no medium
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #11 (IDE interface)

20: SCSI 100.0: 10600 Disk
[Created at block.190]
Unique ID: Mwf_.Gms5GyYcI5E
Parent ID: 5YuN.tkkVXSsIyJ2
SysFS ID: /block/sda
SysFS BusID: 1:0:0:0
SysFS Device Link: /devices/pci0000:00/0000:00:1d.7/usb5/5-3/5-3:1.0/host1/target1:0:0/1:0:0:0
Hardware Class: disk
Model: "SAMSUNG SP2014N"
Vendor: "SAMSUNG"
Device: "SP2014N"
Driver: "usb-storage", "sd"
Device File: /dev/sda
Device Number: block 8:0-8:15
Speed: 1.5 Mbps
Drive status: no medium
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #8 (USB Controller)
Somit lässt sich unschwer erkennen, dass ich 2 Festplatten für diesen PC verwende: Die IBM hängt an ersten IDE-Controller, das neuere Samsungteil ist per USB angebunden und verwendet die Module sd und usb-storage (die Angabe des Speeds ist aber definitiv falsch :-/ ).

Nochmal ein Beispiel:
zuludc@inet:~$ hwinfo --netcard
22: PCI 308.0: 0200 Ethernet controller
[Created at pci.244]
Unique ID: Uog3.98RFVCMClk9
Parent ID: 6NW+.c7JTK_YUBi2
SysFS ID: /devices/pci0000:00/0000:00:1e.0/0000:03:08.0
SysFS BusID: 0000:03:08.0
Hardware Class: network
Model: "IBM Ethernet controller"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x1050
SubVendor: pci 0x1014 "IBM"
SubDevice: pci 0x0285
Revision: 0x02
Driver: "e100"
Memory Range: 0xec000000-0xec000fff (rw,non-prefetchable)
I/O Ports: 0x2080-0x20bf (rw)
IRQ: 20 (21244 events)
HW Address: 00:0d:60:d2:02:bb
Driver Info #0:
Driver Status: e100 is active
Driver Activation Cmd: "modprobe e100"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #16 (PCI bridge)

23: PCI 309.0: 0200 Ethernet controller
[Created at pci.244]
Unique ID: ZvjX.wQq3lwZp4Y5
Parent ID: 6NW+.c7JTK_YUBi2
SysFS ID: /devices/pci0000:00/0000:00:1e.0/0000:03:09.0
SysFS BusID: 0000:03:09.0
Hardware Class: network
Model: "3Com 3C905C-TX Fast Etherlink for PC Management NIC"
Vendor: pci 0x10b7 "3Com Corporation"
Device: pci 0x9200 "3c905C-TX/TX-M [Tornado]"
SubVendor: pci 0x10b7 "3Com Corporation"
SubDevice: pci 0x1000 "3C905C-TX Fast Etherlink for PC Management NIC"
Revision: 0x74
Driver: "3c59x"
I/O Ports: 0x2000-0x207f (rw)
Memory Range: 0xec001000-0xec00107f (rw,non-prefetchable)
Memory Range: 0x00000000-0x0001ffff (ro,prefetchable,disabled)
IRQ: 21 (2173787 events)
HW Address: 00:50:da:41:e8:9d
Driver Info #0:
Driver Status: 3c59x is active
Driver Activation Cmd: "modprobe 3c59x"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #16 (PCI bridge)
2 Netzwerkanschlüsse zieren meinen Rechner: Eine 3Com 3C905C-TX Karte und eine Intel E100 Onboard-Lösung.

Das Coole ist, dass man die verwendeten Module sieht...auch dann wenn sie nicht geladen sind. Das kann wirklich extrem hilfreich sein! Wenn man nämlich zu filtern anfängt sieht man sofort welche Module z.B nicht geladen sind und evt. noch geladen werden müssten.
Dies kann man z.B mit diesem Befehl erreichen (die Backslashes braucht es zur Maskierung der Leerzeichen):

hwinfo --all | grep is\ not\ active

wirf bei mir folgendes aus:
Driver Status: pciehp is not active
Driver Status: hw_random is not active
Driver Status: pciehp is not active
Dies ist in diesem Beispiel aber wirklich nicht traurig, denn hw_random hat was mit dem Prozessor zu tun und kann bei mir eh nicht geladen werden *g*. pciehp wäre für die Aktivierung der Onboard-Grafik meines Mainboards von Nöten, aber das Teil ist sowieso deaktiviert im BIOS und eine ASUS GeForce3 Ti 200 ziert lieblich den AGP-Slot.

Oder wie wäre es mit:

hwinfo --framebuffer

Und schon werden einem die Hexzahlen ausgespuckt dessen Wert in Dezimal umgerechnet man in die lilo.conf oder menu.lst (bei Kubuntu unter /boot/grub) reinhämmern kann um sich nicht mit einer grausamen Auflösung ä la 800x600 oder so rumschlagen zu müssen wenn die Kiste startet und noch kein X-Windowmanager läuft (KDE, Gnome, Xfce etc.) oder wenn man einen Server aufsetzt ohne X-Window.

Bei mir sieht das folgendermassen aus (/boot/grub/menu.lst - Distri Kubuntu 5.04), wobei bei Euch evtl. je nach Graka und gewünschter Auflösung was anderes einzutragen ist...
title Ubuntu, kernel 2.6.10-5-386
root (hd0,5)
kernel /boot/vmlinuz-2.6.10-5-386 root=/dev/hda6 ro quiet splash vga=792
initrd /boot/initrd.img-2.6.10-5-386
savedefault
boot
Der vga-Eintrag oben ist die von Hex zu Dezimal umgerechnete Zahl, die für die Auflösung verantwortlich ist.
Die Angabe, die ich zur Berechnung dieser Zahl verwendet habe war: 0x318
Die führende 0 und das kleine x kann man sich sparen. Hezadezimal bedeutet, dass die Basis nicht 10, sondern 16 ist. Mögliche Werte sind 0 bis 9 und A bis und mit F. Nach der 9 folgt ja immer die Zahl 10, da aber 10 zwei Stellen braucht nimmt man A an Stelle der 10 und daher B an Stelle der 11 etc. Nun...

318 in Hexadezimal sind also 3 x 16hoch2 + 1 x 16hoch1 + 8 x 16hoch0 = (3 x 256) + (1 x 16) + (8 x 1) = 768 + 16 + 8 = 792

hwinfo ist zwar nur ein kleines Tool, aber es hat mir schon oft geholfen bei der Rechnerkonfiguration. Ich kanns auf jedenfall nur empfehlen

(*räusper* Ich verschweige jetzt einfach mal diskret, dass der Befehl mit dem Framebuffer seit etwa einer Woche einfach nix mehr bei mir anzeigt...vermutlich steht hier irgendeine Datei quer im der Landschaft und wäre zu löschen).

Was auch ab und an helfen kann um herauszufinden was man für Hardware am Laufen hat ist im Verzeichnis proc rumzuwildern. Man wuselt sich dort und in dessen Unterverzeichnissen durch, und wenn man bei einer Datei angelangt ist lässt man sich deren Inhalt mittels dem Befehl cat anzeigen in der konsole. Dann wäre da noch dmesg, lsusb, lspci, lshw, hdparm etc...

Jetzt bin ich aber am Ende mit meinem Latein *gg*
 
Oben