Ausländische WLan-Karte mit deutschen Kanälen betreiben
CRDA kontrolliert unter Linux dass keine länderspezifischen Regulierungen in Bezug auf Frequenzen und Sendeleistungen verletzt werden. In seltenen Fällen kann dies aber zu Problemen führen. Ist zum Beispiel im EEProm der WLAN-Hardware das Flag 'US' gesetzt wird CRDA Linux dazu zwingen Hardware nach den amerikanischen Regularien zu betreiben. In diesem Fall werden bei einer 802.11abg Hardware die Kanäle 12 und 13 fehlen.
Wichtig: Wer vorsätzlich gegen national geltendes Recht verstößt macht sich strafbar. Ich übernehme keine Verantwortung wenn ihr dieses Tutorial missbraucht!
Herausfinden auf welche Region die WLAN-Karte gebrandet ist
Ein Blick in die Ausgabe von dmesg verrät:
[ 8.400271] ath: EEPROM regdomain: 0x0 [ 8.400286] ath: EEPROM indicates default country code should be used [ 8.400301] ath: doing EEPROM country->regdmn map search [ 8.400320] ath: country maps to regdmn code: 0x3a [ 8.400336] ath: Country alpha2 being used: US [ 8.400349] ath: Regpair used: 0x3a
Hier wird von der Hardware ath: Country alpha2 being used: US vorgegeben.
Installieren der später gebrauchten Pakete
Für das spätere kompilieren der Pakete muss zuerst folgendes installiert werden.
apt-get install build-essentials linux-headers-$(uname -r) pyton python-m2crypto libgcrypt11-dev
Herunterladen und entpacken der benötigten Quellen
Zuerst werden die Quellen von crda und wireless-regdb benötigt.
cd /usr/src wget http://wireless.kernel.org/download/crda/crda-1.1.2.tar.bz2 wget http://linuxwireless.org/download/wireless-regdb/wireless-regdb-2011.04.28.tar.bz2 (Hier bitte nocheinmal Prüfen ob dies der letzte Stand ist)
Danach müssen die beiden Archive entpackt werden:
tar xzf crda-1.1.2.tar.bz2 tar xzf wireless-regdb-2011.04.28.tar.bz2
Erstellen der neuen regularity.bin
Nun muss in das Verzeichnis /usr/src/wireless-regdb-2011.04.28 gewechselt und die Datei db.txt bearbeitet werden. Ich habe hier den Inhalt des Eintrages 'country DE' nach 'country US' kopiert.
Ein anschließendes
make
erzeugt eine regularity.bin und ein Zertifikat.
Das Zertifikat verhindert, dass fremde regularity.bin Dateien verwendet werden.
Die Datei regularity.bin muss nun nach /usr/lib/crda kopiert werden.
mkdir -p /usr/lib/crda cp regulatory.bin /usr/lib/crda/
Kompilieren von CRDA
Danach in das Verzeichnis /usr/src/crda-1.1.2/pubkey wechseln und das originale Zertifikat löschen.
rm linville.key.pub.pem
Mit dem Befehl
cp /root/.wireless-regdb-root.key.priv.pem /usr/src/crda-1.1.2/pubkeys/linville.key.pub.pem
das von wireless-regdb erzeugte Zertifikat für das kompilieren in das pupkey Verzeichnis kopieren.
Nun muss crda noch kompiliert und installiert werden.
make make install reboot
Test
Nach einem reboot sollten nun alle deutschen Kanäle zur Verfügung stehen. Dies kann mit folgendem Befehl kontrolliert werden.
iwlist wlan0 chan
Info
Dieses Tutorial ist aus meiner Frage im Forum entstanden. http://debianforum.de/forum/viewtopic.php?f=30&t=136791