iw/Reg-Database

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Ein Terminal öffnen

  3. ⚓︎ Einen Editor öffnen

  4. ⚓︎ Root-Rechte

Inhaltsverzeichnis
  1. Eigene Reg-Database bauen
    1. Vorbereitungen
    2. Datenbank anpassen und bauen
    3. Einstellungen testen
  2. Einstellungen zurücksetzen
  3. Links

Wiki/Icons/Oxygen/network-wireless.png 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 🇩🇪 ⮷

Eigene Reg-Database bauen

Vorbereitungen

Benötigte Werkzeuge installieren [1]:

Befehl zum Installieren der Pakete:

sudo apt-get install build-essential git libnl1 libnl-dev libgcrypt11 libgcrypt11-dev python-m2crypto 

Oder mit apturl installieren, Link: apt://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 

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)

Datenbank anpassen und bauen

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 

Einstellungen testen

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.

Einstellungen zurücksetzen

Wieder auf die Standard-Einstellungen wechseln:

sudo iw reg set DE