WLAN-Regulatory: Unterschied zwischen den Versionen
Tesla (Diskussion | Beiträge) K →neu |
Tesla (Diskussion | Beiträge) |
||
Zeile 50: | Zeile 50: | ||
[ 11.050000] ath: EEPROM regdomain: 0x0 | [ 11.050000] ath: EEPROM regdomain: 0x0 | ||
[ 11.050000] ath: EEPROM indicates default country code should be used | [ 11.050000] ath: EEPROM indicates default country code should be used | ||
[ 11.050000] ath: doing EEPROM country->regdmn map search | [ 11.050000] ath: doing EEPROM country->regdmn map search | ||
[ 11.050000] ath: country maps to regdmn code: 0x3a | [ 11.050000] ath: country maps to regdmn code: 0x3a | ||
[ 11.050000] ath: Country alpha2 being used: US | [ 11.050000] ath: Country alpha2 being used: US | ||
[ 11.050000] ath: Regpair used: 0x3a | [ 11.050000] ath: Regpair used: 0x3a | ||
Version vom 22. November 2012, 14:59 Uhr
Kaum hat man das neue WLAN-Gerät ausgepackt und eingeschalten, stellt man fest: "Da fehlen ja so ca. 200 WLAN-Kanäle!?" - "Da kann ich mich ja gar nicht mit den WLANs verbinden, die hier alle so herumgeistern..."
Aber es gibt Abhilfe: Man muss nur ein Land gründen, in dem die gewünschten Kanäle freigegeben sind. Das geht ganz einfach:
Regulatory-Database muss bearbeitet werden und digital signiert:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git sudo apt-get install python-m2crypto make
Nun nur noch den Eintrag ergänzen:
vim db.txt
Beispiel:
# This is from www.bundesnetzagentur.de country 01: (1 - 9999 @ 40), (3, 60)
Ja, es muss leider mit 1 losgehen, sonst gibt es eine Fehlermeldung und
make
nicht vergessen.
Die entstehende regulatory.bin muss nun noch nach /usr/lib/crda im Router kopiert werden.
Wer sich den Aufwand nicht machen will, der kann eine fertige regulatory.bin auf dem Router herunterladen:
cd /usr/lib/crda/ rm regulatory.bin wget http://datatomb.de/mirror/stuff/regulatory.bin reboot
So, nun geht etwas mehr, es ist aber noch nicht alles freigeschaltet. Wir haben jetzt Alles freigeschaltet, was durch CRDA auf Anwendungsebene beschränkt ist. Es bestehen aber noch die Beschränkungen des WLAN-Treibers. Die jeweilige Einstellung muss von beiden Ebenen erlaubt sein. Deshalb muss jetzt OpenWrt mit anderen Einstellungen neu kompiliert werden:
make menuconfig
...und jetzt [1] -> Kernel modules -> Wireless Drivers -> kmod-ath -> Configuration -> Force Atheros drivers to respect user's regdomain settings
make
neu
CONFIG_CFG80211_INTERNAL_REGDB ist in den kernel-configs gesetzt.
ATH_USER_REGD nicht setzen.
Wichtig: in db.text nicht nur world 00 ändern und iw reg set 00 machen, sondern auch den Eintrag US ändern, wenn EEPROM auf US steht:
[ 11.050000] ath: EEPROM regdomain: 0x0
[ 11.050000] ath: EEPROM indicates default country code should be used
[ 11.050000] ath: doing EEPROM country->regdmn map search
[ 11.050000] ath: country maps to regdmn code: 0x3a
[ 11.050000] ath: Country alpha2 being used: US
[ 11.050000] ath: Regpair used: 0x3a
Dateien die zu bearbeiten sind:
- build_dir/linux-ar71xx_generic/compat-wireless-2012-09-07/net/wireless/db.txt
- build_dir/linux-ar71xx_generic/compat-wireless-2012-09-07/net/wireless/reg.c
- build_dir/linux-ar71xx_generic/compat-wireless-2012-09-07/drivers/net/wireless/ath/ath9k/init.c
- build_dir/linux-ar71xx_generic/compat-wireless-2012-09-07/drivers/net/wireless/ath/ath9k/hw.h
- build_dir/linux-ar71xx_generic/compat-wireless-2012-09-07/drivers/net/wireless/ath/regd.c
- build_dir/linux-ar71xx_generic/linux-3.3.8/drivers/net/wireless/ath/regd.c
- build_dir/linux-ar71xx_generic/linux-3.3.8/net/wireless/reg.c
- build_dir/linux-ar71xx_generic/linux-3.3.8/drivers/net/wireless/ath/ath9k/init.c
Wird ein ungültiges Land angegeben (z. B. EU), dann wird World 00 genutzt. Es kommt keine Fehlermeldung.