Vaše náměty a připomínky
Máte k Linuxzone.cz nějaké připomínky nebo náměty? Našli jste na stránkách chybu? Dejte nám o tom vědět pomocí
formuláře nebo v diskuzi.
Komentářů: 30
Podpořte Linuxzone.cz
Chcete podpořit náš server umístěním odkazu nebo zveřejněním backendu? Zde najdete vše potřebné.
Pište pro Linuxzone.cz
Máte zájem podílet se na obsahu Linuxzone.cz ať už jako redaktoři nebo i jinak? Dejte nám o sobě vědět!
Aktuálně z bezpečnosti
6.12.2005, 19:01 Na serveru informit.com vyšla ukázková kapitola týkající se práce s řetězci z knihy Secure Coding in C and C++. (lz)
Linuxzone.cz - server o Linuxu pro programátory, administrátory a fanoušky.
Provozuje společnost Impossible.
ISSN: 1213-8738
Listujeme hardware
Keďže s riešením problematiky konfigurácií často súvisí i nutnosť zisťovania informácií o nainštalovaných perifériách, v dnešnej časti sa pozrieme práve na túto problematiku. Aby sme pomohli presnejšiemu objasňovaniu situácie pri riešení problémov priblížime si dnes viacero nástrojov, ktoré nám pomôžu získať prístup k požadovaným dátam.
1. Úvod
Aby sme hneď nevhupli do problematiky samotnej, zamyslíme sa na úvod nad tým, aká situácia vládne v súčasnosti na tomto poli. Často sa domáhame rád v diskusných skupinách, konfrontujeme situáciu s manuálovými stránkami, prezeráme howtos, aby sme vyriešili problémy, ktoré sa často týkajú nesprávnej konfigurácie periférií. S riešením často súvisí i problematika zberu dát, ktorá nám pomôže zistiť pridelené prostriedky, porovnať ich detekciu so skutočnosťou a podobne. V dnešnom príspevku sa pozrieme na štvoricu nástrojov, ktoré nám môžu našu prácu uľahčiť. Cieľ je jasný. Správne zhodnotiť situáciu.
2. Zastávka prvá - lspci
Nástroj lspci slúži na vypísanie zoznamu všetkých PCI zariadení, ktoré sa v systéme nachádzajú. Aby sme ihneď na začiatok pre nováčikov vyvrátili domnienku o vytvorení zoznamu rozširujúcich PCI kariet v systéme, je potrebné pripomenúť, že sa vyhodnocujú zariadenia ako také na zbernici PCI. Patria sem teda aj bridge, integrované periférie s týmto interkonektom a zariadenia na AGP, ktorá nie je za architektonického hľadiska ničím iným, ako samostatným vysokopriepustným PCI kanálom.
Nástroj lspci je jedným z komponentov balíčka pciutils, ktorého domovská stránka je k dispozícii na http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml . Keďže sa jedná o nástroj, ktorý je takmer neoceniteľným nástrojom, či už pri detekcii hardwaru, alebo jeho diagnostike (samozrejme popri setpci), nájdeme ho v každej modernej distribúcii, takže sa jeho inštaláciou z dôvodu existencie balíčka zaoberať nemusíme.
V základnom režime nás bude zaujímať, aké periférie sa vlastne na PCI interkonekte nachádzajú. Nielenže nám táto informácia môže poslúžiť pri inventarizovaní prevzatých systémov bez potreby ich fyzickej inšpekcie, dozvieme sa kompletnú hardwarovú zostavu v rámci aktivovania periférií firmwarom základnej dosky. Na prvý pohľad tak zistíme, ktoré periférie po hardwarovej stránke boli inicializované (ktorých inicializácia neprešla, či boli vypnuté v BIOSe), aby sme sa mohli pustiť do ich ručnej konfigurácie pri nerozoznaní operačným systémom. Typický výpis môže vyzerať nasledovne
V tomto prípade jasne vidno odlíšenie integrovaných súčastí s prefixom 00, AGP zariadenia s prefixom 01 a rozširujúcich periférií s označením 02. Týmto výpisom sme však získali iba základné informácie, ktoré sú akýmsi inventúrnym súborom. Aby sme sa však dostali k jednotlivým detailom príslušného zariadenia, niet ľahlšieho spôsobu, ako sa priamo dotázať. Aby sme si situáciu nekomplikovali dlhými výpismi, zariadenie môžeme vyšpecifikovať priamo jeho identifikátorom. Pozrime sa teda na pridelené prostriedky a operačné nastavenia nášho modemu.
#lspci -v -s 02:04.0
02:04.0 Communication controller: Lucent Microelectronics 56k \
WinModem (rev 01)
Subsystem: Lucent Microelectronics LT WinModem 56k \
Data+Fax+Voice+Dsvd
Flags: bus master, medium devsel, latency 0, IRQ 17
Memory at feaffc00 (32-bit, non-prefetchable) [size=256]
I/O ports at dc00 [size=8]
I/O ports at d800 [size=256]
Capabilities: [f8] Power Management version 2
Z výpisu je jasné, že modem využíva IRQ17, pri využití dodatočných komunikačných I/O portov na adresách dc00 a d800 s memory rozhraním na adrese feaffc00. Často nás však bude zaujímať, či je aktivovaná podpora bus masteringu (hlavne pri komunikačných a storage subsystémoch), pozornosti však neujdú ani rozšírené možnosti, ako podpora správy napájania a podobne.
2. Zastávka druhá - lsusb
Keďže sme sa v krátkosti pozreli na periférie interné /zbernica ISA v súčasnosti nie je už priveľmi stredobodom záujmu po jej náhrade s LPC/ bolo by škoda obísť možnosť detekcie periférií externých. Keďže vysokorýchlostné sériové interkonekty čoraz viac dominujú, bude nás v tomto prípade zaujímať zbernica USB. Keďže i v tomto prípade sa jedná takmer o rutinu, v každej súčasnej distribúcii nájdeme balíček usbutils, ktorého súčasťou je i nástroj lsusb. Ak by sa vám však zazdalo, že u vás je tomu inak, domovská stránka projektu je na http://usb.cs.tum.edu/download/usbutils/. V prípade nakompilovanej podpory USB bude však prítomnosť balíčka samozrejmosťou.
Aby sme však prešli k základnému použitiu, podobne ako pri zbernici PCI nás najprv budú zaujímať prítomné USB rozhrania systému a periférie k nim pripojené. Opäť niet jednoduchšieho spôsobu, ako jednoducho zažiadať o výpis pomocou
#lsusb
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 002: ID 09a6:8001 Poinchips
Ako vidíme v tomto prípade, v systéme sa nachádza štvorica USB rozhraní (každé z nich typicky disponuje dvojicou portov), pričom je k systému pripojené jediné zariadenie. Ak chceme zistiť akou verziou USB rozhraní je systém vybavený, slušne sa popýtame. Ako? No predsa pomocou
#lsusb -v -s 001:001
(výpis je úmyselne redukovaný)
Bus 002 Device 001: ID 0000:0000
Device Descriptor:
...
bDeviceSubClass 0 Root Hub
...
iProduct 2 USB UHCI Root Hub
...
kde sa dočítame či sa jedná o rozhranie UHCI alebo EHCI. Rovnakým spôsobom sa môžeme dotázať na príslušné zariadenia pripojené k systému. V našom prípade je to USB kľúč Canyon, o ktorom si necháme vylistovať zaujímavé informácie.
#lsusb -v -s 001:001
(výpis je úmyselne redukovaný)
Bus 001 Device 002: ID 09a6:8001 Poinchips
Device Descriptor:
...
bcdUSB 1.10
...
idVendor 0x09a6 Poinchips
...
iProduct 2 USB Flash Disk
iSerial 3 20030512094932-00
...
MaxPower 100mA
...
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 5 SFF-8070i
Myslím, že k výpisu skutočne niet čo dodať. Jednotlivé hodnoty hovoria samé za seba. Ak teda ešte stále tápate, či váš digitálny fotoaparát umožňuje namountovať jeho pamäťovú kartu, odpoveď je jednoznačná ihneď po vzhliadnutí systému. Pri mobilných zariadeniach bude samozrejme zaujímavá informácia o energetickej náročnosti, čo môže byť pri výbere produktov nápovedné.
3. Zastávka tretia - lshw
S diagnostikou často súvisí i inventarizácia, ktorá predpokladá kompletnosť výpisu od osadenia systému RAM, cez CPU až po pripojené periférie. Aby sme však boli kompletní, nie je na škodu vedieť i aké sú stropné možnosti systému (čiže maximálna kapacita RAM, či frekvencia CPU). Tieto všetky informácie nám poskytne nástroj lshw, ktorý je k dispozícii na http://ezix.sourceforge.net/software/lshw.html . O tom, že sa jedná o prepracovaný nástroj, ktorý je skutočne nenahraditeľný sa presvedčíme sami.
Inštalácia je opäť triviálna, takže sa nestretneme so žiadnymi špecialitkami. Čo sa týka konfiguračných parametrov, tu máme po ruke jediný využiteľný prepínač, ktorý prepína medzi výstupom v textovej a html (-html) resp. xml (-xml) podobe. Fantazírovať o možnostiach v teoretickej hladine nemá cenu, takže sa pozrieme na výrez výstupu, ktorý sme získali pomocou
#lshw -html > inventar.html
Ako vidno na jednotlivých detailoch, informácie sú podrobné a týkajú sa každej z periférií. Jednoducho odhalíme model a výrobcu základnej dosky, osadený procesor a frekvenčnú rezervu k stropu, rozloženie pamätových modulov v bankoch, samozrejme nechýbajú ani informácie o storage zariadeniach ATA/SCSI, zberniciach PCI, USB a ISA zariadeniach. Ak sa chystáte preberať po niekom strojový park, resp sledovať zmeny vrelo doporučujem. Vysporiadať sa vďaka formátu XML s porovnávaním skutočne nie je problémom.
4. Zastávka štvrtá - hardinfo
K to by namietal, že sme sa doteraz venovali iba konzolovým nástrojom - i keď skutočne tým primárnym - ako posledný kúsok si predstavíme projekt hardinfo, ktorého domovskú stránku nájdeme na adrese http://alpha.linuxmag.com.br/~leandro/hardinfo/. K úspešnému skompilovaniu budeme potrebovať knižnice GTK vo verziových radách 1 alebo 2, s čím bude súvisieť i spôsob buildu
make gtk1
resp.
make gtk2
výsledkom kompilácie, ktorá prebehne skutočne bezproblémovo je binárka hardinfo1 (resp hardinfo2), ktorá je nástrojom pre prezereanie informácií, ktoré zodpovedajú často primárnym zberným nástrojom lspci, lsusb, setserial ... pekne pohromade však na jedinom mieste. Kto je na výsledok zvedavý - ten iste očakáva screenshot s výsledkom. Nuž na čo otáľať - tu je.
5. Záver
Úlohou dnešného príspevku nebolo vyčerpať všetky dostupné možnosti, tých by bolo v tomto prípade neúrekom, ale ukázať základné smery, ktorými je možné uberať sa pri riešení tejto problematiky. Poukázali sme na najbežnejšie riešenia, ktoré budú iste vhodnou inšpiráciou pre mnohých.