WLAN-Regulatory: Unterschied zwischen den Versionen
K +Kategorie |
|||
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 44: | Zeile 44: | ||
CONFIG_CFG80211_INTERNAL_REGDB ist in den kernel-configs gesetzt. | 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: | 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/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/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/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/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 | * 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. | Wird ein ungültiges Land angegeben (z. B. EU), dann wird World 00 genutzt. Es kommt keine Fehlermeldung. | ||
Zeile 59: | Zeile 75: | ||
== Links == | == Links == | ||
* http://smorgasbord.gavagai.nl/2010/09/wifi-regulatory-compliance-and-how-to-fix-it | |||
* http://wireless.kernel.org/en/developers/Regulatory | |||
[[Kategorie:Hardware]] |
Aktuelle Version vom 19. September 2014, 13:55 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.