Linux E X P R E S

Facebook

Čipset ZyDAS - wifi pod FreeBSD a Linuxom

Príspevok by mal byť iba odrazovým mostíkom pre rozbehnutie malej domácej alebo firemnej wifi siete a v nijakom prípade nie je jeho cieľom popísať najrôznejšie zložité pokyny a nastavenia, ktorých - na rozdiel od jednoduchého pripojenia káblom - je vo wifi oblasti o niečo viac.


Dnes, najmä v technicky gramotnej rodine, mať v domácnosti internet a zdieľať ho s príbuznými, je už asi nutnosť. Nejeden užívateľ potrebuje pripojiť k internetu svojich blízkych z dôvodu, aby mu doslovne nesedeli "za chrbtom", keď si chcú pozrieť nejakú www stránku alebo poslať email.

Neostáva vám teda nič iné, ako ísť do obchodu a kúpiť si zariadenie, ktoré sa volá router (smerovač). Možno neodoláte ani pohľadu na bezdrôtové "krabičky" s anténkami a dopadnete rovnako ako ja.

V blízkosti môjho bydliska je jedna maličká predajňa s wifi technológiami, kde som sa prišiel opýtať na nejaký USB wifi adaptér - ale s takým čipsetom, o ktorom som mal dopredu informácie, že bude bežať pod FreeBSD. Ak hovorím o FreeBSD, myslím tým pravdaže aj Linux, pretože všeobecne platí, že keď už nejaký hardvér beží pod BSD, v Linuxe ho rozchodíte vždy.

Objednal som si teda maličký wifi adaptér WL-2203S-V3. Hneď, ako som prišiel domov, v emailovej schránke som si našiel správu od českého predajcu www.i4wifi.cz s poďakovaním za rozhodnutie si kúpiť tovar.

Maličké USB zariadenie zasuniete do ktoréhokoľvek USB slotuMaličké USB zariadenie zasuniete do ktoréhokoľvek USB slotu

Wifi adaptér som mal hneď na druhý deň a bol naozaj lacný - 13,96 Euro. Bolo k nemu pribalené aj maličké CD s ovládačmi pre všetky verzie Windows - Windows 2000, Windows 98, Windows ME, Windows XP a Windows Vista a samozrejme aj pre Linux a Mac.

Dokumentáciu na CD v PDF dokumente určenú iba pre platformu Win som pozrel iba narýchlo, pretože Windows nebolo miesto, kde som chcel adaptér využívať. Mojou vyvolenou platformou bolo prioritne FreeBSD (možno aj OpenBSD) a potom Linux.

Inštalácia wifi adaptéra s čipsetom zd1211b (USB)

Wifi zariadenie v mojom prípade, keďže chcem pomocou neho využívať internet, musí komunikovať s routerom, ktorý nemôžem obísť. V druhom rade k základnej informácii o rozchodení akejkoľvek siete patrí aj scenár, teda spôsob takej konfigurácie, akú požadujete. V mojom prípade napríklad nechcem, aby mi router vysielal SSID (identifikátor siete, ktorý sa pri skenovaní bezdrôtových sietí okolo vás zobrazí) a patria sem ešte niektoré ďalšie maličkosti.

Router a jeho nastavenie

Používam router so štyrmi portmi pre fyzické pripojenie a aj s riešením wifi - má teda anténku. Hlavný počítač je k nemu pripojený káblom a rodinní príslušníci majú k dispozícii sieť wifi - teraz koniec koncov už aj ja, ak sa rozhodnem počas jarných dažďov si sadnúť na balkón.

Router však treba nakonfigurovať, kde v nastaveniach musíte zadefinovať prístupové heslo, typ bezpečnosti, SSID atď., inak sa totiž nepripojíte.

Nastavenie routera nebolo komplikované, ale považujem za nutné o ňom informovať, pretože spojazdnenie USB wifi zariadenia (pomocou ktorého sa k routeru pripojíte a získate tak prístup k internetu) závisí pravdaže aj od tohto. Router, ktorý používam, sa konfiguruje cez webové rozhranie.

Nastavenie zariadeniaNastavenie zariadenia

K routeru sa pripojíte pomocou adresy 192.168.1.1 cez webový prehliadač a položky na ľavej strane si nastavíte podľa želania.

Zvolil som si klonovanie MAC (aby som nemusel preregistrovať MAC adresu u svojho poskytovateľa), zadefinoval som si SSID - názov (jedinečný identifikátor) pre wifi sieť, kanál (6), mód 802.11b (hoci 802.11g je rýchlejší), bezpečnosť WPA-PSK, kryptografiu AES, heslo a napokon prihlásenie k routeru pomocou DHCP (DHCP pravdaže možno aj deaktivovať).

Z bezpečnostných dôvodov som zakázal vysielanie SSID (SSID broadcast), takže moju sieť pri skenovaní nevidieť, a aktivoval som filtrovanie MAC adries, resp. aby router prijal iba tie MAC adresy wifi adaptérov, ktoré som zadefinoval.

Štandard 802.11b som zvolil zámerne kvôli inému - technologicky trochu staršiemu USB wifi zariadeniu, aby aj ono bolo využiteľné.

Adaptér s čipsetom zd1211b (USB) pod FreeBSD

Čipset ZyDAS podporujú aj iné BSD distribúcie a v OpenBSD netreba ani kompilovať jadro - adaptér iba zasuniete do USB slotu a OpenBSD ho hneď rozpozná. Adaptér som rozchodil pod verziou FreeBSD 7.1.

Všetky nižšie uvedené kroky som realizoval v rámci vlastných - užívateľských skriptov, aby bolo možné neskôr v prípade nejakého problému zvoliť iný skript a nie zakaždým editovať súbory /etc/rc.conf, /boot/loader.conf atď. pri zmene hardvéru.

Kroky pre spojazdnenie wifi adaptéra

Po nabehnutí FreeBSD do administrátorského účtu použijete príkaz kldload if_zyd. "if_zyd" je ovládač pre wifi zariadenie s čipsetom ZyDAS, ktorý má aj adaptér WL-2203S-V3, a kldload príkaz podobný modprobe v Linuxe (pre načítanie modulov do jadra).

Wifi adaptér až potom zasuniete do USB slotu. Ak to urobíte naopak, nebudete mať šťastie. Hneď nato v prvej konzole uvidíte (nie v X, ale v textovej konzole, ktorá nabehne ako prvá a kde sa z X prostredia dostanete pomocou [Ctrl-Alt-F1]) výpis podobný tomuto:

zyd0: <ZyDAS USB2.0 WLAN, class 255/255, rev 2.00/48.10, addr 4> on uhub2
zyd0: HMAC ZD1211B, FW 47.25, RF AL2230, PA 0, address 00:00:00:00:00:00
zyd0: WARNING: using obsoleted IFF_NEEDSGIANT flag
zyd0: Ethernet address: 00:00:00:00:00:00 

FreeBSD na rozdiel od Linuxu nepoužíva iwconfig (pre bezdrôtové siete), ale iba ifconfig. Ak napíšete do príkazového riadku ifconfig, uvidíte (pravdaže popri ďalších sieťových zariadení):

zyd0: flags=108802<BROADCAST,SIMPLEX,MULTICAST,NEEDSGIANT> metric 0 mtu 1500
ether 00:00:00:00:00:00
media: IEEE 802.11 Wireless Ethernet autoselect (autoselect)
status: no carrier
ssid "" channel 1 (2412 Mhz 11b)
authmode OPEN privacy OFF bmiss 7 scanvalid 60 bgscan bgscanintvl 300
bgscanidle 250 roam:rssi11b 7 roam:rate11b 1 bintval 0  

Pomocou príkazu ifconfig môžete bezdrôtovú sieť vo FreeBSD okolo vás aj skenovať: ifconfig zyd0 scan. Uvidíte siete naokolo (MAC adresy cudzích wifi zariadení sú zámerne vynulované kvôli ich osobnému charakteru):

SSID BSSID CHAN RATE S:N INT CAPS
zuzina   00:00:00:00:00:00 6  54M -50:-95 100 EPS WPA RSN
dzohny 00:00:00:00:00:00 11 54M -85:-95 100 EP
bestia    00:00:00:00:00:00 8  54M -57:-95 100 EP WPA
mish      00:00:00:00:00:00 9  54M -71:-95 100 EPS WPA

Pripojenie k routeru (DHCP) momentálne nezrealizujete, pretože autentifikácia prebieha zložitejšie a bez hesla sa vlastne ani nemôžete pripojiť. Musíte teda použiť nástroj wpa_supplicant (je pravdaže súčasťou FreeBSD), ktorý zabezpečí autentifikáciu - spojenie wpa psk, ale ďalšie informácie o autentifikácii v sieťach wifi si radšej pozrite inde, pretože sú dosť rozsiahle.

Nástroj wpa_supplicant musí mať svoj konfiguračný súbor, kde si zadefinujete heslo, typ šifrovania atď. V mojom prípade je to súbor /etc/wpa_supplicant.conf, ktorý obsahuje:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
eapol_version=1
network={
ssid="Nazov-vasej-bezdrotovej-siete"
bssid=00:00:00:00:00:00
proto=WPA
scan_ssid=1
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
identity="FreeBSD"
psk="12345"
priority=2
}

Pokiaľ niekto požaduje viac, časom si to aj tak doladí. Z tých najdôležitejších vecí vo vyššie uvedenom konfiguračnom súbore (wpa_supplicant.conf) je MAC adresa routera - „BSSID“ (hmm... azda ani nemusí byť uvedená, len sme si zadefinovali, aby router SSID našej siete nevysielal); identity je názov počítača (napr. váš notebook), ktorým sa pripojíte k routeru a ktorý (názov) ste si zadefinovali v nastaveniach routera (filtrovanie MAC adries); WPA-PSK je typ bezpečnosti; a napokon psk je heslo, ktoré pravdaže musí byť rovnaké ako heslo zadefinované v nastaveniach routera spolu s typom šifrovania (CCMP = AES, TKIP = bezpečnostný protokol).

Ďalším krokom bude pripraviť wifi zariadenie zyd0, aby mohla nastať úspešná asociácia (negociácia) cez wpa_supplicant:

ifconfig zyd0 mode 11b ssid nazov-vasej-siete channel 6 

Bez tohto úkonu sa wpa_supplicant (ktorý treba spustiť v ďalšom kroku) nesprával príliš priateľsky. Spojenie samozrejme fungovalo aj v prípade, ak som zadal namiesto mode 11b variantu mode 11g.

Predposledným krokom bude autentifikácia cez WPA:

wpa_supplicant -d -i zyd0 -c /etc/wpa_supplicant.conf 

Úspešná asociáciaÚspešná asociácia

Úspešná asociácia wifi adaptéra WL-2203S-V3 s routerom pomocou wpa_supplicant vo FreeBSD.

Je na vás, či tento proces necháte bežať v okne (aby ste mohli sledovať, čo wpa_supplicantvypisuje), alebo ho schováte na pozadie pomocou &.

Posledným krokom bude spustiť príkaz dhclient (DHCP): dhclient zyd0

Keby pripojenie k DHCP serveru vo vašom počítači automaticky nenastavilo DNS adresy vášho poskytovateľa, zadajte si ich ručne do súboru /etc/resolv.conf.

Po absolvovaní vyššie uvedených krokov nasledovala veľká radosť, pretože FreeBSD sa úspešne spojilo s DHCP serverom routera cez maličké USB wifi zariadenie a internet fungoval. V praxi to znamená, že so svojim notebookom aj vy môžete ísť na balkón alebo azda aj do pivnice (česky je to sklep, ne hospoda, pozn. red. ;-)).

Adaptér s čipsetom zd1211b (USB) pod Linuxom

Rozchodenie adaptéra WL-2203S-V3 pod Linuxom bolo ešte zložitejšie, ako som si myslel - ale možno iba kvôli tomu, že som nemal tú „správnu“ linuxovskú distribúciu. Ovládače pribalené na CD nešli skompilovať pod Ubuntu 8.10, tak som si musel všeličo naštudovať.

Wifi adaptér som ešte skúsil „oprášiť“ v staršom Debiane 4.x, ale ani tam som nemal šťastie. Napokon som sa rozhodol stiahnuť si poslednú verziu Debian 5.0 a ešte aj Slackware 12.2, kde sa to podarilo.

Ovládače pre čipset ZyDAS sú v linuxovskom jadre

V roku 2006 sa kódy ovládačov dostali aj do linuxovského jadra (2.6.18-rc1). Hoci staršie ovládače na CD pribalené k wifi adaptéru by po kompilácii mali vytvoriť modul zd1211b, dnes ovládač zd1211rw v Linuxe podporuje čipsety ZyDAS zd1211, aj ZyDAS zd1211b a Atheros ar5007ug - teda aj ten (zd1211b), ktorý je v zariadení WL-2203S-V3.

USB wifi adaptér a Debian 5.0

V konfigurácii routera netreba nič meniť. Súbor /etc/wpa_supplicant.conf možno ponechať tak, ako je uvedený v časti pre FreeBSD.

Treba otvoriť Synaptic manažér a inštalovať súbor zd1211-firmware (alebo použiť: apt-get install zd1211-firmware). Čitatelia, ktorí nepoužívajú Debian, môžu skúsiť šťastie stiahnutím firmware pre zd1211 zo stránky sourceforge.net a všetky súbory z balíčka zd1211-firmware-1.4.tar.bz2 rozbaliť a skopírovať do adresára /lib/firmware/zd1211.

Netreba zadávať príkaz modprobe, USB wifi zariadenie stačí iba zasunúť do USB slotu, čím sa automaticky aktivuje modul.

Príkaz iwconfigPríkaz iwconfig

Po zasunutí USB adaptéra do PC si príkazom iwconfig overíte, či ho systém rozpoznal (malo by sa objaviť nové zariadenie wlan0). Ďalším krokom bude

iwconfig wlan0 essid nazov-vasej-siete channel 6 

Číslo kanála (6) zodpovedá tomu, ktoré ste zadali v nastaveniach routera. Ak ste si sieť pomenovali podľa mena - napríklad Michal, príkaz bude:

iwconfig wlan0 essid Michal channel 6 

Použijete ten istý súbor /etc/wpa_suppliant.conf ako v časti pre rozchodenie tohto USB adaptéra vo FreeBSD; do príkazového riadku napíšete:

wpa_supplicant -d -i wlan0 -c /etc/wpa_supplicant.conf 

Napokon zadáte dhclient wlan0

Treba zopakovať, že ak pripojenie k DHCP serveru (router) vo vašom počítači automaticky nenastaví DNS adresy, zadajte ich ručne do súboru /etc/resolv.conf.

Takto sa mi podarilo rozchodiť wifi adaptér WL-2203S-V3 pod Debian Linuxom 5.0. V Ubuntu 8.10 rovnaké kroky, ktoré fungovali pre Debian 5.0, nezabrali - wpa_supplicant sa nedokázal asociovať s routerom. Príčin môže byť viac - možno si to vyžaduje novšiu verziu wpa_supplicant, vymeniť jadro, čomu som však už nevenoval čas.

Adaptér som rovnako rozchodil aj pod Slackware Linuxom 12.2 - so zhodnými krokmi ako pre Debian 5.0, len s tým rozdielom, že súbory firmware som nemusel dodatočne inštalovať, pretože to Slackware už urobil za mňa - možno aj vďaka jeho inteligentnejšej inštalácii, v dôsledku ktorej užívateľ dostane na pevný disk taký základ, aký mu nie vždy iné Linuxy ponúknu.

Niektoré pojmy pre bezdrôtové siete

Čo je AP?

Access point (AP) alebo prístupový bod bezdrôtovej siete (resp. wifi router, hoci nie v najpresnejšom zmysle slova) je režim buď iba samotného zariadenia alebo aj počítača so softvérom a wifi zariadením, ku ktorému sa pripoja klienti. Hoci bežný wifi adaptér (aký si kúpite pre podobné riešenie popísané v tomto článku) vždy podporuje klientský režim, už nie každý zároveň aj režim AP a režim klient pre pripojenie k prístupovému bodu (AP).

Čo je pigtail?

Prepojovací káblik z ohybného materiálu, ktorý má na konci konektor (najčastejšie RSMA) - ten sa pripojí do konektora na wifi karte (napr. PCMCIA) alebo USB adaptéra. Na druhom konci je N konektor, do ktorého ide anténka.

Čo je hostapd?

Pokiaľ sa rozhodnete prevádzkovať počítač ako wifi server, rozhodli ste sa pre režim prístupového bodu "Access Point" (AP), ktorý je iný ako režim klientský. V počítači vám potom musí bežať démon, aby sa server (AP) mohol asociovať s klientom. Užívatelia môžu maličké wifi adaptéry uviesť aj do AP režimu, ak to tieto zariadenia podporujú. K tomu im poslúži daemon hostapd (pod slobodnou licenciou), ktorý zabezpečí autentifikáciu.

wpa_supplicant

Nástroj wpa_supplicant sa používa v počítačoch - klientoch, ktoré sa autentifikujú cez WPA, WPA2 (IEEE 802.11i / RSN) s prístupovým bodom (AP). Supplicant je komponent IEEE 802.1X/WPA, ktorý zabezpečuje negociáciu pre vstup k prístupovým bodom (wifi).

iwconfig

Iwconfig je nástroj podobný ifconfig, ale je určený pre konfiguráciu bezdrôtových (wifi) zariadení (Linux). Ako vidieť v článku, v nelinuxovských systémoch funkcie pre nastavenie wifi zariadení môžu byť implementované iba do jedného nástroja (ifconfig vo FreeBSD).

ESSID alebo SSID

Názov bezdrôtovej siete, do ktorej sa pripoja klientské bunky. V Linuxe, oproti FreeBSD (SSID), iwconfig používa termín "ESSID".

Diskuze (4) Nahoru