Informazioni hardware con Linux

Mattepuffo's logo
Informazioni hardware con Linux

Informazioni hardware con Linux

Per ottenere informazioni sul nostro hardware possiam usare tranquillamente il terminale, senza usare interfacce grafiche (anche se a volte sono sicuramente comode).
I classici comandi che si utilizzano sono lsusb (che mostra tutte le periferiche usb), lspci (che mostra tutte le periferiche pci) e lsmod (che mostra tutti i moduli attivi).
$ lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GME Express Memory Controller Hub (rev 03)
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 (rev 02)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)
00:1f.2 SATA controller: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA AHCI Controller (rev 02)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)
01:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
02:00.0 Ethernet controller: Attansic Technology Corp. Atheros AR8132 / L1c Gigabit Ethernet Adapter (rev c0)
Come vedete l'output è parecchio corposo.
Possiamo usare la pipe | per filtrare il risultato:
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
Con | non facciamo altro che reindirizzare l'output di lspci a grep che serve per filtrare il risultato, in questo caso per identificare le periferiche VGA (hardware video).
Altro esempio:
$ lsmod | grep bluetooth
bluetooth              44621  9 rfcomm,sco,bnep,l2cap,btusb
rfkill                 12320  4 eeepc_laptop,bluetooth,cfg802

/sys e /proc
Sysfs e procfs sono filesystems che hanno funzioni simili: ottenere informazioni e settare diversi parametri senza altri programmi.
Queste info si possono ottenere guardando nelle directory /proc e /sys.

$ cat /proc/cpuinfo
processor    : 0
vendor_id    : GenuineIntel
cpu family    : 6
model        : 28
model name    : Intel(R) Atom(TM) CPU N280   @ 1.66GHz
stepping    : 2
cpu MHz        : 1664.816
cache size    : 512 KB
physical id    : 0
siblings    : 2
core id        : 0
cpu cores    : 1
apicid        : 0
initial apicid    : 0
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm
bogomips    : 3330.36
clflush size    : 64
cache_alignment    : 64
address sizes    : 32 bits physical, 32 bits virtual
power management:

processor    : 1
vendor_id    : GenuineIntel
cpu family    : 6
model        : 28
model name    : Intel(R) Atom(TM) CPU N280   @ 1.66GHz
stepping    : 2
cpu MHz        : 1664.816
cache size    : 512 KB
physical id    : 0
siblings    : 2
core id        : 0
cpu cores    : 1
apicid        : 1
initial apicid    : 1
fdiv_bug    : no
hlt_bug        : no
f00f_bug    : no
coma_bug    : no
fpu        : yes
fpu_exception    : yes
cpuid level    : 10
wp        : yes
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm
bogomips    : 3330.38
clflush size    : 64
cache_alignment    : 64
address sizes    : 32 bits physical, 32 bits virtual
power management:

Questo comando ci mostra tutte le info sulla cpu prendendole da /proc.
Per avere le info sul kernel:

$ cat /proc/version
Linux version 2.6.32-ARCH (tobias@T-POWA-LX) (gcc version 4.4.3 (GCC) ) #1 SMP PREEMPT Tue Feb 9 14:46:08 UTC 2010

Che in questo caso equivale al comando uname-a.
Potete creare dei vostri script per ottenere le informazioni che volete sulle componenti che volete.
Ad esempio questo (che però non mi ha funzionato su tutte le distro):

for in in $(ls -ld /sys/block/?d? 2>/dev/null); do
device="${i##/sys/block/}"
DEVICELIST[$((count++))]="$device"
DEVICELIST[$((count++))]="$(cat $i/device/vendor 2>/dev/null) $(cat $i/device/model 2>/dev/null)) \
($(awk '{print ($1 / 2048) "MB"}' $i/size 2>/dev/null))"
done
dialog --menu "Available Devices:" 10 50 7 "${DEVICELIST[@]}" 2> choice.tmp

Su archlinux mi compare il menu ma senza voci.
Evidentemente non tutte le distro si comportano allo stesso modo.

Infine per chi volesse usare delle interfacce grafiche propongo due programmi: hardinfo e lshw-gtk.
Il secondo è una gui per lshw che non mostra tutto l'hardware nel terminale.
Lanciate i programmi da root per avere la totalità delle info


Condividi

Commentami!