Přeskočit na obsah

Linux/Linuxové nástroje pro detekci hardware

Z Wikiknih

Odkaz na stránky které sem odkazují

Charakteristickým rysem unixových systémů je způsob, jakým pracují s hardware. Podle zásady - "Vše je soubor", zpřístupňuje jádro hardwarová zařízení přes uzlové body, které jsou speciálními soubory. Skrz ně probíhá komunikace aplikace se zařízením.

Zpočátku se tyto uzlové body - zařízení - vytvářely ručně. Ovšem s narůstajícím množstvím dostupného hardware vyvstala potřeba vytvořit způsob, kterým by bylo možné spravovat tyto body dynamicky podle potřeby. Jako první řešení se u jader řady 2.4 objevil DevFS. Neřešil však problém zcela uspokojivě, proto se od jádra 2.6.18 začal uplatňovat jiný systém - udev.

Operační systém Název souborového systému Výchozí přípojný bod Autor Poznámka
Linux >=2.4 && <2.6.18 devfs /dev Richard Gooch Implementován plně v jádře. ZASTARALÝ: Doporučuje se místo něj používat udev.
Linux >=2.6.15 udev /dev Greg Kroah-Hartman, Kay Sievers a Dan Stekloff Je implementován převážně v (user space), informace o zařízení se sbírají ze sysfs. Vytvořené přípojné body mohou být ukládány na klasický souborový systém, ale také do virtuálního souborového systému (tmpfs).

Pozn.: Tabulka byla částečně převzata z anglické Wikipedie

Fungování udev

[editovat | editovat zdroj]

Udev zachytává z jádra informace o zařízení a podle seznamu pravidel provádí příslušné akce. Vytváří, nebo naopak ruší vytvořená zařízení, spouští skripty, atp. Aby však jádro mohlo generovat příslušné informace, musí v něm být zavedeny odpovídající moduly. Pokud tomu tak není, tak jsme sice schopni zjistit informace o hardware, ale k vytvoření zařízení nedojde.

Ukázka výpisu..

     *-cpu
          description: CPU
          product: Intel(R) Celeron(R) CPU 2.40GHz
          vendor: Intel Corp.
          physical id: 4
          version: 15.2.9
          slot: FC-478
          size: 2400MHz
          capacity: 4GHz
          clock: 100MHz
          capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr
pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr

Vypisuje údaje o PCI rozhraní

0000:00:00.0 Host bridge: Intel Corp. 82845G/GL[Brookdale-G]/GE/PE DRAM Controller/Host-Hub Interface (rev 03)
0000:00:01.0 PCI bridge: Intel Corp. 82845G/GL[Brookdale-G]/GE/PE Host-to-AGP Bridge (rev 03)
0000:00:1d.0 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 (rev 02)
0000:00:1d.1 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 02)
0000:00:1d.2 USB Controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 (rev 02)
0000:00:1d.7 USB Controller: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 EHCI Controller (rev 02)
0000:00:1e.0 PCI bridge: Intel Corp. 82801 PCI Bridge (rev 82)
0000:00:1f.0 ISA bridge: Intel Corp. 82801DB/DBL (ICH4/ICH4-L) LPC Bridge (rev 02)
0000:00:1f.1 IDE interface: Intel Corp. 82801DB/DBL (ICH4/ICH4-L) UltraATA-100 IDE Controller (rev 02)
0000:00:1f.3 SMBus: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus Controller (rev 02)
0000:00:1f.5 Multimedia audio controller: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller (rev 02)
0000:01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 PRO] (rev 01)
0000:01:00.1 Display controller: ATI Technologies Inc: Unknown device 5940 (rev 01)
0000:02:08.0 Ethernet controller: Intel Corp. 82801BD PRO/100 VE (CNR) Ethernet Controller (rev 82)

Podobně jako lspci vám lsusb vypíše všechna zařízení připojená přes USB

Bus 004 Device 002: ID 03f0:6602 Hewlett-Packard PhotoSmart 320
Bus 004 Device 001: ID 0000:0000  
Bus 003 Device 001: ID 0000:0000  
Bus 002 Device 003: ID 0c76:0005 JMTek, LLC. USBdisk
Bus 002 Device 002: ID 055f:0219 Mustek Systems, Inc. BearPaw 2400 TA Plus
Bus 002 Device 001: ID 0000:0000  
Bus 001 Device 001: ID 0000:0000  

Z výše uvedeného lze vyčíst, že lze jádro kompilovat pro procesor Pentium4 Intel(R) Celeron(R). Ten je na desce s chipsetem Intel(R) 82845G PCI a ISA rozhraním Intel(R) 82801. IDE rozhraní podporuje UltraATA-100, zvuková karta je integrovaná AC'97, grafická karta je ATI Radeon 9200 PRO a síťová karta integrovaná na desce je rovněž Intelovské provenience.

Z USB zařízení je používán fotoaparát, flash disk a skener. V případě že by se mohly připojovat i jiná zařízení, zahrneme při konfiguraci jádra raději podporu i pro ně.

Také je dobré si spustit příkaz lsmod, abychom viděli, jaké jaderné moduly jsou používány (a připojit si předtím do systému vše, co chceme používat). Na příkladu je například vidět, že modul truecrypt potřebuje ke své činnosti dm_mod, což je podpora multi-device, tedy RAID/LVM, bez které by nefungoval. (No jo, divil jsem se, proč mi truecrypt po kompilaci vlastního jádra nechce nastartovat;-) )

Module                  Size  Used by
truecrypt             151940  0
dm_mod                 44952  1 truecrypt