Linux/Linuxové nástroje pro detekci hardware
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
editovatUdev 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.
lshw
editovatUká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
lspci
editovatVypisuje ú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)
lsusb
editovatPodobně 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ě.
lsmod
editovatTaké 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