Diese Seite wird aktuell überarbeitet. Bitte hier keine Änderungen mehr vornehmen, sondern in Baustelle/iw/Reg-Database!
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Mit einer selbstdefinierten Regulierungsdatenbank können die Einstellungen der WLAN-Karte zum verwendeten Frequenzbereich, der Sendeleistung und der Bandbreite manipuliert werden, so dass das z.B. bei Dualband-Geräten wahlweise das 2,4GHz oder auch 5GHz-Band ausgeblendet wird.
Dies kann z.B. bei Verbindungsproblemen in WDS-System, bei denen beide Frequenzbereiche angeboten werden und wenn der Access Point für beide Frequenzbereiche eine identische MAC-Adresse verwendet, hilfreich sein. Fehler und Verbindungsunterbrechungen durch den Network-Manager bei einem automatischen Wechsel zwischen zwei Zugriffspunkten (Roaming) können so verhindert werden. Ebenso lässt sich die maximale Sendeleistung festlegen, so dass die WLAN-Karte permanent mit reduzierter Leistung arbeitet, um Akkukapazität zu sparen.
Die gesetzlichen Vorgaben zu Funkkanälen, der erlaubten Bandbreite sowie der maximal zulässigen Strahlungsleistung des jeweiligen Landes sind dabei zu beachten. Diese können bei der zuständigen Behörde, der Bundesnetzagentur, eingesehen werden.
Publikationen der Bundesnetzagentur zu den freigegebenen Frequenzen und der in der BRD zulässigen Strahlungsleistung (PDF-Dokument):
Informationsblatt zum 2,4GHz-Band
Informationsblatt zum 5GHz-Band
Benötigte Werkzeuge installieren [1]:
build-essential
git
libnl1
libnl-dev
libgcrypt11
libgcrypt11-dev
python-m2crypto
mit apturl
Paketliste zum Kopieren:
sudo apt-get install build-essential git libnl1 libnl-dev libgcrypt11 libgcrypt11-dev python-m2crypto
sudo aptitude install build-essential git libnl1 libnl-dev libgcrypt11 libgcrypt11-dev python-m2crypto
CRDA (Central Regulatory Domain Agent) herunterladen und entpacken [2]:
wget wireless.kernel.org/download/crda/crda-1.1.3.tar.bz2 tar xvf crda-1.1.3.tar.bz2
Quelle:
wireless.kernel.org
Auf neuere Versionen achten und ggf. die aktuelle auswählen!
Den Quellcode der Reg-Database über Git herunterladen:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-regdb.git
Quellen:
www.kernel.org - wireless-regdb.git
ftp.hosteurope.de - wireless-regdb (Spiegelserver)
Die Datei ~/wireless-regdb/db.txt mit einem Editor [3] bearbeiten und z.B. einen Eintrag "DX" nach dem vorhandenen Eintrag "DE" einfügen. Hier im Beispiel wird nur das 5GHz, also a-Band erlaubt. Man kann natürlich auch mehrere Konfigurationen mit den jeweils benötigten Einstellungen angelegen. Es dürfen allerdings nur freie Buchstabenkombinationen für die Ländercodes verwendet werden, also z.B. "DX", "DY" oder "DZ"!
Beispiel:
... country DE: # entries 279004 and 280006 ... (5470 - 5725 @ 40), (N/A, 500 mW), DFS country DX: # max. Sendeleistung 100mW (5150 - 5250 @ 40), (N/A, 100 mW), NO-OUTDOOR # max. Sendeleistung 200mW (5250 - 5350 @ 40), (N/A, 100 mW), NO-OUTDOOR, DFS # max. Sendeleistung 1000mW (5470 - 5725 @ 40), (N/A, 500 mW), DFS ...
Die Sendeleistung wurde hier bewusst begrenzt.
Optionen | |
Option | Auswirkung |
@ 40 | 40 MHz Bandbreite - Standard im 5GHz Frequenzband |
@ 20 | 20 MHz Bandbreite - im 2,4GHz Frequenzband kann 20MHz und 40MHz Bandbreite verwendet werden |
DFS | Dynamic Frequency Selection wählt einen freien Kanal beim Start (Standard im 5GHz-Band) |
NO-OUTDOOR | nur innerhalb geschlossener Räume zugelassen - bei Verwendung dieses Frequenzbandes im 5GHz-Bereich in Deutschland vorgeschrieben |
Das ~/crda-1.1.3/Makefile
für CRDA muss zuvor mit einem Editor [3] noch etwas angepasst werden, da die vorgegebene Pfadangabe zur Datenbank unter Ubuntu /lib/crda/ und nicht /usr/lib/crda/ ist.
# Modify as you see fit, note this is built into crda, # so if you change it here you will have to change crda.c REG_BIN?=/lib/crda/regulatory.bin ...
Das für den angemeldeten Benutzer erzeugte Zertifikat BENUTZERNAME.key.pub.pem
im Verzeichnis wireless-regdb muss nach ~/crda-1.1.3/pubkeys kopiert werden.
cp $(whoami).key.pub.pem ~/crda-1.1.3/pubkeys
Eine Kontrolle erfolgt mit:
ls -l ~/crda-1.1.3/pubkeys
In ~/crda-1.1.3/pubkeys muss sich nun das persönliche Zertifikat BENUTZERNAME.key.pub.pem
befinden. Nun kann CRDA gebaut und installiert werden. Die angepasste regulatory.bin
wird dadurch in das System eingebunden.
cd ~/crda-1.1.3 make sudo make install
Nun Zertifikat und Datenbank bauen, die vorhandene regulatory.bin
sichern und eigene kopieren [4]:
cd ~/wireless-regdb make sudo mv /lib/crda/regulatory.bin ~/regulatory_bin_original.bak sudo cp ~/wireless-regdb/regulatory.bin /lib/crda/regulatory.bin
Ist alles ohne Fehler durchgelaufen, kann man die eigene Einstellung ausprobieren. Dazu den eigens erstellten Reg-DB Eintrag auswählen und prüfen:
sudo iw reg set DX iw reg get
Ausgabe sollte sein:
country DX: (5150 - 5250 @ 40), (N/A, 20), NO-OUTDOOR (5250 - 5350 @ 40), (N/A, 20), NO-OUTDOOR, DFS (5470 - 5725 @ 40), (N/A, 26), DFS
Die Sendeleistung wird jetzt in dBm angegeben. Bei einem Scan werden nun nur noch Netzwerke im 5GHz-Band gefunden. Die maximale mögliche Sendeleistung ist auf die eingestellten Werte begrenzt.
Access Points mit identischer SSID und MAC-Adresse im 2,4GHz-Band werden so ignoriert. Fehler und Verbindungsunterbrechungen durch den Network-Manager bei einem automatischen Wechsel zwischen zwei oder mehreren Zugriffspunkten, sog. Roaming, können so verhindert werden.
Diese Revision wurde am 27. Januar 2016 23:49 von aasche erstellt.