Portál AbcLinuxu, 1. května 2025 07:13
Stručný popis všech dostupných karet/čipsetů, zhodnocení kvality hardwaru a podpory v Linuxu. Postup zprovoznění a konfigurace. Užitečné utility.
Na téma WiFi v Linuxu bylo již nápsáno mnoho stran, dokonce bych řekl, že psaní dalších je nošením dříví do lesa. Bohužel se ale zdá, že je zde stále řada lidí, kteří nejsou schopni si relevantní informace najít na internetu v diskuzních fórech a pomocí Googlu. Nebo ve snaze ušetřit koupili nekvalitní kartu a pak se v diskuzích ptají, co s tím. Právě jim je určen tento článek.
Představte si situaci, že máme počítač s Linuxem a rozhodli jsme se připojit do WiFi sítě. První, v podstatě nejdůležitější, krok je vybrat správný typ. Jak už je v Linuxu zvykem, není ani tak důležitý výrobce jako spíš použitý čipset. Čipsetů je na trhu celá řada. My se budeme zabývat těmito:
Hned v úvodu radši uvedu, se kterými kartami jsem měl tu čest a se kterými ne. Jednou jsem instaloval CISCO do PCI, od té doby jede bez jediného zásahu. ORINOCO jsem měl v ruce, ale v notebooku nemám ovladač, takže nic. ACX100 máme jednu v naší síti. Realtek jsem měl v ruce, ale v Linuxu jsem ho preventivně ani nezkoušel. Atmel, admtek a ralink jsem neviděl, pouze jsem se zeptal pana Googla a prohledal jsem diskuze na www.czfree.net. 626tek (Prism 2.5) jsem viděl dost, spokojeně nám jich v síti vrní skoro 10. S čipsetem Prism 54 jsem se zatím nesetkal, takže opět pomohl pan Google a czfree.
Jak už jsem se zmínil výše, tak PCI kartu Cisco jsem v Linuxu instaloval jen jednou, takže pokud se dopustím nějakých chyb, prosím případné znalce, aby mě opravili v diskuzi.
Jednalo se vlastně o PCMCIA kartu v redukci do PCI. To se dělávalo dříve, dnes se tohoto modelu drží už asi jen Cisco a Orinoco/Avaya/Lucent (jedna a tatáž firma známá pod různými názvy). Provedení PCMCIA má své nesporné výhody i nevýhody. Výhoda je celkové krytí v plechu, nevýhodou zase větší nahuštění součástek na sebe (věřím ale, že to není problém Cisca ani Orinoca, to jen u těch levných karet) a pravděpodobně vyšší výrobní cena. Možná někdo ocení kvalitu Cisca nebo jejich pozáruční servis, my se ale bavíme o připojení našeho domácího počítače, případně o nějakém AP, kde nemusí být zajištěna stoprocentní dostupnost. Z uvedených důvodů jsem ani na českých webech nenašel zmínku o možnosti regulace výkonu na těchto kartách, což je věc, bez které se dnes těžko obejdete. Použití této karty tak připadá v úvahu snad jen pokud se vám čistě náhodou válí v šuplíku.
Dříve velice oblíbené karty, vynikají svojí spolehlivostí a výbornou citlivostí. K dispozici jsou ale pouze v PCMCIA provedení, což použití v PCI slotu poněkud prodražuje. Občas lze narazit na tyto karty i za cenu kolem 800 Kč, musíte mít štěstí. Šušká se, že poslední modely mají i regulaci, ale valná většina karet Orinoco, které se používají, regulaci nemá, takže opět velké mínus. Další mínus je nutnost použití pigtailu se speciálním (=drahým) konektorem, což ji opět prodražuje. Linuxový ovladač funguje, jak má. Zejména kvůli chybějící regulaci a dražšímu nákupu nedoporučuji ani tuto kartu.
Tento čipset je přítomen ve velice oblíbených externích AP D-Link DWL-900AP+ a TP-Link TL-WA200+. Kvalitou příjmu/vysílání se drží někde uprostřed pole. Má jakousi nedodělanou pseudoregulaci (10, 12, 15, 17dBm). Snaha se sice cení, ale moc použitelné to není. Čipset se honosí podporou 802.11b+, tedy 22Mbit. V případě PCI varianty mám zkušenosti s velmi levnou kartou TP-Link TL-WN250+, která o sobě dokonce tvrdí, že umí 44Mbit, ovšem pouze ve Windows. Linux 44Mbit zatím neumí a tuto kartu stejně identifikoval jako obecnou kartu s čipsetem acx100 s podporou 22Mbit. Výhodou je open-source ovladač, který se vcelku zdařile vyvíjí. Reverzní inženýrství je IMHO trestné i u nás.... Trpí řadou dětských problémů, ale věřím, že za čas budou vychytané. Běžela mi přes dva měsíce na trvale zatížené lince (cca 256kbit trvale, čas od času naplno - 985kbps) bez jediného škobrtnutí. V jiném, značkovém, jinak absolutně stabilním, počítači po dvou hodinách i slabého provozu přestala komunikovat. Po návratu do původního zase jede. Linuxový ovladač (možná i karta sama) nepodporuje regulaci výkonu. Její koupi v současné době ještě nedoporučuji. Uvidíme, jak se ovladač popasuje s regulací výkonu a stabilitou. Pak by to mohla být zajímavá volba.
Tato karta sice patří k nejlevnějším, ale také k nejhorším kartám vůbec. Záporů je hned několik: nedokumentovaný hardware, obecně nízká kvalita čipsetu, absence regulace výkonu, výrobci ve snaze udělat kartu s levným čipsetem ještě levnějsí šetří i na oplechování a všem možném. VF část těchto karet bývá mizerná. Snaží se součástky dát co nejblíž k sobě, což při jejich kvalitě provedení rozhodně není dobrý nápad. Tady pochopitelně záleží na výrobci, ale viděl jsem jak PCI kartu tak externí krabičku a v podstatě to bylo totéž, jedním slovem hrůza. Realtek dodává binární ovladače pro Linux (rozuměj pro konkrétní verzi RedHatu s konkrétním jádrem). Zprovoznění tohoto ovladače je obecně považováno za zázrak. Také je k dispozici open-source NDIS wrapper, což je program umožňující nahrávání Windows ovladačů. Resumé je jasné, tuto kartu rozhodně nebrat.
Co jsem se dočetl o HW krabičkách, tak atmel se prý připojí zase jenom k atmelu, je to ale nepotvrzená informace a týká se WiFi krabiček. PCI karta se pod Windows k 626ce v Linuxu připojí. Čili zdroj možných problémů. Celý Google zná pouze dvě PCI karty s tímto čipsetem: Askey WLH020 a Edimax EW7125. Doporučuju "prohledat internet" na "EW7125". Atmel se jednoznačně zaměřuje na USB. A že je USB WiFi docela špatný nápad a v Linuxu obzvlášť, snad není potřeba zdůrazňovat, to snad jen pro notebooky s nefunkčním PCMCIA slotem.
I o těchto kartách pan Google a czfree.net docela mlčí nebo mlží. Výrobce prý uvolnil zdrojáky ovladačů, které vcelku v pohodě fungují. Jakousi obskurní metodou to prý jde donutit k regulaci výkonu. Link jsem nenašel. A prý má naprosto mizernou citlivost. Kvalitu karet lze odvodit z diskuzí na www.czfree.net a tahle je tedy podle mého soudu buď nic moc nebo zatím málo vyzkoušená. Takže taky radši nebrat.
Vyskytují se i jiné varianty tohoto čipsetu. V ruce jsem ji neměl, na internetu lze najít, že s dodávaným ovladačem od fy. Minitar ve formě zdrojáků spolupracuje v pohodě. Ty jsou pod nějakou privátní licencí zakazující snad cokoliv vyjma kompilace. Nevím, jestli v dohodě s firmou Minitar, nebo bez ní, ale existuje GNU GPL ovladač na bázi toho od Minitaru, k nalezení zde: http://sourceforge.net/projects/rt2400. Neumí AP mód a regulaci výkonu. Fyzickým zástupcem je např. ASUS WL-130b, bohužel podle obrázku vypadala dost levně. Někdo píše, že má lepší příjem než 626ka, jiný píše, že je vhodná pro windows klienty s dobrým signálem. Řekl bych, že možná stojí za vyzkoušení, ale nevím nevím. A bez regulace... V této super levné cenové kategorii bych se radši asi přiklonil k acx100.
Čipset Prism má mezi všemi ostatnímí jedno specifikum. V PCMCIA provedení je k dispozici od vícero výrobců, ale v PCI provedení jsou pouze dvě: Alphawave P24-PCI a Zcom XI-626. P24 byla ke koupi někdy před rokem, ale vzhledem k horšímu krytí a nutnosti novějšího PCI slotu o ni nebyl moc velký zájem a dnes je nesehnatelná. Na trhu tak zbývá jediný, zato však plnohodnotný, zástupce XI-626. 626ka má vše, co je potřeba. Má regulaci výkonu v plném rozsahu, má poměrně kvalitní VF část (někdo tvrdí, že Orinoco je citlivější, další, spolu se mnou, mají přesně opačnou zkušenost), je plně dokumentovaná, a tudíž k ní existuje spolehlivý, plnohodnotný open-source ovladač. Dokonce vlastně dva (hostap a wlan-ng). Má oplechování po celé kartě. A jako jediná umí spolehlivě s ovladačem hostap i AP/master mód. Dřívější problémy se stabilitou jsou již dávno minulostí, sám provozuji několik AP s 626kou několik měsíců bez jediného problému. Spolu s cenou 1546 Kč s DPH se z ní stává jasná a neoddiskutovatelná volba.
Název Prism 54 není zcela přesný, existujě několik variant tohoto čipsetu: Indigo, Frisbee, Javelin, Xbow, GT, Duette. Původně se vyskytoval v kartě XG-900, to by byla dobrá volba, kdyby se ještě dala koupit. Prý díky neshodám firmy Zcom a ZcomMax se XG-900 přestala dovážet do ČR. Dnes je k dipozici XG-901, která ale pořádně nefunguje, straší v ní. Parametry by měly být podobné jako u XI-626, karty jsou dokonce na první pohled úplně stejné. XG-901 umí 802.11 a/b/g. Lze koupit kartu SMC 2802W, která by podle všeho měla být identická jako XG-900, firemní obrázek na to ovšem nevypadá. Dále také Ovislink WL-5400pci, ta vypadá přesně jako 626/900/901. Existuje pro ně čistokrevný open-source ovladač i s regulací výkonu. Ovšem vzhledem k nízkému zájmu o 54Mbit technologii, problémy s rušením a malým dosahem tyto karty příliš nedoporučuji. Snad jen pokud opravdu vyžadujete 54Mbit technologii.
Za jasného vítěze klání jsem označil XI-626, takže:
Poslední verze hostapu (0.2.4) se skládá ze čtyř balíčků: hostap-driver, hostap-utils, hostapd, wpa_supplicant. Možná jsem zpátečník, ale já i dnes používám verzi 0.1.0. A to hned ze tří důvodů: je na ni patch od Jirky Boháče, neobsahuje bug zvaný wifi0 a mám ji ověřenou na téměř deseti 626kách a jedné picmicce. Hostap dnes už prostě nepadá. Následující popis se tedy vztahuje k verzi 0.1.0, nicméně jsem si jistý, že bude fungovat i k ostatním verzím, ve většině případů bude nastavení iwconfigem fungovat i pro ostatní karty.
Hostap po resetu karty ztratí některé nastavení (power, sensitivity, rate a retry). Tento patch zajistí opětovné nahození těchto parametrů po resetu karty. Patch najdete na http://www.jikos.cz/~jbohac/hostap/. Na domovské stránce je napsáno, že patch nespolupracuje s některými novějšími firmwary, tak si zkontrolujte firmware vaší karty nebo nepoužívejte patch a obnovení hodnot dejte např. do skriptu spouštěného cronem jednou za hodinu.
Hostap vždy vytvářel síťovku wlan0, poslední verze však nejen mně vytvořila wlan0 a wifi0 zároveň. Nastavení obou se z části překrývá, z části ne. To je minimálně poněkud nepřehledné. Na stanici to lze ignorovat, ale na routeru bych se z toho zbláznil.
patch -p1 <hostap-driver-0.1.0-psrrr-0.2.patch
|
make
a pro
jádra 2.6 příkazem make 2.6
. Ke kompilaci hostapu musíte
mít zdrojáky současného jádra v /usr/src/linux
, pochopitelně
stačí symlink../driver/modules
a najděte soubory (.o
pro 2.4,
.ko
pro 2.6):
hostap.ko
hostap_pci.ko
hostap_plx.ko
hostap_cs.ko
hostap_crypt_wep.ko
/lib/modules/2.x.x/kernel/net
a spusťte
depmod -ae
. Z pci, plx a cs stačí vybrat ten, který
budete potřebovat. V tomto okamžiku je ovladač zkompilovaný a
nainstalovaný, po modprobe hostap_pci
by měl najít PCI
kartu a ta by měla fungovat. Avšak nepředbíhejme.make
, za chvilku to bude
hotové./usr/sbin
. Tyto podpůrné programy se nám hodí např. při
skenování vzduchu, při zjišťování informací o kartě apod. Toť vše.Přiznám se, že funkce démona hostapd mi zatím zůstala utajena. Z dokumentace plyne, že poskytuje rozšířené bezpečnostní funkce, tj. 802.1X, externí radius server pro autentizaci MAC a dynamickou změnu WEP klíčů. Kompilace je stejná jako v případě hostap-utils.
Kompilace je hotova. V závislosti na vaší distribuci zajistěte nahrávání
modulu hostap_pci nebo hostap_plx pro pcmcia kartu v plx adaptéru nebo
nastavte pcmcia služby, aby hotplug poznal vaši kartu a přiřadil k ní
ovladač hostap_cs. Např. pro Slackware dejte do souboru
/etc/rc.d/rc.netdevice
řádek
modprobe hostap_pci
. Nastavení je pro všechny typy karet
identické.
iwconfig wlan0 mode managed
|
Jistě jste si všimli poněkud krkolomného způsobu nastavení výkonu. Netvrdím, že je to jediný možný způsob, i Wireless Tools k tomu mají své nástroje, ale zkušenosti ukazují, že ne vždy fungují, nebo že je ovladač ignoruje. Další informace a zejména hodnotu XY naleznete zde: http://www.czfree.net/forum/showthread.php?threadid=2882. Zkoušejte postupně hodnoty od -22,5dBm až do 9.5dBm. K hodnotě, kdy spojení začne uspokojivě chodit, přidejte ještě tři řádky dolů navíc pro případ špatného počasí a uvedené číslo zapište jako XY. Nepřekračujte však limity ČTÚ. Pokud se vám spojení nedaří, pořiďte si lepší anténu, doporučuji plechové paraboly s plechovkou. Čím větší průměr, tím užší vyzařovací úhel, lepší příjem a menší šum.
iwconfig wlan0 mode master
|
To je v podstatě vše, co se týče nastavení karty. Další věci, jako je routování, firewall, QoS atd. nejsou cílem tohoto článku.
Wifimon je bashový skript, který ukazuje v konzoli sílu signálu v podobě
teploměru. V případě karty v režimu klient ukazuje sílu signálu od AP a v
režimu AP ukazuje sílu signálu od jednotlivých klientů i s jejich MAC a IP
adresou. Pomocí přepínače -col
lze výstup obarvit a pomocí
-oneline
zestručnit. Wifimon má i řadu dalších užitečných
přepínačů. Více informací u autora:
http://www.simandl.cz/stranky/linux/wifimon/wifimon.htm
Stumbler je program, který vypisuje okolní APčka, která jsou v dosahu. Tenhle je určitě nejjednodušší, jaký existuje:
Spuštění skenování:
#!/bin/bash
|
Skenování ukončete Ctrl-C a ješťě spusťte následující skript pro navrácení karty do výchozího stavu. Skenování funguje zároveň s připojenými klienty, odpojí je pouze skript pro ukončení skenování, pravděpodobně kvůli "mode managed". Můžete zkusit "mode master", třeba to bude fungovat. Radši ale doporučuji kartu znovu nahodit do provozního stavu vaším skriptem pro WiFi kartu.
Ukončení skenování:
#!/bin/bash
|
Z dalších programů je užitečný např. wavemon, což je Céčkový
konzolový program. Zobrazuje několik teploměrů, více informací o kartě
apod. Domovský web umřel, další informace najdete na www.simandl.cz. Dříve jsem ho používal,
ale wifimon spolu s iwconfig wlan0
mi bohatě
stačí.
Dále např. kismet, což je sofistikovaný nástroj pro skenování síťí a řadu dalších činností. Po několikadenní kompilaci (!) se mi ho ani nepodařilo rozchodit. Vzhledem k výše uvedeným skriptům jsem se o to ani dále nesnažil.
Dále např. WeWiMo je skript, který generuje WWW stránku se seznamem připojených klientů podobně jako wifimon. Ke stáhnutí zde: http://www.mobilnews.cz/honza/en_prog_linux_wewimo.php.
iwconfig wlan0 key s:abcde
Pozadal jsem roberta aby to v clanku opravil.
Zdenek
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:\ /cvsroot/madwifi co madwifia precist si README. v lspci se hlasi jako
0000:02:04.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)(nehlede na povoleni pomoci tlacitka na notebooku). Pokud na notebooku bezely/bezi Wokna, je velmi vhodne v nich nechat WiFi povolenou v driveru a jen ji vypnout tlacitkem (udajne ma Linuxovy driver problem s detekci takto disablovane karty, byt je povolena tlacitkem - neovereno). =>
make make install modprobe wlan/wlan.ko modprobe ath_hal/ath_hal.ko modprobe driver/ath_pci.ko iwlist scan ifconfig ath0 iwconfig ath0vysek z /etc/network/interfaces (Debian-specific):
iface ath0 inet dhcp wireless_mode Managed wireless_essid essid_nasi_site wireless_key hrozne_dlouhej_a_hnusnej_hexa_retezeckde wireless_PARAMETR odpovida
iwconfig ath0 PARAMETR HODNOTAFunguje jak v otevrenem (Managed) prostredi, tak s WEP klicem - oboji osobne overeno.
Cell 01 - Address: 00:02:2D:BE:B6:C9 ESSID:"" Mode:Master Channel:0 Bit Rate:1Mb/s Bit Rate:2Mb/s Bit Rate:5.5Mb/s Bit Rate:11Mb/s Quality:0/100 Signal level:-236 dBm Noise level:-256 dBm Encryption key:offJak se mám ale k takové síti připojit? iwconfig eth1 essid "" nezabírá... :/
[root@teepee network-scripts]# iwconfig eth1 eth1 unassociated ESSID:off/any Mode:Managed Channel=0 Access Point: 00:00:00:00:00:00 Bit Rate=0kb/s RTS thr:off Encryption key:off Power Management:off
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.