Idioma
Categoria
Pesquisar

Consultar informações de hardware no Linux com lshw

O lshw é um comando usado no terminal Linux para gerar relatórios detalhados sobre o hardware. Consulte memória, processador, HD, SSD, rede, pci, usb, scsi, sata, tudo em um só comando

Em Terminal Por Rudi Drusian Lange
Publicado em
Última atualização

Com o comando lshw é possível consultar informações sobre a configuração da memória, versão de firmware, placa mãe, versão do processador e velocidade, configurações de cache, velocidade de barramento e muitas outras.

O comando busca informações nos arquivos do sistema operacional incluindo mas não se restringindo aos disponíveis no diretório /proc.

Instalação

No Slackware é possível instalar a partir do slackbuilds ou ainda utilizando o utilitário de instalação sbpkg. Abaixo será demonstrada a instalação via sbopkg:

# Shell

// Slackware
sbopkg -i lshw

// ubuntu, debian
sudo apt-get install lshw

// fedora, centos (epel)
sudo yum install lshw

O comando lshw precisa ser executado com permissões de administrador, use o usuário root ou o comando sudo. O comando classifica os componentes de hardware em classes: Processor, memory, display, network, storage, bridge, multimedia e outras.

Exibindo todas as informações:

Executando o comando lshw sem nenhuma opção irá retornar todas as informações de todo o hardware detectado. Serão geradas muitas informações com diversos detalhes técnicos.

# Shell

lshw

homer                       
    description: Notebook
    product: HP Pavilion Sleekbook 14 PC (C1C39LA#AC4)
    vendor: Hewlett-Packard
    version: 088C100000355900000310100
    serial: BRG301F37S
    width: 4294967295 bits
    capabilities: smbios-2.7 dmi-2.7 smp vsyscall32
    configuration: boot=normal chassis=notebook family=103C_5335KV G=N L=CON B=HP S=PAV X=Null sku=C1C39LA#AC4 uuid=42524733-3031-4633-3753-38EAA7D233FB
  *-core
       description: Motherboard
       product: 18FA
       vendor: Hewlett-Packard
       physical id: 0
       version: 82.27
       serial: PDJWD0AEP3U0AG
       slot: Type2 - Board Chassis Location
     *-memory
          description: System Memory
          physical id: 0
          slot: System board or motherboard
          size: 8GiB

... INTERROMPIDO... 

Exibindo informações resumidas

Executando com a opção -short irá retornar as informações resumidas de hardware sendo possível ter uma ideia rápida sobre o perfil de hardware.

# Shell

lshw -short

H/W path       Device  Class          Description
=================================================
                       system         HP Pavilion Sleekbook 14 PC (C1C39LA#AC4)
/0                     bus            18FA
/0/0                   memory         8GiB System Memory
/0/0/0                 memory         4GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/0/1                 memory         4GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/9                   memory         128KiB BIOS
/0/20                  processor      Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
/0/20/22               memory         32KiB L1 cache
/0/20/23               memory         256KiB L2 cache
/0/20/24               memory         3MiB L3 cache
/0/21                  memory         32KiB L1 cache
/0/100                 bridge         3rd Gen Core processor DRAM Controller
/0/100/2               display        3rd Gen Core processor Graphics Controller
/0/100/14              bus            7 Series/C210 Series Chipset Family USB xHCI Host Controller
/0/100/16              communication  7 Series/C210 Series Chipset Family MEI Controller #1
/0/100/1a              bus            7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2
/0/100/1b              multimedia     7 Series/C210 Series Chipset Family High Definition Audio Controller
/0/100/1c              bridge         7 Series/C210 Series Chipset Family PCI Express Root Port 1
/0/100/1c/0    wlan0   network        RT3290 Wireless 802.11n 1T/1R PCIe
/0/100/1c/0.1          generic        RT3290 Bluetooth
/0/100/1c.1            bridge         7 Series/C210 Series Chipset Family PCI Express Root Port 2
/0/100/1c.1/0  eth0    network        RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller
/0/100/1c.2            bridge         7 Series/C210 Series Chipset Family PCI Express Root Port 3
/0/100/1c.2/0          generic        RTS5229 PCI Express Card Reader
/0/100/1d              bus            7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1
/0/100/1f              bridge         HM77 Express Chipset LPC Controller
/0/100/1f.2            storage        82801 Mobile SATA Controller [RAID mode]
/0/100/1f.3            bus            7 Series/C210 Series Chipset Family SMBus Controller
/1                     power          VK04037

O resultado acima é fácil de interpretar, ele revela que este hardware pertence a um HP Pavilion Sleekbook, com 8 GB de memória divididos em dois slots cada um com 4 GB. O processador é um Intel com 1.80GHz, possui um cartão wireless, um bluetooh, uma placa de rede, algumas portas USB etc.

A terceira coluna é o nome da classe e você pode solicitar informações de um hardware específico utilizando o parâmetro -class seguido do nome da classe.

Memória

Para mostrar informações sobre a memória utilize a classe memory.

# Shell

lshw -short -class memory

H/W path       Device  Class          Description
=================================================
/0/0                   memory         8GiB System Memory
/0/0/0                 memory         4GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/0/1                 memory         4GiB SODIMM DDR3 Synchronous 1600 MHz (0.6 ns)
/0/9                   memory         128KiB BIOS
/0/20/22               memory         32KiB L1 cache
/0/20/23               memory         256KiB L2 cache
/0/20/24               memory         3MiB L3 cache
/0/21                  memory         32KiB L1 cache

Processador

A classe processor irá retornar informações sobre a CPU. Neste caso é melhor não utilizar o parâmetro -short para conseguir mais informações.

# Shell

lshw -class processor

  *-cpu                     
       description: CPU
       product: Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
       vendor: Intel Corp.
       physical id: 20
       bus info: cpu@0
       version: Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
       serial: To Be Filled By O.E.M.
       slot: U3E1
       size: 1776MHz
       capacity: 4GHz
       width: 64 bits
       clock: 100MHz
       capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c lahf_lm ida arat epb pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt cpufreq
       configuration: cores=2 enabledcores=2 threads=4

O comando lshw não retorna o número de núcleos ou unidades de processamento disponíveis, neste caso são 4 unidades de processamento e 2 núcleos. O comando lscpu retorna informações complementares sobre o processador.

Veja também: Comandos para consultar informações de hardware no linux

Unidades de disco

Exibe as unidades de disco utilizando a classe disc.

# Shell

lshw -short -class disk

H/W path        Device      Class      Description
==================================================
/0/0/0.0.0      /dev/sda    disk       500GB WDC WD5003ABYX-1
/0/1/0.0.0      /dev/cdrom  disk       DVD-ROM SN-108BB

Para mostrar informações sobre as partições e controladoras especifique as classes storage e volume juntamente com a classe disc. Assim você terá uma melhor visão sobre as unidades de armazenamento.

# Shell

lshw -short -class disk -class storage -class volume

H/W path        Device      Class      Description
==================================================
/0/100/1f.2                 storage    6 Series/C200 Series Chipset Family SATA AHCI Controller
/0/0            scsi0       storage    
/0/0/0.0.0      /dev/sda    disk       500GB WDC WD5003ABYX-1
/0/0/0.0.0/1    /dev/sda1   volume     39MiB Windows FAT volume
/0/0/0.0.0/2    /dev/sda2   volume     2GiB Windows FAT volume
/0/0/0.0.0/3    /dev/sda3   volume     94MiB Linux filesystem partition
/0/0/0.0.0/4    /dev/sda4   volume     463GiB Extended partition
/0/0/0.0.0/4/5  /dev/sda5   volume     7812MiB Linux swap volume
/0/0/0.0.0/4/6  /dev/sda6   volume     9766MiB Linux filesystem partition
/0/0/0.0.0/4/7  /dev/sda7   volume     9766MiB Linux filesystem partition
/0/0/0.0.0/4/8  /dev/sda8   volume     19GiB Linux filesystem partition
/0/0/0.0.0/4/9  /dev/sda9   volume     47GiB Linux filesystem partition
/0/0/0.0.0/4/a  /dev/sda10  volume     19GiB Linux filesystem partition
/0/0/0.0.0/4/b  /dev/sda11  volume     19GiB Linux filesystem partition
/0/0/0.0.0/4/c  /dev/sda12  volume     264GiB Linux filesystem partition
/0/0/0.0.0/4/d  /dev/sda13  volume     67GiB Linux filesystem partition
/0/1            scsi4       storage    
/0/1/0.0.0      /dev/cdrom  disk       DVD-ROM SN-108BB

Adaptadores de rede

Utilize a classe network para exibir informações sobre os adaptadores de rede. Omita o parâmetro -short para obter mais detalhes.

# Shell

lshw -class network

*-network
	description: Ethernet interface
	product: RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller
    vendor: Realtek Semiconductor Co., Ltd.
    physical id: 0
    bus info: pci@0000:02:00.0
    logical name: eth0
    version: 05
    serial: 38:ea:a7:d2:33:fb
    size: 100Mbit/s
    capacity: 100Mbit/s
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
    configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl_nic/rtl8105e-1.fw ip=192.168.88.10 latency=0 link=yes multicast=yes port=MII speed=100Mbit/s 
    resources: irq:29 ioport:3000(size=256) memory:52404000-52404fff memory:52400000-52403fff

O valor do campo serial é o MAC Address, o campo autonegociation=on indica que a auto negociação esta habilitada, speed=100Mbit/s mostra a velocidade de operação corrente.

Detalhes do endereçamento

Com a classe businfo é possível se consultar detalhes de endereçamento de dispositivos pci, usb, scsi e ide.

# Shell

lshw -businfo

Bus info          Device      Class      Description
====================================================
                              system     PowerEdge R210 II
                              bus        0JP7TR
cpu@0                         processor  Intel(R) Xeon(R) CPU E3-1220 V2 @ 3.10GHz
                              memory     32KiB L1 cache
                              memory     1MiB L2 cache
                              memory     8MiB L3 cache
                              memory     32KiB L1 cache
                              memory     64KiB BIOS
                              memory     4GiB System Memory
                              memory     DIMM DDR3 [empty]
                              memory     4GiB DIMM DDR3 Synchronous Unbuffered (Unregistered) 1333 MHz (0.8 ns)
                              memory     DIMM DDR3 [empty]
                              memory     DIMM DDR3 [empty]
pci@0000:00:00.0              bridge     Xeon E3-1200 v2/Ivy Bridge DRAM Controller
pci@0000:00:1a.0              bus        6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2
pci@0000:00:1c.0              bridge     6 Series/C200 Series Chipset Family PCI Express Root Port 1
pci@0000:01:00.0  eth0        network    NetXtreme II BCM5716 Gigabit Ethernet
pci@0000:01:00.1  eth1        network    NetXtreme II BCM5716 Gigabit Ethernet
pci@0000:00:1d.0              bus        6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1
pci@0000:00:1e.0              bridge     82801 PCI Bridge
pci@0000:02:03.0              display    MGA G200eW WPCM450
pci@0000:00:1f.0              bridge     C202 Chipset Family LPC Controller
pci@0000:00:1f.2              storage    6 Series/C200 Series Chipset Family SATA AHCI Controller
pci@0000:00:1f.3              bus        6 Series/C200 Series Chipset Family SMBus Controller
                  scsi0       storage    
scsi@0:0.0.0      /dev/sda    disk       500GB WDC WD5003ABYX-1
scsi@0:0.0.0,1    /dev/sda1   volume     39MiB Windows FAT volume
scsi@0:0.0.0,2    /dev/sda2   volume     2GiB Windows FAT volume
scsi@0:0.0.0,3    /dev/sda3   volume     94MiB Linux filesystem partition
scsi@0:0.0.0,4    /dev/sda4   volume     463GiB Extended partition
                  /dev/sda5   volume     7812MiB Linux swap volume
                  /dev/sda6   volume     9766MiB Linux filesystem partition
                  /dev/sda7   volume     9766MiB Linux filesystem partition
                  /dev/sda8   volume     19GiB Linux filesystem partition
                  /dev/sda9   volume     47GiB Linux filesystem partition
                  /dev/sda10  volume     19GiB Linux filesystem partition
                  /dev/sda11  volume     19GiB Linux filesystem partition
                  /dev/sda12  volume     264GiB Linux filesystem partition
                  /dev/sda13  volume     67GiB Linux filesystem partition
                  scsi4       storage    
scsi@4:0.0.0      /dev/cdrom  disk       DVD-ROM SN-108BB
                  eth1.10     network    Ethernet interface

O resultado é parecido com a resposta do comando utilizando apenas a opção -short mas com a primeira coluna exibindo a classe businfo.

Relatórios em html/xml/json

O lshw é capaz de fornecer relatórios sobre o hardware em html, xml e json.

# Shell

// HTML
lshw -html > hardware.html

// XML
lshw -xml > hardware.xml

// JSON
lshw -json > hardware.json

Resumo

Os exemplos acima cobrem muito do que o lshw pode fazer, para mais informações consulte o manual(man pages).

Referência