lpic/101/001_comandi_ispezione_hw.md
2024-10-19 20:52:19 +02:00

5.0 KiB

Comandi di ispezione delle periferiche

I comandi lspic e lsusb elencano tutti i dispositivi PCI e USB identificati dal SO. Ogni parte hardware richiede un componente software per controllare il dispositivo corrispondente, chiamato kernel modules. I moduli el kernel LInux relativi ai dispositivi hardware sono anche chiamati drivers.

lscpi

 > lspci
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Root Complex
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 IOMMU
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge
00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 PCIe GPP Bridge [6:0]
00:01.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 PCIe GPP Bridge [6:0]

I numeri esadecimali all'inizio di ogni riga sono gli indirizzi univoci del corrispondente dispositivo. Per ottenere maggiori dettagli su un dispositivo:

lspci -s 04:00.0 -v

04:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
	Subsystem: Intel Corporation Wi-Fi 6 AX200NGW
	Flags: bus master, fast devsel, latency 0, IRQ 33, IOMMU group 0
	Memory at fcb00000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [c8] Power Management version 3
	Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
	Capabilities: [40] Express Endpoint, IntMsgNum 0
	Capabilities: [80] MSI-X: Enable+ Count=16 Masked-
	Capabilities: [100] Advanced Error Reporting
	Capabilities: [14c] Latency Tolerance Reporting
	Capabilities: [154] L1 PM Substates
	Kernel driver in use: iwlwifi

Il modulo del kernel puo' essere identificato nella riga Kernel driver in use:.

Un modo rapido per verificare quale modulo del kernel e' in uso per il dispositivo specificato:

lspci -s 04:00.0 -k

04:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
	Subsystem: Intel Corporation Wi-Fi 6 AX200NGW
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

lsusb

lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 003: ID 8087:0029 Intel Corp. AX200 Bluetooth
Bus 001 Device 004: ID 3434:0381 Keychron Keychron V8
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Per maggiori dettagli su un dispositivo specifico:

lsusb -vd 3434:0381

lsmod

Mostra un elenco di tutti i moduli attualmente caricati:

lsmod

Module                  Size  Used by
nft_chain_nat          12288  3
xt_MASQUERADE          16384  1
nf_nat                 65536  2 nft_chain_nat,xt_MASQUERADE
bridge                389120  0
stp                    12288  1 bridge
llc                    16384  2 bridge,stp

dove Size indica la RAM occupata da modulo, byte. Mentre Used by indica i moduli dipendenti dal modulo colonna Module.

modprobe

Comando usato per caricare o scaricare i moduli del kernel.

modprobe -r module

# se module non sia usato da un processo in esecuzione sul sistema

lscpu e lshw

Mostra informazioni riguardo alla cpu e all'hardware del sistema.

modinfo

Mostra una descrizione del modulo specificato: modinfo nvme_core. Per la lista di tutti i parametri disponibili: modinfo -p nvme_core.

I parametri personalizzati possono essere resi persistenti includendoli nel file /etc/modprobe.conf/ o in file con estensione .conf nella directory /etc/modprobe.d/.

Per impedire il caricamento di un modulo inserire la riga blacklist module nel file /etc/modprobe.d/blacklist.conf.

File informativi e File dei dispositivi

I comandi precedenti sono dei front-end per leggere le informazioni hardware memorizzate dal SO. Tali informazioni sono presenti in file conservati nelle directory /proc e /sys.

La directory /proc contiene informazioni relative ai processi in esecuzione e alle risorse hardware. Alcuni dei file importanti:

  • /proc/cpuinfo
  • /proc/meminfo

/sys contiene informazioni relative ai dispositivi hardware.

Ogni file all'interno della directory /dev/, invece, e' associato a un dispositivo di sistema, in particolare a un dispositivo di archiviazione. I dispositivi rimovibili sono gestiti da udev, che crea i dispositivi corrispondenti in /dev/. Quando vengono rilevati dei nuovi dispositivi, udev cerca una regola corrispondente nella cartella /etc/udev/rules.d/.

Dispositivi di archiviazione

Generalmente chiamati block device, in quanto i dati vengono letti in blocchi di dati. Ogni dispositivo a blocchi e' identificato da un file in /dev/. Dalla versione 2.6 del kernel, tutti i dispositivi, indipendentemente dal tipo di hardware, sono identificati come dispositivi SCSI, tramite la sigla sd. Le partizioni sono elencate numericamente. L'eccezione sono le schede SD e i dispositivi nvme.