Identyfikacja poszczególnych komponentów z jakich zbudowany jest nasz komputer, serwer w systemie Windows nie jest zbyt skomplikowane. Wystarczy, że uruchomimy menadżer urządzeń czy informacje o systemie. Zatem nawet początkujący użytkownik w łatwy sposób potrafi określić zasoby sprzętowe bez wyłączania maszyny. Pod Linuksem jednak nie jest tak łatwo i przyjemnie, w szczególności gdy się tego nigdy nie robiło.

Podstawą jest posiadanie dostępu do konta roota na maszynie, której będziemy musieli zidentyfikować poszczególne zasoby sprzętowe. Bez tego oczywiście da się odnaleźć różne informacje, ale nie do wszystkich ma dostęp zwykły użytkownik, chyba, że posiada śrubokręt i młotek.

Większość informacji w systemie Linux można odczytać z procfs. Jest to to wirtualny system plików, który pozwala na komunikację z jądrem uniksowego systemu operacyjnego poprzez interfejs VFS. Jego struktura plików i katalogów nie jest związana z żadnym nośnikiem danych, a występuje jedynie w pamięci operacyjnej komputera.

Identyfikacja procesora

Jest to nie wątpliwie najprostsza rzecz jaką możemy zidentyfikować w systemie Linux. Wystarczy jako root wpisać następujące polecenie:

root@test# cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 67
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
stepping        : 3
cpu MHz         : 3000.114
cache size      : 1024 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8legacy ts fid vid ttp tm stc
bogomips        : 6141.84

Jeżeli nasz procesor jest wielordzeniowy, lub nasza maszyna posiada kilka fizycznych procesorów, to taki układ danych:

procesor: rdzeń_id

Bogomips: bogomips_rdzenia

zostanie wyświetlony kilka razy jeden za drugim, i będą się różnić tylko pierwszym i ostatnim wierszem.

Nas jednak będą interesować wiersze:

vendor_id       : AuthenticAMD
cpu family      : 15
model           : 67
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
stepping        : 3
cpu MHz         : 3000.114
cache size      : 1024 KB
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8legacy ts fid vid ttp tm stc

O ile w przypadku maszyn z maksymalnie jednym procesorem najbardziej istotną informacją są obsługiwane flagi – wspiera sprzętowe wirtualizację (flaga vmx dla Intela i svm dla AMD), 64 bitowy procesor (flaga lm), tak w przypadku płyt dwu i więcej procesorowych różnica chociaż jednego z tych elementów:

  • vendor_id
  • cpu family
  • model
  • model name
  • stepping
  • flags

może spowodować wiele problemów. Między innymi:

  • niestabilnej pracy usług i aplikacji
  • maszyny wirtualne lub usługa je nadzorująca może się nie uruchomić
  • niestabilnej pracy systemu
  • nie możności uruchomienia systemu

Innym sposobem na pozyskanie informacji o procesorze jest wykorzystanie pliku logu dmesg znajdującego się domyślnie w /var/log. W tym celu posłużymy się poleceniem: cat /var/log/dmesg | grep -i cpu

root@test# cat /var/log/dmesg | grep -i cpu
Initializing CPU#0
CPU 0 irqstacks, hard=c074a000 soft=c072a000
CPU: After generic identify, caps: 178bfbff ebd3fbff 00000000 00000000 00002001 00000000 0000001f
CPU: After vendor identify, caps: 178bfbff ebd3fbff 00000000 00000000 00002001 00000000 0000001f
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
CPU 0(2) -> Core 0
CPU: After all inits, caps: 178bfbff ebd3fbff 00000000 00000410 00002001 00000000 0000001f
Intel machine check reporting enabled on CPU#0.
CPU0: AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ stepping 03
CPU 1 irqstacks, hard=c074b000 soft=c072b000
Initializing CPU#1
CPU: After generic identify, caps: 178bfbff ebd3fbff 00000000 00000000 00002001 00000000 0000001f
CPU: After vendor identify, caps: 178bfbff ebd3fbff 00000000 00000000 00002001 00000000 0000001f
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
CPU 1(2) -> Core 1
CPU: After all inits, caps: 178bfbff ebd3fbff 00000000 00000410 00002001 00000000 0000001f
Intel machine check reporting enabled on CPU#1.
CPU1: AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ stepping 03
checking TSC synchronization across 2 CPUs:
CPU#0 had -202 usecs TSC skew, fixed it up.
CPU#1 had 202 usecs TSC skew, fixed it up.
Brought up 2 CPUs
powernow-k8: Found 1 AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ processors (2 cpu cores) (version 2.20.00)

Jak widać ilość danych jest spora, ale jeżeli weźmiemy pod uwagę ich użyteczność to jest bardzo niska. Z całego liseningu najistotniejsze wpisy to:

CPU 0(2) -> Core 0
CPU0: AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ stepping 03
CPU 1(2) -> Core 1
CPU1: AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ stepping 03

CPU 1(2) -> Core 1 i CPU 0(2) -> Core 0 informują, iż procesor jest dwurdzeniowy. W przypadku gdyby to były dwa niezależne procesory tych wpisów by nie było.

W systemie Red Hat Enterprise Linux można skorzystać jeszcze z polecenia:

root@test# /usr/sbin/x86info
x86info v1.13.  Dave Jones 2001-2003
Feedback to .

Found 4 CPUs
--------------------------------------------------------------------------
CPU #1
/dev/cpu/0/cpuid: No such file or directory
Family: 6 Model: 15 Stepping: 11 Type: 0 Brand: 0
CPU Model: Unknown CPU Original OEM
Feature flags:
 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh dtes acpi mmx fxsr sse sse2 selfsnoop ht acc pbe
Extended feature flags:
 est tm2
L1 Instruction cache:
        :Size 32KB      8-way associative.
        line size=64 bytes.
L1 Data cache:
        Size: 32KB      8-way associative.
        line size=64 bytes.
Instruction TLB: 4K pages, 4-way associative, 128 entries.
Processor serial: 0000-06FB-0000-0000-0000-0000
The physical package supports 2 logical processors

--------------------------------------------------------------------------
CPU #2
Family: 6 Model: 15 Stepping: 11 Type: 0 Brand: 0
CPU Model: Unknown CPU Original OEM
Feature flags:
 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh dtes acpi mmx fxsr sse sse2 selfsnoop ht acc pbe
Extended feature flags:
 est tm2
L1 Instruction cache:
        :Size 32KB      8-way associative.
        line size=64 bytes.
L1 Data cache:
        Size: 32KB      8-way associative.
        line size=64 bytes.
Instruction TLB: 4K pages, 4-way associative, 128 entries.
Processor serial: 0000-06FB-0000-0000-0000-0000
The physical package supports 2 logical processors

--------------------------------------------------------------------------
CPU #3
Family: 6 Model: 15 Stepping: 11 Type: 0 Brand: 0
CPU Model: Unknown CPU Original OEM
Feature flags:
 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh dtes acpi mmx fxsr sse sse2 selfsnoop ht acc pbe
Extended feature flags:
 est tm2
L1 Instruction cache:
        :Size 32KB      8-way associative.
        line size=64 bytes.
L1 Data cache:
        Size: 32KB      8-way associative.
        line size=64 bytes.
Instruction TLB: 4K pages, 4-way associative, 128 entries.
Processor serial: 0000-06FB-0000-0000-0000-0000
The physical package supports 2 logical processors

--------------------------------------------------------------------------
CPU #4
Family: 6 Model: 15 Stepping: 11 Type: 0 Brand: 0
CPU Model: Unknown CPU Original OEM
Feature flags:
 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflsh dtes acpi mmx fxsr sse sse2 selfsnoop ht acc pbe
Extended feature flags:
 est tm2
L1 Instruction cache:
        :Size 32KB      8-way associative.
        line size=64 bytes.
L1 Data cache:
        Size: 32KB      8-way associative.
        line size=64 bytes.
Instruction TLB: 4K pages, 4-way associative, 128 entries.
Processor serial: 0000-06FB-0000-0000-0000-0000
The physical package supports 2 logical processors

--------------------------------------------------------------------------
WARNING: Detected SMP, but unable to access cpuid driver.
Used Uniprocessor CPU routines. Results inaccurate.

Identyfikacja kontrolera RAID

Większość nowych płyt głównych ma już zintegrowany kontroler RAID. Lecz jest to rozwiązanie dalekie od ideału. Dlatego w dobrych markowych serwerach korzysta się z raidu sprzętowego. Do identyfikacji obu rozwiązań posłużymy się poleceniem lspci z odpowiednim filtrowaniem.

W przypadku raidu wbudowanego, po użyciu polecenia:

root@test# lspci | grep -i raid
00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA
03:03.0 RAID bus controller: 3ware Inc 7xxx/8xxx-series PATA/SATA-RAID (rev 01)

lub:

root@test# lspci | grep -i raid
00:1f.2 RAID bus controller: Intel Corporation 82801 SATA RAID Controller
(rev 02)

Ten RAID jest częścią kontrolera płyty głównej o czym świadczy zapis: RAID bus controller. W przypadku raidu sprzętowego, który jest niezależnym urządzeniem, wykorzystamy dokładnie to samo polecenie: lspci | grep -i raid

root@test# lspci | grep -i raid
02:00.0 Mass storage controller: Compaq Computer Corporation Smart-2/P
RAID Controller (rev 03)

W obydwu przypadkach otrzymujemy pełną nazwę kontrolera RAID i rewizji – o ile taka istnieje. Te dane są wystarczające w celu poprawnej identyfikacji urządzenia RAID.

Identyfikacja dysków twardych

W celu identyfikacji dysków zainstalowanych w naszej maszynie posłużymy się poleceniem: hdparm. Jednakże ze względu na różny sposób prezentacji urządzeń w systemie, który jest zależny od między innymi rodzaju interfejsu polecenie wyjściowe może się różnić Aby zidentyfikować sposób prezentacji dysku (nie partycji) wykorzystamy polecenie: fdisk z odpowiednim filtrowaniem, które ostatecznie będzie wyglądać tak:

root@test# fdisk -l | grep -i disk
Disk /dev/hda: 10.7 GB, 10737418240 bytes
Disk /dev/hdb: 2147 MB, 2147483648 bytes
Disk /dev/sda: 6442 MB, 6442451456 bytes
Disk /dev/sdb: 4294 MB, 4294967808 bytes
Disk /dev/sdc: 10.7 GB, 10737418752 bytes
Disk /dev/sdd: 10.7 GB, 10737418752 bytes

Z powyższego listingu, możemy wywnioskować, iż mamy do czynienia łącznie z 6 dyskami. 4 dyski SATA/SCSI zaczynające się od sda, sdb, sdc i sdd. Dyski opisane jako hda i hdb są dyskami IDE.

root@test# fdisk -l | grep -i disk
Disk /dev/md0 doesn't contain a valid partition table
Disk /dev/md1 doesn't contain a valid partition table
Disk /dev/sda: 160.0 GB, 160040803840 bytes
Disk /dev/sdb: 160.0 GB, 160040803840 bytes
Disk /dev/md0: 20.0 GB, 20012007424 bytes
Disk /dev/md1: 70.0 GB, 70005227520 bytes

Natomiast na powyższego listingu, widzimy dwa urządzenia RAID oznaczone jako md0 i md1. Wyświetlana informacja o błędzie Disk /dev/md0 doesn't contain a valid partition table jest spowodowana faktem, iż polecenie hdparm nie umie poprawnie zinterpretować dysków połączonych w RAID. Podobna sytuację napotkamy gdy korzystamy z LVM (Logical Volume Manager).

Skoro już znamy ścieżkę do naszych urządzeń to możemy przystąpić do ich identyfikacji. Do tego celu wykorzystamy polecenie:

root@test# hdparm -i /dev/sda |grep -i model
Model=ST3160815AS, FwRev=4.AAB, SerialNo=5RA6Z0PP

W powyższym przypadku bez problemu pozyskaliśmy informację o dysku twardym. Znamy dokładny model dysku wraz z rewizją oraz numerem seryjnym. W ten sposób uzyskane dane w zupełności wystarczą do znalezienia wszelkich informacji na temat naszego dysku.

Listing poniżej jest przykładem, kiedy to hdparm nie potrafi zidentyfikować urządzenia, gdy na przykład zostanie wskazana ścieżka do dysków w trybie RAID:

root@test# hdparm -i /dev/md1 | grep -i model
HDIO_GET_IDENTITY failed: Invalid argument

Identyfikacja napędów optycznych

W celu identyfikacji napędu optycznego w naszej maszynie posłużymy się poleceniem: cat /var/log/dmesg | grep -i rom

root@test# cat /var/log/dmesg | grep ROM
hde: TSSTcorp CDDVDW  SH-S222A, ATAPI CD/DVD-ROM drive
hde: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache,  UDMA(33)
Uniform CD-ROM driver Revision: 3.20

Oprócz uzyskania pełnej informacji o producencie, typie i modelu napędu udało się nam pozyskać informację o buforze, zainstalowanym sterowniku systemowym oraz ścieżce systemowej do urządzenia. Znając ją możemy teraz sprawdzić również nasz napęd optyczny za pomocą polecenia:

root@test# hdparm -i  /dev/hde | grep -i model
Model=TSSTcorp CDDVDW SH-S222A, FwRev=SB01,  SerialNo=

Oczywiście w przypadku gdy znamy ją wcześniej od razu możemy skorzystać z polecenia hdparm, nie trudząc się z przeglądaniem logu systemu.

Identyfikacja płyty głównej

W przypadku nieznajomości odpowiedniej komendy może to być trudne. Wielu początkujących użytkowników wybierze najprostszą metodę jaką jest restart maszyny i zatrzymanie etapu bootowania tuż przed identyfikacją urządzeń. Ale to nie jest rozwiązanie. Jako użytkownik root wpisujemy następujące polecenie:

root@test# dmidecode -t baseboard
# dmidecode 2.7
SMBIOS 2.5 present.

Handle 0x0002, DMI type 2, 15 bytes.
Base Board Information
Manufacturer: MICRO-STAR INTERANTIONAL CO.,LTD
Product Name: MS-7368
Version: 1.0
Serial Number: To be filled by O.E.M.
Asset Tag: To Be Filled By O.E.M.
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: To Be Filled By O.E.M.
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0

Handle 0x0025, DMI type 10, 6 bytes.
On Board Device Information
Type: Video
Status: Enabled
Description:   To Be Filled By O.E.M.

Dla nas najważniejszymi wierszami z powyższego listingu są:

Manufacturer: MICRO-STAR INTERANTIONAL CO.,LTD
Product Name: MS-7368
Version: 1.0
Serial Number: To be filled by O.E.M.

Z pierwszego wiersza odczytamy nazwę producenta, z drugiego dokładny model, a z trzeciego numer rewizji płyty. W rzeczywistości ostatni wiersz, w przypadku nie firmowych zestawów możemy pominąć. Powodem tego jest fakt, iż płyty główne do tzw. składaków, rzadko kiedy mają uzupełniony numer seryjny. W przypadku markowych zestawów identyfikacja podzespołu odbywa się po przez numer seryjny.

Dodatkowe informacje o płycie głównej (np. kontroler USB, informacje o chipsecie mostka południowego) można odczytać używając polecenia lspci.

Identyfikacja biosu

Aby odczytać informacje o biosie w systemie Linux wykorzystamy polecenie:

root@test# dmidecode -t bios
# dmidecode 2.7
SMBIOS 2.5 present.

Handle 0x0000, DMI type 0, 24 bytes.
BIOS Information
Vendor: American Megatrends Inc.
Version: V1.3B1
Release Date: 09/04/2007
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 1024 kB
Characteristics:
ISA is supported
PCI is supported
PNP is supported
APM is supported
BIOS is upgradeable
BIOS shadowing is allowed
ESCD support is available
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 KB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
LS-120 boot is supported
ATAPI Zip drive boot is supported
BIOS boot specification is supported
Targeted content distribution is supported
BIOS Revision: 8.14

Handle 0x0028, DMI type 13, 22 bytes.
BIOS Language Information
Installable Languages: 1
en|US|iso8859-1
Currently Installed Language: en|US|iso8859-1

Na ekran została wypisana pokaźna liczba danych. Jednak interesujące nas fragmenty znajdują się głównie tuż przy wywołaniu polecenia, i są to:

Vendor: American Megatrends Inc.
Version: V1.3B1
Release Date: 09/04/2007
BIOS Revision: 8.14

Kolejno odczytując producent biosu, jego wersja, data wydania i numer rewizji.

Identyfikacja pamięci

O ile w przypadku zwykłych maszyn jakie używamy w domu czy w biurze do pracy nie jest to zbyt istotne, o tyle w serwerach już jest. Niekompatybilność użytych pamięci może sprawić, iż aplikacje/usługi uruchamiane na maszynie, czy też sam system operacyjny może działać niestabilnie. Zatem w jaki sposób zidentyfikujemy naszą pamięć?

W tym celu wykorzystamy polecenie:

root@test# dmidecode -t memory
# dmidecode 2.7
SMBIOS 2.5 present.

Handle 0x0008, DMI type 5, 20 bytes.
Memory Controller Information
Error Detecting Method: 64-bit ECC
Error Correcting Capabilities:
None
Supported Interleave: One-way Interleave
(…)
Handle 0x002D, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x0029
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 72 bits
Size: 2048 MB
Form Factor: DIMM
Set: None
Locator: DIMM1
Bank Locator: BANK1
Type: DDR2
Type Detail: Synchronous
Speed: 333 MHz (3.0 ns)
Manufacturer: Manufacturer1
Serial Number: SerNum1
Asset Tag: AssetTagNum1
Part Number: PartNum1

Tu się chwilkę zatrzymamy ponieważ przełącznik memory wypisuje nadmiar informacji, które mogą być niezrozumiałe dla użytkownika. Zatem na co zwrócić uwagę? Poszukujemy fragmentu podobnego do tego (oczywiście wartości mogą być inne):

Handle 0x002D, DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x0029
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 72 bits
Size: 2048 MB
Form Factor: DIMM
Set: None
Locator: DIMM1
Bank Locator: BANK1
Type: DDR2
Type Detail: Synchronous
Speed: 333 MHz (3.0 ns)
Manufacturer: Manufacturer1
Serial Number: SerNum1
Asset Tag: AssetTagNum1
Part Number: PartNum1

Z tego listingu najważniejszym pozycjami dla nas są:

Size: 2048 MB
Type: DDR2
Speed: 333 MHz (3.0 ns)
Manufacturer: Manufacturer1
Serial Number: SerNum1
Asset Tag: AssetTagNum1
Part Number: PartNum1

Z tych kilkunastu linijek dowiemy się kto jest producentem (manufacturer) pamięci operacyjnej. Jakiego jest ona typu (type), rozmiaru (size), oraz jaka jest szybkość (speed). Pozostałe trzy pola Serial i Part number oraz Basset Tag, są wykorzystywane do szczegółowej identyfikacji. Na przykład w momencie gdy chcemy otrzymać kość pamięci z tego samego cyklu produkcyjnego (co może być konieczne, gdy pamięć jest wykorzystywana w maszynie serwerowej.)

Identyfikacja karty sieciowej

Informacje o karcie sieciowej możemy uzyskać na dwa sposoby. Pierwszym z nich jest wykorzystanie polecenia:

root@test# lspci | grep -i eth
00:08.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
00:09.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
01:06.0 Ethernet controller: Intel Corporation 82541PI Gigabit Ethernet
Controller (rev 05)

Z powyższego listingu bez problemu jesteśmy w stanie zidentyfikować karty sieciowe znajdującej się w naszej maszynie. Są to:

  • Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
  • Intel Corporation 82541PI Gigabit Ethernet Controller (rev 05)

Drugim sposobem jest przejrzenie logu dmesg. Jednak podobnie jak w poprzednich przypadkach trzeba użyć odpowiedniego filtrowania aby nie zostać zalanym zbędnymi danymi, które w tym przypadku nas nie interesują. A zatem wykorzystamy polecenie:

root@test# cat /var/log/dmesg | grep -i eth
8139cp: 10/100 PCI Ethernet driver v1.2 (Mar 22, 2004)
8139too Fast Ethernet driver 0.9.27
eth0: RealTek RTL8139 at 0xe88a0f00, 00:0e:2e:ab:16:f8, IRQ 5
eth0:  Identified 8139 chip type 'RTL-8100B/8139D'
eth1: RealTek RTL8139 at 0xe88a2e00, 00:0e:2e:ab:1a:17, IRQ 9
eth1:  Identified 8139 chip type 'RTL-8100B/8139D'
e1000: eth2: e1000_probe: Intel(R) PRO/1000 Network Connection

A za tym które polecenie wyświetla więcej przydatnych informacji? W tym przypadku będzie to lspci. Powodem jest fakt, iż oprócz dokładnej identyfikacji producenta i chipsetu karty sieciowej, możemy również odczytać numer jej rewizji.

Identyfikacja karty graficznej

Najszybszym i w miarę dokładnym sposobem na określenie rodzaju i modelu karty graficznej jest użycie polecenia:

root@test# lspci | grep -i vga
01:05.0 VGA compatible controller: ATI Technologies Inc RS690 [Radeon X1200 Series]

W tym przykładzie z wyniku wykonania polecenia oprócz informacji o producencie, modelu GPU oraz rodzinie do której należy karta graficzna nie uzyskamy nic więcej. Ilość i typ pamięci czy interfejs komunikacji PCI/AGP nadal są nieznane.

Identyfikacja karty dźwiękowej

W celu określenia karty dźwiękowej jaka została zainstalowana w naszej maszynie, posłużymy się poleceniem:

root@test# lspci | grep -i audio
01:05.2 Audio device: ATI Technologies Inc Radeon X1200 Series Audio Controller

Wynik polecenia, a co za tym idzie w ten sposób pozyskane dane są ogólnikowe i mogą nie wystarczyć do poprawnej identyfikacji. Jednakże bez większych problemów jesteśmy w stanie określić producenta oraz rodzinę, do której przynależy nasz dźwiękówka.

Identyfikacja innych komponentów

W przypadku urządzeń podłączanych na gorąco, czyli między innymi:

  • napędy USB
  • drukarki
  • skanery
  • kamery

najbardziej pomocne będzie polecenie: cat /var/log/messages. Jednakże ilość pozyskanych w ten sposób danych jest bardzo duża, wyłowienie interesujących nas kawałków może być bardzo trudne.

W przypadku urządzeń, które były podpięte i włączone w momencie startu maszyny, systemu, istnieje duże prawdopodobieństwo, iż zostały one rozpoznane i odnotowane w pliku logu dmesg. Inną metodą jest przejrzenie wyników polecenia lspci.

  • xeros

    To ja polecę "lshw" – wszystko powyżej w jednym poleceniu. Bardzo się przydaje :-)

  • Wstyd się przyznać, ale nie znałem tego polecenia. Fajne!

  • qbs

    w przypadku macosx, mozna skorzystac z system_profiler

  • Super narzędzie, ale wymaga doinstalowania pakietu, gdyż z tego co widzę domyślnie nie jest instalowany w dystrybucjach z których korzystam… a szkoda :(

  • aureli

    hwinfo jeszcze

  • Ale to nie są standardowe polecenia. W artykule chodziło raczej o fakt wyciągnięcia informacji za pomocą tych podstawowych.

  • droid

    W przypadku Archlinux jest tez "hwd" i "hwdetect"

  • Łukasz

    Super artykuł. Bardzo pomocny. Dzięki

  • kasia

    przepraszam ze zawracam głowe ale mam od niedawna della a w nim ubuntu 12.04.1 LTS i nie wiem jak uruchomic w nim kamere podobno przez biosa mozna ale ja jestem zielona jesli chodzi o komputery kolega(prywatny informatyk:) ) wyjechał i nie wiem co zrobic

  • Maciej

    Jeszcze “lsusb” – wiadomo do czego. :)

  • Tomasz

    Jest jeszcze program rozwijany przez naszego rodaka. Program I-nex. Jest darmowy i ma styl graficzny. Same zalety.

  • Bartek :)

    Ja używam lshw, lsusb oraz lspci … zwykle te trzy komendy mi w zupełności wystarczają ;)