Příkaz lshw pro Linux uvádí všechny hardwarové konfigurace systému.
Některé z běžných informací, které můžeme získat z příkazu lshw, jsou:
- Informace o paměti RAM
- Konfigurace CPU
- Informace o základní desce
- Informace o pevném disku
- Informace o síťových zařízeních
Funkce příkazu Linux lshw
- Schopnost vytvářet výstup v různých formátech, jako je XML, JSON a HTML.
- Výstup můžeme snadno uložit do souboru pomocí operátoru přesměrování.
- Výchozí výstup obsahuje mnoho informací, konkrétní informace o hardwaru můžeme získat pomocí různých možností.
- Podporuje také grafické uživatelské rozhraní, užitečné pouze pro desktopová prostředí. Většinu času spouštíme tyto příkazy na serveru Linux, kde nemáme software GUI.
omezení příkazů lshw
- V tuto chvíli nedetekuje zařízení Firewire.
- Abyste získali správné podrobnosti o hardwaru, musí být spuštěn jako superuživatel, buď root, nebo pomocí sudo.
- Zjistil jsem, že možnost -dump pro uložení výstupu do souboru nefunguje.
Příklady informací o hardwaru Linux
Podívejme se na několik příkladů, jak získat informace o hardwaru linuxu pomocí příkazu lshw.
1. Získání úplných informací o hardwaru Linux
root@localhost:~# sudo lshw
localhost
description: Computer
product: Standard PC (Q35 + ICH9, 2009)
vendor: QEMU
version: pc-q35-3.1
width: 64 bits
capabilities: smbios-2.8 dmi-2.8 vsyscall32
configuration: boot=normal
*-core
description: Motherboard
physical id: 0
*-firmware
description: BIOS
vendor: SeaBIOS
physical id: 0
version: rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org
date: 04/01/2014
size: 96KiB
*-cpu
description: CPU
product: AMD EPYC 7501 32-Core Processor
vendor: Advanced Micro Devices [AMD]
physical id: 400
bus info: cpu@0
version: pc-q35-3.1
slot: CPU 0
size: 2GHz
capacity: 2GHz
width: 64 bits
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp x86-64 rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw perfctr_core ssbd ibpb vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 virt_ssbd arat
configuration: cores=1 enabledcores=1 threads=1
*-memory
description: System Memory
physical id: 1000
size: 2GiB
capacity: 2GiB
capabilities: ecc
configuration: errordetection=multi-bit-ecc
*-bank
description: DIMM RAM
vendor: QEMU
physical id: 0
slot: DIMM 0
size: 2GiB
*-pci
description: Host bridge
product: 82G33/G31/P35/P31 Express DRAM Controller
vendor: Intel Corporation
physical id: 100
bus info: pci@0000:00:00.0
version: 00
width: 32 bits
clock: 33MHz
*-display UNCLAIMED
description: VGA compatible controller
physical id: 1
bus info: pci@0000:00:01.0
version: 02
width: 32 bits
clock: 33MHz
capabilities: vga_controller
configuration: latency=0
resources: memory:fd000000-fdffffff memory:febd0000-febd0fff memory:c0000-dffff
*-scsi:0
description: SCSI storage controller
product: Virtio SCSI
vendor: Red Hat, Inc.
physical id: 2
bus info: pci@0000:00:02.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: scsi msix bus_master cap_list
configuration: driver=virtio-pci latency=0
resources: irq:22 ioport:c000(size=64) memory:febd1000-febd1fff memory:fe000000-fe003fff
*-virtio0 UNCLAIMED
description: Virtual I/O device
physical id: 0
bus info: virtio@0
configuration: driver=virtio_scsi
*-scsi:1
description: SCSI storage controller
product: Virtio SCSI
vendor: Red Hat, Inc.
physical id: 3
bus info: pci@0000:00:03.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: scsi msix bus_master cap_list
configuration: driver=virtio-pci latency=0
resources: irq:23 ioport:c040(size=64) memory:febd2000-febd2fff memory:fe004000-fe007fff
*-virtio1 UNCLAIMED
description: Virtual I/O device
physical id: 0
bus info: virtio@1
configuration: driver=virtio_scsi
*-network
description: Ethernet controller
product: Virtio network device
vendor: Red Hat, Inc.
physical id: 4
bus info: pci@0000:00:04.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: msix bus_master cap_list rom
configuration: driver=virtio-pci latency=0
resources: irq:20 ioport:c0c0(size=32) memory:febd3000-febd3fff memory:fe008000-fe00bfff memory:feb80000-febbffff
*-virtio2
description: Ethernet interface
physical id: 0
bus info: virtio@2
logical name: eth0
serial: f2:3c:92:d4:76:9e
capabilities: ethernet physical
configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 ip=45.79.122.188 link=yes multicast=yes
*-isa
description: ISA bridge
product: 82801IB (ICH9) LPC Interface Controller
vendor: Intel Corporation
physical id: 1f
bus info: pci@0000:00:1f.0
version: 02
width: 32 bits
clock: 33MHz
capabilities: isa
configuration: driver=lpc_ich latency=0
resources: irq:0
*-storage
description: SATA controller
product: 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode]
vendor: Intel Corporation
physical id: 1f.2
bus info: pci@0000:00:1f.2
version: 02
width: 32 bits
clock: 33MHz
capabilities: storage msi ahci_1.0 bus_master cap_list
configuration: driver=ahci latency=0
resources: irq:31 ioport:c0e0(size=32) memory:febd4000-febd4fff
*-serial UNCLAIMED
description: SMBus
product: 82801I (ICH9 Family) SMBus Controller
vendor: Intel Corporation
physical id: 1f.3
bus info: pci@0000:00:1f.3
version: 02
width: 32 bits
clock: 33MHz
configuration: latency=0
resources: ioport:700(size=64)
*-scsi:0
physical id: 1
logical name: scsi0
*-disk
description: EXT4 volume
product: QEMU HARDDISK
vendor: Linux
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
logical name: /
version: 1.0
serial: ccf427b1-b94a-4237-b067-d9e9fc34756f
size: 49GiB
capabilities: 5400rpm journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized
configuration: ansiversion=5 created=2020-02-19 14:27:58 filesystem=ext4 lastmountpoint=/ logicalsectorsize=512 modified=2020-04-28 08:10:42 mount.fstype=ext4 mount.options=rw,relatime,errors=remount-ro,data=ordered mounted=2020-04-28 08:10:43 sectorsize=512 state=mounted
*-scsi:1
physical id: 2
logical name: scsi1
*-disk
description: Linux swap volume
product: QEMU HARDDISK
vendor: QEMU
physical id: 0.1.2
bus info: scsi@1:0.1.2
logical name: /dev/sdb
version: 1
serial: 179fdb40-6f5a-4973-99fd-2c0dfee57907
size: 512MiB
capacity: 512MiB
capabilities: 5400rpm swap initialized
configuration: ansiversion=5 filesystem=swap logicalsectorsize=512 pagesize=4096 sectorsize=512
root@localhost:~#
Jak vidíte, je to hodně informací, pokud chcete rychlé informace o hardwaru, spusťte je pomocí volby -short.
root@localhost:~# sudo lshw -short
H/W path Device Class Description
=============================================
system Standard PC (Q35 + ICH9, 2009)
/0 bus Motherboard
/0/0 memory 96KiB BIOS
/0/400 processor AMD EPYC 7501 32-Core Processor
/0/1000 memory 2GiB System Memory
/0/1000/0 memory 2GiB DIMM RAM
/0/100 bridge 82G33/G31/P35/P31 Express DRAM Controller
/0/100/1 display VGA compatible controller
/0/100/2 storage Virtio SCSI
/0/100/2/0 generic Virtual I/O device
/0/100/3 storage Virtio SCSI
/0/100/3/0 generic Virtual I/O device
/0/100/4 network Virtio network device
/0/100/4/0 eth0 network Ethernet interface
/0/100/1f bridge 82801IB (ICH9) LPC Interface Controller
/0/100/1f.2 storage 82801IR/IO/IH (ICH9R/DO/DH) 6 port SATA Controller [AHCI mode]
/0/100/1f.3 bus 82801I (ICH9 Family) SMBus Controller
/0/1 scsi0 storage
/0/1/0.0.0 /dev/sda volume 49GiB QEMU HARDDISK
/0/2 scsi1 storage
/0/2/0.1.2 /dev/sdb volume 512MiB QEMU HARDDISK
root@localhost:~#
2. Získání informací o procesoru Linux
Můžeme spustit lshw -C class_name získat informace o konkrétní hardwarové třídě. Podívejme se, jak získat informace o CPU.
root@localhost:~# sudo lshw -C cpu
*-cpu
description: CPU
product: AMD EPYC 7501 32-Core Processor
vendor: Advanced Micro Devices [AMD]
physical id: 400
bus info: cpu@0
version: pc-q35-3.1
slot: CPU 0
size: 2GHz
capacity: 2GHz
width: 64 bits
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp x86-64 rep_good nopl cpuid extd_apicid tsc_known_freq pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cmp_legacy cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw perfctr_core ssbd ibpb vmmcall fsgsbase tsc_adjust bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 virt_ssbd arat
configuration: cores=1 enabledcores=1 threads=1
root@localhost:~#
Pokud máte více CPU, pak příkaz poskytne informace o všech CPU.
lshw -C processor příkaz také vytiskne informace o CPU.
Pokud si nejste jisti názvem třídy, podívejte se na něj v krátkém výstupu lshw.
3. Získání informací o paměti Linux
root@localhost:~# sudo lshw -C memory
*-firmware
description: BIOS
vendor: SeaBIOS
physical id: 0
version: rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org
date: 04/01/2014
size: 96KiB
*-memory
description: System Memory
physical id: 1000
size: 2GiB
capacity: 2GiB
capabilities: ecc
configuration: errordetection=multi-bit-ecc
*-bank
description: DIMM RAM
vendor: QEMU
physical id: 0
slot: DIMM 0
size: 2GiB
root@localhost:~#
4. Získání informací o linuxovém pevném disku
root@localhost:~# sudo lshw -C storage
5. Získání informací o základní desce Linux
root@localhost:~# sudo lshw -C bus
*-core
description: Motherboard
physical id: 0
*-serial UNCLAIMED
description: SMBus
product: 82801I (ICH9 Family) SMBus Controller
vendor: Intel Corporation
physical id: 1f.3
bus info: pci@0000:00:1f.3
version: 02
width: 32 bits
clock: 33MHz
configuration: latency=0
resources: ioport:700(size=64)
root@localhost:~#
6. Získání informací o síťových rozhraních Linux
root@localhost:~# sudo lshw -C network
*-network
description: Ethernet controller
product: Virtio network device
vendor: Red Hat, Inc.
physical id: 4
bus info: pci@0000:00:04.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: msix bus_master cap_list rom
configuration: driver=virtio-pci latency=0
resources: irq:20 ioport:c0c0(size=32) memory:febd3000-febd3fff memory:fe008000-fe00bfff memory:feb80000-febbffff
*-virtio2
description: Ethernet interface
physical id: 0
bus info: virtio@2
logical name: eth0
serial: f2:3c:92:d4:76:9e
capabilities: ethernet physical
configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 ip=45.79.122.188 link=yes multicast=yes
root@localhost:~#
7. Informace o hardwaru Linuxu ve formátech HTML, XML a JSON
Výchozí výstup příkazu lshw je v prostém textu. Zadáním odpovídajících možností můžeme získat výstup ve formátech HTML, XML a JSON.
XML:
root@localhost:~# sudo lshw -C bus -xml
<?xml version="1.0" standalone="yes" ?>
<!-- generated by lshw-B.02.18 -->
<!-- GCC 7.3.0 -->
<!-- Linux 4.15.0-88-generic #88-Ubuntu SMP Tue Feb 11 20:11:34 UTC 2020 x86_64 -->
<!-- GNU libc 2 (glibc 2.27) -->
<list>
<node id="core" claimed="true" class="bus" handle="">
<description>Motherboard</description>
<physid>0</physid>
<node id="serial" class="bus" handle="PCI:0000:00:1f.3">
<description>SMBus</description>
<product>82801I (ICH9 Family) SMBus Controller</product>
<vendor>Intel Corporation</vendor>
<physid>1f.3</physid>
<businfo>pci@0000:00:1f.3</businfo>
<version>02</version>
<width units="bits">32</width>
<clock units="Hz">33000000</clock>
<configuration>
<setting id="latency" value="0" />
</configuration>
<resources>
<resource type="ioport" value="700(size=64)" />
</resources>
</node>
</node>
</list>
root@localhost:~#
JSON:
root@localhost:~# sudo lshw -C memory -json
{
"id" : "firmware",
"class" : "memory",
"claimed" : true,
"description" : "BIOS",
"vendor" : "SeaBIOS",
"physid" : "0",
"version" : "rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org",
"date" : "04/01/2014",
"units" : "bytes",
"size" : 98304
},
{
"id" : "memory",
"class" : "memory",
"claimed" : true,
"handle" : "DMI:1000",
"description" : "System Memory",
"physid" : "1000",
"units" : "bytes",
"size" : 2147483648,
"capacity" : 2147483648,
"configuration" : {
"errordetection" : "multi-bit-ecc"
},
"capabilities" : {
"ecc" : "Multi-bit error-correcting code (ECC)"
},
"children" : [
{
"id" : "bank",
"class" : "memory",
"claimed" : true,
"handle" : "DMI:1100",
"description" : "DIMM RAM",
"vendor" : "QEMU",
"physid" : "0",
"slot" : "DIMM 0",
"units" : "bytes",
"size" : 2147483648
}
]
},
root@localhost:~#
HTML:
root@localhost:~# sudo lshw -C memory -html
8. Ukládání informací o hardwaru Linuxu do souboru
Zkoušel jsem použít volbu -dump s příkazem lshw, ale nefungovalo to pro mě. Vždy však můžeme použít operátor přesměrování (>) k uložení do nového souboru.
# sudo lshw -html > hardware_info.html
Závěr
Příkaz lshw pro Linux je jednoduchý nástroj pro získání úplných informací o hardwaru. Různé možnosti, jak získat informace o konkrétním hardwaru a v různých formátech, jako je HTML a JSON, jsou také velmi užitečné při sdílení podrobností s ostatními.
Reference :HardwareLiSter