Sådan installeres Lshw på Linux og bruger den til at finde hardwareoplysninger

Sadan Installeres Lshw Pa Linux Og Bruger Den Til At Finde Hardwareoplysninger



Lshw er et Linux-kommandolinjeværktøj til at finde information om den installerede hardware på din computer/server. Lshw kan rapportere bundkort/bundkort, CPU, hukommelse, disk, PCIE, USB og andre hardwareoplysninger.

Lshw er tilgængelig på alle Linux-distributioner derude. Så du kan bruge det samme værktøj til at finde de nødvendige hardwareoplysninger på hver Linux-distribution.







I denne artikel vil vi vise dig, hvordan du installerer lshw på populære Linux-distributioner og bruger den til at finde hardwareoplysningerne.



Emne for indhold:

Installation af Lshw på Ubuntu/Debian/Linux Mint/Kali Linux

Lshw er tilgængelig i det officielle pakkelager for Ubuntu/Debian/Linux Mint/Kali Linux. Så du kan nemt installere det på din computer/server.



Først skal du opdatere APT-pakkelagerets cache med følgende kommando:





$ sudo passende opdatering



For at installere lshw skal du køre følgende kommando:

$ sudo passende installere -og etc

Lshw skal være installeret på dit Ubuntu/Debian/Linux Mint/Kali Linux-system.

Installation af Lshw på Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream

Lshw er tilgængelig i det officielle pakkelager af Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Så du kan nemt installere det på din computer/server.

Først skal du opdatere DNF-pakkelagerets cache med følgende kommando:

$ sudo dnf makecache

For at installere lshw skal du køre følgende kommando:

$ sudo dnf installere etc

For at bekræfte installationen skal du trykke på 'Y' og derefter trykke på .

Lshw skal være installeret på dit Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream-system.

Liste over den tilgængelige hardware med Lshw

Du kan liste al tilgængelig hardware på din computer/server med lshw som følger:

$ sudo etc -kort

Al tilgængelig hardware på din computer/server bør være opført i et pænt format.

Du finder følgende information her:

  1. H/W sti : Dette er den fysiske sti til den hardware, der er installeret på din computer/server. Her er /0 bundkortet, /0/100 er processoren (forbundet til bundkortet), /0/100/ er den hardware, der er forbundet til processorbanerne, og så videre.
  2. Enhed : Dette er det kerne-tildelte navn/identifikator for hardwaren. Det mest almindelige eksempel er enhedsnavnet/identifikatoren for netværksenhederne såsom enp38s0, enp39s0 osv.
  3. Klasse : Al hardware på din computer/server tilhører en bestemt gruppe/klasse. For eksempel er netværksenhederne grupperet i netværksklassen, lagerenhederne er grupperet i lagerklassen og så videre. Hardwareklassen kan bruges til filtrer outputtet af lshw .
  4. Beskrivelse : Det er en kort beskrivelse af den respektive hardware.

Hvis du vil se businformationen for hardwaren i stedet for hardwarestien (H/W-sti), skal du køre lshw-kommandoen som følger:

$ sudo etc -businfo

Som du kan se, viser den første kolonne nu hardwarens businformation i stedet for hardwarestien.

Businformationen for forskellig hardware vil vise informationen i forskellige formater:

  • CPU : CPU'ernes bus-id vil være i cpu@ , For eksempel har CPU cpu@0 (AMD Ryzen 9 3900X-processor i mit tilfælde) ID 0. På de fleste stationære computere og bærbare computere, du vil kun have én processor og én CPU-indgang, som er 'cpu@0'.
  • PCIE-enheder: Bus-id'et for PCIE-enhederne vil være i pci@: :. -nummeret kaldes også -nummer. For eksempel har PCIE-enheden pci@0000:26:00.0 (I211 gigabit netværksenhed i vores tilfælde) domænet 0000, bus 26, slot/enhed 00 og funktion 0. ID-numrene er hexadecimale og polstret med nuller.
  • SCSI enheder : Bus-id'et for SCSI-lagerenheder vil være i scsi@:. ., For eksempel er scsi@1:0.0.0 en SCSI/SATA-lagerenhed, der har controller 1, mål 0, id 0, lun 0 og ingen partitioner. Hvis SCSI/SATA-lagerenheden har partitioner, vil bus-id'et være scsi@1:0.0.0,1 for den første partition, scsi@1:0.0.0,2 for den anden partition, scsi@1:0.0.0 ,3 for den tredje partition og så videre.
  • USB-enheder : Bus-id'et for USB-lagerenheder vil være i usb@:. For eksempel er usb@3:6.3 en USB-enhed, der har controller 3, slot 6 og id 3. usb@3:1 er en USB-enhed, der har controller 3 og slot 1.

Filtrering af Lshw-output med hardwareklasse

Lshw tildeler en klasse til hver hardwareenhed. Du kan filtrere outputtet af 'lshw'-kommandoen til kun at inkludere visse typer hardware, der bruger disse klassenavne.

De tilgængelige lshw-hardwareklasser er:

  • system : Systemets bundkort og PnP-enheder.
  • bro : De interne busenheder som PCIE, værtsbro osv.
  • hukommelse : Hukommelsesenhederne som BIOS, RAM, ROM, CPU caches, firmware osv.
  • processor : Processorerne på din computer og SCSI RAID-controllere.
  • adresse : Hukommelsesadresserne for udvidelses-ROM og video.
  • opbevaring : SCSI- og IDE-controlleren.
  • disk : De tilfældige lagringsenheder som HDD, SSD, NVME SSD, CD-ROM, DVD osv.
  • bind : Partitionerne på din disk/lagerenheder.
  • tape : Lagerenheder med sekventiel adgang som DAT, DDS osv.
  • bus : Enheden forbinder bus som USB, SCSI, FireWire osv.
  • netværk : Netværksgrænseflader som Ethernet, WiFi osv.
  • Skærm : Displayenhederne som din GPU.
  • input : Inputenhederne som dine tastaturer, mus, HDMI/DP-porte, HD-lydporte, tænd/sluk-knap, pc-højttaler osv.
  • printer : Udskrivningsenhederne, dvs. printeren.
  • multimedie : Lyd- og videoenhederne som videokort (GPU), lydkort, tv-outputkort osv.
  • meddelelse : Kommunikationsenhederne som Bluetooth.
  • strøm : Energikilderne som strømforsyning (PSU), internt batteri osv.
  • generisk : De enheder, der ikke kan klassificeres.

Ikke alle computere/servere vil have alle typer hardware installeret. Så for at finde de klasser af hardware, som din computer/server har, anbefaler vi dig at køre kommandoen 'lshw' med '-short' eller '-businfo'.

$ sudo etc -kort

$ sudo etc -businfo

For at filtrere outputtet af 'lshw'-kommandoen til kun at vise de specifikke typer hardware (dvs. lagerenheder), skal du bruge '-class'-indstillingen som følger:

$ sudo etc -businfo -klasse disk

eller

$ sudo etc -kort -klasse disk

Som du kan se, listede lshw kun de lagerenheder (2x 500 GB Samsung 860 EVO SATA SSD'er), der er installeret på vores computer.

Du kan bruge '-class'-indstillingen flere gange til at vise flere typer hardware på én gang med kommandoen 'lshw'.

For for eksempel at vise lagerenhederne såvel som diskpartitionerne ved hjælp af kommandoen 'lshw', skal du bruge '-class'-indstillingen to gange som følger:

$ sudo etc -businfo -klasse disk -klasse bind

eller

$ sudo etc -kort -klasse disk -klasse bind -klasse

Som du kan se, listede lshw lagerenhederne såvel som partitionerne på disse lagerenheder.

Find den detaljerede hardwareinformation med Lshw

For at finde de detaljerede oplysninger om specifikke typer hardware (dvs. netværk), skal du køre lshw med '-class'-indstillingen som følger:

$ sudo etc -klasse netværk

Som du kan se, udskrives en meget detaljeret information om alle netværksenheder, der er installeret på vores computer.

Skjuler følsomme oplysninger fra Lshw-outputtet

Som standard udskriver kommandoen 'lshw' en følsom information (dvs. MAC-adressen på netværksenheder), mens den viser de detaljerede hardwareoplysninger. Hvis du har brug for at dele hardwareoplysningerne med andre mennesker på internettet for at få hjælp til f.eks. at installere en driver, vil du måske skjule disse følsomme oplysninger fra lshw-outputtet.

For at skjule de følsomme oplysninger fra de detaljerede hardwareoplysninger, kan du bruge '-sanitize'-indstillingen for 'lshw'-kommandoen som følger:

$ sudo etc -sanere -klasse netværk

Som du kan se, fjernes MAC-adresserne og IP-adresserne fra netværksenhederne.

Viser de numeriske id'er for PCIe- og USB-enheder

Som standard vises numeriske ID'er ikke for PCIe- og USB-enhederne i outputtet af 'lshw'-kommandoen.

For at vise de numeriske ID'er for PCIe- og USB-enhederne i outputtet af 'lshw'-kommandoen, skal du bruge '-numeric'-indstillingen som følger:

$ sudo etc -numerisk -klasse netværk

eller

$ sudo etc -numerisk -klasse bus

Som du kan se, vises de numeriske ID'er for USB-enhederne i udgangen af ​​'lshw'-kommandoen.

Fjernelse af de flygtige tidsstempler fra Lshw-outputtet

Som standard udskriver lshw de flygtige tidsstempler (skiftende tidsdata) for diskenheder og andre enheder. Hvis du ikke vil se disse tidsstempler, skal du køre kommandoen 'lshw' med '-notime'-indstillingen som følger:

$ sudo etc -ingen tid -klasse bind

Som du kan se, fjernes de monterede tidsstempeldata fra lshw-outputtet, hvor '-notime'-indstillingen bruges.

Eksport af hardwareoplysninger ved hjælp af Lshw

Du kan eksportere lshw-hardwareoplysningerne i forskellige formater. På tidspunktet for dette skrivende kan lshw eksportere hardwareoplysningerne i følgende formater:

  • SQLite database
  • HTML
  • XML
  • JSON

For at eksportere lshw-hardwareoplysningerne til en SQLite-databasefil skal du køre følgende kommando:

$ sudo etc -dump ~ / data / lshw.db &>/ dev / nul

Som du kan se, oprettes 'lshw.db' SQLite-databasefilen.

$ ls -lh ~ / data

Du kan læse 'lshw.db'-databasefilen med SQLite og udskrive alle databasetabellerne som følger:

$ sudo sqlite3 ~ / data / lshw.db --linje '.tabeller'

Du kan udskrive en information om netværksenhederne fra filen 'lshw.db' med følgende SQLite-kommando:

$ sudo sqlite3 ~ / data / lshw.db --linje 'VÆLG * FRA noder WHERE klasse LIKE 'netværk''

For at eksportere lshw-hardwareoplysningerne til en HTML-fil skal du køre følgende kommando:

$ sudo etc -html > ~ / data / lshw.html

Hvis du også vil rense/skjule en følsom information, skal du køre kommandoen lshw HTML eksport som følger:

$ sudo etc -sanere -html > ~ / data / lshw.html

Som du kan se, eksporteres lshw-hardwareoplysningerne til en 'lshw.html' HTML-fil.

$ ls -lh ~ / data

Du kan åbne filen 'lshw.html' med din foretrukne webbrowser.

$ firefox ~ / data / lshw.html

Vi åbnede filen 'lshw.html' med Mozilla Firefox-webbrowseren, og hardwareoplysningerne vises, som du kan se på følgende skærmbillede:

For at eksportere lshw-hardwareoplysningerne til en XML-fil skal du køre følgende kommando:

$ sudo etc -xml > ~ / data / lshw.xml

Hvis du også vil rense/skjule en følsom information, skal du køre kommandoen lshw XML-eksport som følger:

$ sudo etc -sanere -xml > ~ / data / lshw.xml

Som du kan se, eksporteres lshw-hardwareoplysningerne til en 'lshw.xml' XML-fil.

$ ls -lh ~ / data

Vi åbnede filen 'lshw.xml' med Vim-teksteditoren, og lshw-hardwareoplysningerne vises i XML-format, som du kan se på følgende skærmbillede:

$ fordi ~ / data / lshw.xml

For at eksportere lshw-hardwareoplysningerne til en JSON-fil skal du køre følgende kommando:

$ sudo etc -json > ~ / data / lshw.json

Hvis du også vil rense/skjule en følsom information, skal du køre kommandoen lshw JSON eksport som følger:

$ sudo etc -sanere -json > ~ / data / lshw.json

Som du kan se, eksporteres lshw-hardwareoplysningerne til en 'lshw.json' JSON-fil.

$ ls -lh ~ / data

Vi åbnede filen 'lshw.json' med Vim-teksteditoren, og lshw-hardwareoplysningerne vises i JSON-format, som du kan se på følgende skærmbillede:

$ fordi ~ / data / lshw.json

Indstillingerne lshw -sanitize, -numeric og -notime vil fungere for lshw HTML, XML og JSON eksporter, ikke for SQLite eksport. For mere information om disse muligheder, læs de foregående afsnit i denne artikel.

Eksempel 1: Find de installerede GPU'er på din computer/server med Lshw

Efter at have installeret et nyt operativsystem på din computer/server, er en af ​​de vigtigste ting at gøre at finde den GPU (grafikkort/processor), som du har installeret på din computer/server og installere den passende driver til den.

Du kan finde de GPU'er, som du har installeret på din computer/server med følgende 'lshw'-kommando:

$ sudo etc -klasse Skærm

Som du kan se, har vi en NVIDIA GeForce RTX 4070 installeret på vores computer [1] . Det bruger de officielle NVIDIA-drivere (som vi installerede det) [2] . Hvis du har en NVIDIA GPU installeret på din computer/server, men de officielle NVIDIA-drivere ikke er installeret, vil du se 'driver=nouveau' i stedet. I så fald skal du installere de officielle NVIDIA-drivere på din computer/server for at kunne bruge alle funktionerne og få den bedste ydeevne fra din GPU.

Eksempel 2: Find chipsættet for netværksenhederne/grænseflader med Lshw

Installation af den korrekte netværksdriver er også en væsentlig del af en ny Linux-installation. Medmindre de korrekte netværksdrivere er installeret, fungerer dine netværksenheder muligvis ikke eller fungerer med begrænset funktionalitet (kan resultere i en meget dårlig netværksydelse). For at kunne installere de korrekte netværksdrivere skal du kende dine netværksenheders chipset.

For at finde chipsættet og andre oplysninger om netværksenhederne, der er installeret på din computer/server, skal du køre kommandoen 'lshw' som følger:

$ sudo etc -klasse netværk

Som du kan se, har vi to ethernet-enheder installeret på vores computer.

En af dem er en Intel I211 Gigabit netværksgrænseflade [1] . Linux-kernen gav den et logisk navn som enp38s0 [2] . Som du kan se, bruger den Intel igb-chipsættet (driver=igb) [3] . Så for at få denne netværksgrænseflade til at fungere, skal du installere Intel igb-driveren/firmwaren på din computer/server (hvis den ikke allerede er installeret).

Den anden er en Realtek RTL8125 2,5 GbE netværksgrænseflade [4] . Linux-kernen gav den et logisk navn som enp39s0 [5] . Som du kan se, bruger den Realtek r8169-chipsættet (driver=r8169) [6] . Så for at få denne netværksgrænseflade til at fungere, skal du installere Realtek r8169-driveren/firmwaren på din computer/server (hvis den ikke allerede er installeret).

Vi har også en USB-ethernet-enhed og en WiFi-adapter tilsluttet vores computer.

USB 10/100 mbps LAN netværksinterface [1] har det logiske navn, enp42s0f3u6u3 [2] . Som du kan se, bruger den Realtek r8152-chipsættet (driver=r8152) [6] . Så for at få denne netværksgrænseflade til at fungere, skal du installere Realtek r8152-driveren/firmwaren på din computer/server (hvis den ikke allerede er installeret).

WiFi 802.11n netværksgrænsefladen[4] har det logiske navn som wlp42s0f3u1[5]. Som du kan se, bruger den MediaTek mt7601u-chipsættet (driver=mt7601u) [6] . Så for at få denne netværksgrænseflade til at fungere, skal du installere MediaTek mt7601u driveren/firmwaren på din computer/server (hvis den ikke allerede er installeret).

Konklusion

Dette er en omfattende guide om lshw. I denne artikel viste vi dig, hvordan du installerer lshw på populære Linux-distributioner (dvs. Ubuntu, Debian, Linux Mint, Kali Linux, Fedora, RHEL, AlmaLinux, Rocky Linux, CentOS Stream). Vi viste dig også, hvordan du angiver hardwaren på din computer, filtrerer outputtet fra lshw for at vise visse typer hardware og skjuler en følsom hardwareinformation fra lshw-outputtet. Vi viste dig, hvordan du viser det numeriske ID for PCIE- og USB-enheder samt fjerner de flygtige tidsstempler fra lshw-outputtet. Vi viste dig også, hvordan du eksporterer lshw-hardwareoplysningerne i SQLite-databasen, HTML, XML og JSON-formatet og læser dem. Til sidst viste vi dig, hvordan du finder den GPU og netværksenheder, som du har installeret på din computer, og det chipsæt, som netværksenhederne bruger med lshw for at hjælpe dig med den korrekte driver/firmwareinstallation.

Referencer: