XI626 hostap a regulace vykonu

<small>Z PVwiki</small>

17 duben 2004

1) část první - trocha teorie

Chceme-li pro komunikaci ve vysokofrekvenčním pásmu 2.4 GHz využívat veřejného vzdušného prostoru, musíme počítat s tím, že nepatří jen nám a jsou dána omezení provozu Všeobecným oprávněním ČTÚ VO-R/12/08.2005-34 .

O výkladu znění se vedla dlouhá debata na fóru CZfree. V licenci jsou uvedeny dva limity, které je nutno dodržet:

  • Maximální ekvivalentní izotropický vyzářený výkon (E.I.R.P.) je 100 mW. Tato mez musí být dodržena při libovolné kombinaci výstupního výkonu vysílače a použité antény.
  • U systémů s rozprostřeným spektrem využívajících techniku přímé sekvence (tj. DSSS) nesmí spektrální hustota E.I.R.P. překročit hodnotu -20 dBW / 1MHz.

Po přepočtech dostaneme dvě omezující hodnoty:

  • 20 dBm výkonu celkového
  • 10 dBm/MHz výkonu špičkového

Podle výrobce by měla mít karta Z-Com XI626 typicky 8 dBm/MHz při 15 dBm celkového výkonu, což při 10 dBm/MHz dělá odhadem 17 dBm. Špičkový výkon tedy bude pro XI626 omezujícím faktorem.

Pouhé 2 dB však nestačí pro dostatečnou ziskovost prakticky žádné antény, proto je nutné snížit výkon karty tak, aby se celá soustava včetně kabelů do normy vešla. Mějme vzorovou sestavu s naším oblibeným typem karty, 6m VF koaxu, síto a nějaký ten konektor:

parabolické síto ......... 16 dB
6m H125 (-0.33/m) ........ -2 dB
konektor N ............... -1 dB
pigtail .................. -1 dB
---------------------------------
celkem ................... 12 dB

Jak jsem již napsal, implicitní špičkový výkon karty XI626 je asi 8 dBm/MHz, takže špičkový výkon (přesněji řečeno hustota výkonu) soustavy se nám dostává na 20 dBm, tudíž bude nutné snížit výkon karty tak, abychom se dostali do limitu - tj. o 10 dBm níže. (poznámka: dB je vůči výkonu jednotka logaritmická, takže i když bude její hodnota záporná, výkon karty v mW je stále kladný)


2) část druhá - realita

S ovladačem HostAP máme několik možností, jak výkon karet s čipsetem Prism 2.5 regulovat. Až do verze 0.0.3 to bylo možné pomocí příkazu iwconfig $iface txpower. Od verze 0.0.4 dále však tento postup nefunguje, neboť byly příslušné funkce z modulů odstraněny. Jediným způsobem v současný verzích hostap je možnost přímě změny registrů karty v paměti ovladače. Registry jsou obecně jakousi konfigurační tabulkou, ve které ovladač zaznamenává aktuální konfigurační parametry hardwaru a pomocí nich jej také konfiguruje.

S regulací výkonu u hostapu souvisí dva konkrétní registry, respektive funkce, které řízení obhospodařují. Implicitní stav je takový, že si ovladač sám koriguje vysílací výkon karty v závisloti na konkrétních podmínkách, ale většinou se pohybuje kolem konstantní hodnoty, kterou se může karta od karty lišit. Přímým zápisem do registru lze tuto hodnotu nastavit prakticky libovolně v souladu s omezením konkrétního hardwaru, ovšem pokud tak učiníme, zjistíme, že během okamžiku je zpět původní hodnota. Toto chování má na svědomí funkce ALC - Auto Level Control. Co tedy musíme v první řadě udělat, je vypnout automatickou regulaci pomocí nástroje iwpriv.

V dřívějších verzích bylo možné použít příkazu

iwconfig $iface txpower fixed

ovšem po výše zmíněných změnách toto nefuguje, takže nastupuje řešení jiné:

iwpriv $iface alc 0

či ještě lépe

iwpriv $iface prism2_param 5 0

Tím máme zajištěno, ž se karta nebude při změnách cukat. Samotný výkon karty řídí registr č. 62, jehož hodnota samotná nám o výkonu prakticky nic nepoví. Je to hodnota pouze relativní a nebýt meření, které provedl Zdeněk Janda z CZfree komunity, nebyl by prakticky žádný způsob, jak ji převést na srozumitelnou jednotku. Převodní tabulka pro karty ZCom XI626 a Alphawave P24 je dostupná na stránkách CZfree fóra.

Z poznatků autora vyplývá typická hodnota registru 62 na jím měřené kartě přibližně 170. U mě se pohybuje kolem čísla 200 a budu-li předpokládat, že reálný vysílací výkon je pro obě karty přibližně stejný, je moje stupnice o cca 30 pseudojednotek posunuta. Vraťmě se zpět našemu příkladu a nastavme požadovanou hodnotu. Z výpočtu vyplynulo, že bude třeba snížit hranici hustoty výkonu na kartě o cca 10 dB, což provedeme následujícím příkazem:

iwpriv $iface writemif 62, 20

kde číslo 62 je adresa námi požadovaného registru a číslo 20 relativní hodnota výkonu. Bohužel, údaje dle tabulky nejsou příliš lineární a tak lze jen odhadnout, na kolik námi nastavená hodnota koresponduje se skutečností. Pro základní orientaci by to však mohlo stačit. (poznámka: bylo by dobré nastavovat výkon za chodu při aktivním spojení s AP, v případě, že může druhá osoba průběžně sledovat pokles síly signálu klienta) Aktuální hodnotu lze zpětně zjistit velice jednoduše:

iwpriv $iface readmif 62

Nyní, je-li ALC správně vypnuté, měla by námi zvolená hodnota vydržet minimálně do doby, než se karta sama zresetuje, což se občas stává převážně se starším firmwarem při hodně kolísavém signálů. V podobném případě je dobré čas od času kartu překonfigurovat třeba záznamem v cronu, ale to uz je mimo tohle téma.

Kompletní skript při spuštění PC tedy může vypadat následovně:

kód:

#! /bin/sh
IWC=`which iwconfig`
IWP=`which iwpriv`
IFACE="wlan0"
echo -n "Starting WIFI ..."

### SEKCE PRO WLAN0 JAKO KLIENT ###
$IWC $IFACE essid "one.pvfree.net"
$IWC $IFACE key s:weppassword   # nastaveni WEP key 104-bit
sleep 0.3
$IWC $IFACE mode managed
sleep 0.5
$IWP $IFACE prism2_param 5 0    # disable Auto Level Control
sleep 1
$IWP $IFACE writemif 62, 230    # stazeni vykonu na cca 4 dBm/MHz
echo " probably done"


Sleep stavy jsou nutné kvůli akceptaci nového nastavení kartou, příliš rychlé změny konfigurace ji nedělají dobře na psychiku :)

Na závěr ještě tabulka s naměřenými hodnotami registru pro kartu Z-Com XI626, převzatá ze stránek CZfree:

[registr] [dbm/1Mhz]
120       -22.5
110       -20.5
100       -18
90        -17
80        -15
70        -13.5
60        -11.5
50        -10.5
40        -8.5
30        -6.5
20        -5
10        -3.5
0         -2
250       -1.5
240       -0.5
230       1
220       2.5
210       3.5
200       5
190       6
180       7
170       8
160       9
150       9.5
140       9.5
130       9.5
Osobní nástroje