Tags Posts tagged with "Sprzęt"

Sprzęt

przez -
9 811
h-node

Free Software Foundation i Projekt Debian stworzyli projekt h-node. Jego celem ma być zbudowanie ogromnej bazy danych ze sprzętem, który działa pod Linuksem, ale tylko i wyłącznie na wolnych sterownikach. Struktura strony została oparta na wiki, gdzie każdy użytkownik może dodawać i modyfikować zawartość. Każda zmiana będzie zapisywana w historii i przypisana do konkretnej osoby. Użytkownik może zgłaszać propozycję dodania nowego sprzętu do bazy lub zaimplementowania nowej funkcji. Aktualnym liderem projektu h-node jest Antonio Gallo, a Free Software Foundation zapewnia wsparcie i infrastrukturę.

Sprzęt, Dysk twardy

Wiele osób, zaraz po instalacji systemu operacyjnego chciałaby zobaczyć podstawowe informacje o parametrach komputera i zainstalowanych w nim urządzeń. Najłatwiejszym sposobem, aby to zrobić pod Linuksem jest skorzystanie z konsoli i wydanie odpowiednich poleceń. Jednakże, co w przypadku, kiedy potrzebujemy szczegółowy raport w kilka chwil i najlepiej, aby został on jeszcze wydrukowany? Z pomocą przychodzi nam HardInfo.

HardInfo jest darmowym oprogramowaniem, który dostarcza szczegółowe informacje o wszystkich zainstalowanych w komputerze komponentach. Standardowo znajduje się w praktycznie każdej dystrybucji Linuksa i nie trzeba dodawać żadnych dodatkowych repozytoriów, czy pobierać zewnętrznych paczek.

Computer

W tej zakładce możemy zobaczyć informacje o całym komputerze, systemie operacyjnym, modułach jądra, uruchomieniach systemu, językach, systemach plików, wyświetlaczu, zmiennych środowiskowych i użytkownikach.

HardInfo - Computer - Summary HardInfo - Computer - Languages

Devices

Tutaj znajdziemy wszelakie informacje o sprzęcie: procesor, pamięć, urządzenia PCI, urządzenia USB, drukarki, baterie, czujniki, urządzenia wejściowe, nośniki danych, płycie głównej i zasobach.

HardInfo - Devices - Processor

Network

Ta zakładka dostarcza informacji o sieci. Mamy zatem: interfejsy, połączenia IP, tabele rutingu, tabele ARP, serwery DNS, statystyki i współdzielone katalogi.

Benchmarks

Ostatnia zakładka to proste testy diagnostyczne. Znajdziemy w niej CPU Blowfish, CPU CryptoHash, CPU Fibonacci, CPU N-Queens, FPU FFT, FPU Raytracing.

HardInfo - Benchmark - testowanie wydajności

Generowanie raportów

Dużą zaletą aplikacji jest możliwość wygenerowania raportu o całym posiadanym sprzęcie. Trwa to dosłownie chwilę, a wynik jest udostępniany w postaci pliku HTML – hardinfo_report.html. Sami wybieramy sobie, jakie części komputera mają znaleźć się w naszym raporcie. Jeżeli wcześniej nie robiliśmy testów wydajności, to generator zrobi to za nas automatycznie.

HardInfo - Generowanie raportu

Sprzęt

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.

Sprzęt

Pracując z terminalem, czasem potrzebujemy odczytać informacje o sprzęcie z jakiego składa się maszyna na jakiej pracujemy. Na szczęście te informacje w Linuksie udostępnione są w bardzo prosty sposób dzięki procfs (od ang. process file system, system plików procesów). Jest to pseudo-system plików lub po prostu wirtualny system plików. Pozwala ona na komunikację użytkownika z jądrem Linuksa poprzez interfejs VFS.

Ten wirtualny system plików domyślnie jest montowany podczas uruchamiania systemu. Jeśli nie został on zamontowany, możemy wykonać to ręcznie wydając polecenie:

mount -t proc proc /proc

Z punktu widzenia użytkownika mamy dostęp do ciekawych plików w katalogu /proc. Katalogi oraz pliki w /proc nie są powiązane z żadnym nośnikiem danych i występują tylko w pamięci operacyjnej. Zawartość plików oraz katalogów jakie się tam znajdują, jest generowana na bieżąco przez specjalne struktury danych jądra systemu. Reprezentują one stan systemu w danej chwili.

Dane te najczęściej są widoczne w postaci plików tekstowych. Dzięki temu możemy odczytać informacje na temat działających procesów:

[zenfir@dune ~]$ cat /proc/5388/status
Name:   java
State:  S (sleeping)
SleepAVG:       88%
Tgid:   5388
Pid:    5388
PPid:   5379
TracerPid:      0
Uid:    7003    7003    7003    7003
Gid:    7000    7000    7000    7000
FDSize: 256
Groups: 300 7000
VmSize:  1947856 kB
VmLck:         0 kB
VmRSS:   1365816 kB
VmData:  1863560 kB
VmStk:        40 kB
VmExe:        42 kB
VmLib:   1815482 kB
StaBrk: 08055000 kB
Brk:    0a28f000 kB
StaStk: bffff640 kB
ExecLim:        ffffffff
Threads:        500
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000081001
SigCgt: 1000000180004cce
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000

W innych plikach znajdziemy następujące informacje:

  • /proc/pid/cmdline – zawiera polecenie jakie zostało wydane do uruchomienia procesu. Znajduje się tu także lista parametrów dodana do polecenia.
  • /proc/pid/cwd – jest to dowiązanie symboliczne, które kieruje do katalogu roboczego procesu.
  • /proc/pid/environ – zawiera listę zmiennych środowiskowych z jakich korzysta proces.
  • /proc/pid/exe – jest to dowiązanie symboliczne do programu, który stworzył ten proces.
  • /proc/pid/fd/ – w tym katalogu znajdują się dowiązania do plików, które otworzył proces.
  • /proc/pid/mem – zawiera pamięć zaalokowaną przez proces.
  • /proc/pid/stat – informacje na temat statusu procesu.
  • /proc/pid/statm – informacje na temat statusu użycia pamięci przez proces.

Wystarczy odczytać odpowiedni plik z podkatalogu o nazwie reprezentowanej przez numer identyfikacyjny procesu (PID). Do niektórych plików również można zapisywać dane. W ten sposób przekazujemy komendy bezpośrednio do działającego jądra.

Informacje o systemie

Jądro systemu, od momentu startu, prowadzi różnego rodzaju statystyki, które zapisuje do pliku: /proc/stat. Możemy dzięki niemu dowiedzieć się ile aktualnie przetwarzanych jest procesów, oraz jaka ich liczba została stworzona od czasu startu systemu. Przykładowa zawartość pliku:

cpu  2166624532 3768773 269277449 7976513937 467370938 2624892 0
cpu0 736783532 484162 112879704 1825044715 43307026 2253920 0
cpu1 404062846 811281 53602688 2209090371 53156469 29343 0
cpu2 452806084 1394625 51279276 2028816516 187874859 165868 0
cpu3 572972069 1078703 51515781 1913562333 183032583 175759 0
intr 14396813661 1705418717 0 0 0 2 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2962956409 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1065644447 0 0 0 0 0 0 0 1757 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72857706 0 0 0 0 0
ctxt 333782462608
btime 1203692335
processes 24751955
procs_running 3
procs_blocked 0

Informacje na temat Swapu znajdują się w:

[paszczak000@muszelka ~]$ cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda5                               partition       2008084 228     -1
/dev/sda6                               partition       2008084 0       -2

Informacje o sprzęcie

Znając już katalog /proc, możemy pokusić się o poszukanie informacji na temat sprzętu jaki znajduje się na maszynie. W prosty i szybki sposób możemy dostać się do informacji na procesora czy pamięci.

Procesor
Odczytując dane z pliku /proc/cpuinfo, możemy dowiedzieć się wielu informacji na temat procesora(ów) zainstalowanych w maszynie.

[paszczak000@muszelka ~]$ cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 6
model           : 10
model name      : AMD Athlon(tm) XP 2600+
stepping        : 0
cpu MHz         : 2079.845
cache size      : 256 KB
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 sep mtrr pge mca cmov pat pse36 mmx fxsr sse pni syscall mmxext 3dnowext 3dnow
bogomips        : 4120.57

Korzystając z poleceń Basha możemy wyciągnąć interesujące nas parametry np:

Prędkość procesora

cat /proc/cpuinfo | grep 'cpu MHz' | sed -e 's/.*: //'

Model

cat /proc/cpuinfo | grep 'model name' | sed -e 's/.*: //'

Pamięć
Odczytując dane z pliku /proc/meminfo, możemy dowiedzieć się wielu informacji na temat pamięci zainstalowanej w maszynie.

[paszczak000@muszelka ~]$ cat /proc/meminfo
MemTotal:       515528 kB
MemFree:          8564 kB
Buffers:         11396 kB
Cached:         266144 kB
SwapCached:          0 kB
Active:         305280 kB
Inactive:       164832 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       515528 kB
LowFree:          8564 kB
SwapTotal:     1124508 kB
SwapFree:      1121780 kB
Dirty:             476 kB
Writeback:           0 kB
Mapped:         268384 kB
Slab:            23164 kB
CommitLimit:   1382272 kB
Committed_AS:   480904 kB
PageTables:       2956 kB
VmallocTotal:   511992 kB
VmallocUsed:     29864 kB
VmallocChunk:   477684 kB

Jeśli interesują nas dane na temat wolnej pamięci możemy wydać polecenie:

cat /proc/meminfo | grep MemFree

Pamięci masowe
Aby odczytać informacje na temat urządzeń podłączonych do IDE, musimy przejrzeć pliki w podkatalogach katalogu /proc/ide/. Znajdziemy tam katalogi o nazwach hda, hdb, a w nich model, capacity, cache. Aby obejrzeć dane na temat dysku twardego możemy wydać polecenie:

cat /proc/ide/hda/model

Urządzenia typu SCSI oraz SATA mają identyfikatory sda, sdb i tak dalej. Aby obejrzeć listę podłączonych dysków do wykrytych kontrolerów można przejrzeć plik /proc/scsi/scsi. Znajdziemy tam podstawowe informacje na temat modeli dysków.

[paszczak000@muszelka ~]$ cat /proc/scsi/scsi
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: ST360015A        Rev: 3.53
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi3 Channel: 00 Id: 00 Lun: 00
  Vendor: HL-DT-ST Model: DVDRAM GSA-4163B Rev: A100
  Type:   CD-ROM                           ANSI  SCSI revision: 05
Host: scsi0 Channel: 00 Id: 00 Lun: 00
  Vendor: ATA      Model: Maxtor 6Y120M0   Rev: YAR5
  Type:   Direct-Access                    ANSI  SCSI revision: 05
Host: scsi17 Channel: 00 Id: 00 Lun: 00
  Vendor: Seagate  Model: FreeAgent Go     Rev: 100F
  Type:   Direct-Access                    ANSI  SCSI revision: 02

Informacje na temat partycji znajdziemy w pliku:

[paszczak000@muszelka ~]$ cat /proc/partitions
major minor  #blocks  name

   8     0  143374000 sda
   8     1     200781 sda1
   8     2    1004062 sda2
   8     3   10008495 sda3
   8     4          1 sda4
   8     5    2008093 sda5
   8     6    2008093 sda6
   8     7    2008093 sda7
   8     8    2008093 sda8
   8     9    4008186 sda9
   8    10   15783831 sda10
   8    11  104334111 sda11
   8    16  143374000 sdb/

Natomiast zamontowane partycje można podejrzeć w /proc/mounts.

Więcej ciekawych informacji można wyciągnąć z manuala proc(5).

Linki

Linux Tux

Z badań statystycznych wynika, że komputery wyposażone w systemy Linux mają niemal dwa razy większy niż średni okres użytkowania maszyn z zainstalowanym systemem Windows. Z badań wynika, że komputer wyposażony w Linuksa używany jest przed sześć do ośmiu lat. Te same maszyny z zainstalowanym Windowsem użytkowane są nawet dwa razy krócej – od 3 do 4 lat.

Oznacza to, że świat Windows generuje dwa razy więcej odpadów komputerowych niż użytkownicy Linuksa oraz dostarcza dwa razy więcej dochodów producentom. Jako argument przemawiający za przyjaznością Linuksa dla środowiska przedstawiany jest też fakt, że system nie jest rozprowadzany w pudełkach.

W wielu przypadkach Linux zainstalowany jest jeszcze na maszynach Pentium 1 ze 128 MB RAM, zdarzają się też dystrybucje działające sprawnie na sprzęcie klasy 486. Takie komputery zamiast trafić na śmietnik świetnie nadają się nawet do poważnych zastosowań jak router czy serwer www. Na starych maszynach system Linux potrafi pracować wydajnie dając komfort pracy.

Ekolodzy obawiają się, że premiera Visty doprowadzi do zwiększenia ilości odpadów w związku z wymianą relatywnie nowego sprzętu na najnowszy, potrafiący poradzić sobie z obsługą nowego dziecka MS.

Polecane

Prasa, Czasopismo

1 877
Ukazało się Linux Magazine – numer 161. Lipcowe wydanie magazynu zawiera analizę tworzenia bardziej czytelnych wyrażeń regularnych z Simple Regex Language, instrukcje zabezpieczania i...