freifunk openwrt wifi linux howto german

Balkonfunk

Nachdem fast ein volles Jahr seit Erwerb eines für den Freifunk vorgesehenen TP-Link WDR3500 verging, ist es nunmehr vollbracht: die Zelle funkt und strahlt freies WLAN in die Nachbarschaft. Da es für mich aber schwer ist, ein Ethernetkabel auf den Balkon zu legen, war der Plan, den WAN-Uplink ebenfalls über WLAN zu erledigen, was über die Howtos bisher nicht abgedeckt ist. Hier folgen meine Erfahrungen.

Ausgangslage

Mein Hausinternet wird über eine Fritz!Box zugänglich gemacht: Auto-channel, 2,4Ghz, WPA2. Ein Kabel zu legen ist keine Option: zuviele Ecken und Türen. Dicke Wände und Doppelverglasung unterbinden, dass ich mit Laptop & Co. auf dem Balkon noch WLAN-Empfang habe, daher hatte ich mir vor einigen Monaten schon einmal eine WLAN-Erweiterung gekauft: Netgear WN3100RP. Das Gerät hat zwei Stabantennen und einen Ethernet-Anschluss zur Netzwerküberbrückung. Prinzipiell hätte ich das Ding auch die Steckdose auf dem Balkon stecken können, aber weil das Gerät selbst eine Steckdose ist und mir damit zuviel Elektrik der Feuchtigkeit ausgesetzt ist, habe ich mich gegen den Outdoorbetrieb des WN3100RP entschieden.

Erster Angriff

Ich hab den WDR3500 mit der Berliner Freifunk Firmware bespielt. Der Dualbank-Router spannt für das 2,4Ghz und 5Ghz Band je einen Accesspoint und ein Adhoc-Netzwerk (für den Meshbetrieb) auf. Mein Plan war, zusätzlich dazu auf dem 2.4Ghz Interface noch einen Client für meine Fritz!Box zu konfigurieren.

Da ich dann allerdings auf den für das Interface fest konfigurierten Kanal wechseln müsste, habe ich mich für einen separates Drahtlosinterface über den USB-Port des WDR3500 entschieden. Auf der Mailingliste wurde der TL-WN722N empfohlen. Das relevante Kernelmodul ath9k_htc fehlt jedoch in der Firmware kathleen v0.1.0.

Neue Firmware und USB-Wifi einrichten

Ein neuer Kernelbuild bringt die Unterstützung für den USB-Wifidongle mit und ich habe das openwrt-ar71xx-generic-tl-wdr3500-v1-squashfs-sysupgrade.bin als neue Firmware installiert. Für die weiteren Schritte benötigt man Shell-Zugriff via SSH auf dem Router.

Nach dem Neustart konnte ich mit modprobe ath9k_htc den Treiber installieren. dmesg zeigt allerlei Wifi-Info an, die Hardware schien also erkannt. Ich erinnere mich nicht mehr, ob ich das Kernelmodul noch separat heruntergeladen habe. Wenn der modprobe Befehl nicht funktioniert, kann der Treiber manuell nachinstalliert werden:

$ opkg install http://buildbot.berlin.freifunk.net/buildbot/unstable/ar71xx/553/packages/base/kmod-ath9k-htc_3.10.49+2014-05-22-1_ar71xx.ipk

Update am 03.07.2015

Seit kathleen v0.1.1 wird das Modul stets mitgebaut, ist aber nicht im Firmware-Image enthalten. Man kann es über folgenden Befehl nachinstallieren (ggf. Versions-Zeichenkette anpassen):

$ opkg install http://buildbot.berlin.freifunk.net/buildbot/stable/0.1.2/ar71xx/packages/base/kmod-ath9k-htc_3.10.49%2b2014-05-22-1_ar71xx.ipk

Die Extrahierung des Treiberpfades für die Einrichtung des Interfaces in /etc/config/wireless habe ich wifi detect entnommen. Hier ist die Ausgabe:

root@carpfunk:~# wifi detect
config wifi-device  radio2
        option type     mac80211
        option channel  11
        option hwmode 11g
        option path 'platform/ehci-platform/usb1/1-1/1-1:1.0'
        option htmode HT20
        # REMOVE THIS LINE TO ENABLE WIFI:
        option disabled 1

config wifi-iface
        option device   radio2
        option network  lan
        option mode     ap
        option ssid     OpenWrt
        option encryption none

Mit wifi detect >> /etc/config/wireless kann die Ausgabe in die Config übernommen und anschließend mit dem Texteditor bearbeitet werden. Optionen finden sich auf der OpenWrt-Seite. Hier ist meine modifizierte Version (vorhandene Einstellungen der bereits konfigurierten Interfaces habe ich hier weggelassen):

config wifi-device 'radio2'
        option type 'mac80211'
        option path 'platform/ehci-platform/usb1/1-1/1-1:1.0'
        option channel 'auto'
        option country 'DE'
        option txpower '20'
        option hwmode '11g'
        option chanbw '20'
        option htmode 'HT20'

config wifi-iface
        option device 'radio2'
        option mode 'sta'
        option key 'mysecretkey'
        option encryption 'psk2+ccmp'
        option ssid 'MYWIFINAME'

Nach dem Neustart habe ich im Webinterface eine neue Schnittstelle hinzugefügt. Als Name der Schnittstelle habe ich wireless2 gewählt, weil ich unkreativ war. Die Frage nach Die folgende Schnittstelle abdecken habe ich mit benutzerdefinierte Schnittstelle beantwortet und wlan2 eingetragen.

Im Webinterface kann man unter Drahtlos dann seine WLAN-Client-Daten eintragen. Neustart, um sicher zu gehen, dass die die Einstellungen übernommen wurden und man auf dem Interface eine IP-Adresse von seinem Uplink-WLAN-Router bekommen hat.

Schlussendlich habe ich noch die Schnittstelle WAN bearbeitet und unter Physikalische Eigenschaften das konfigurierte Client-Drahtlosnetz statt der ethX Netzwerkschnittstelle ausgewählt. Nach dem Neustart hatte auch das FF-OpenVPN eine Verbindung und ich war glücklich.

Update am 03.07.2015

Ich hatte erst einige Zeit später bemerkt, dass mein 2.4 GHz Freifunk für Clients nicht mehr sichtbar war. Meine Befürchtung, bei meiner Bastelei vielleicht irgendeine Antenne beschädigt zu haben, hat sich nicht bewahrheitet:

Beim gestrigen Update auf die stabile kathleen v0.1.2 Firmware) war der Uplink zunächst verschwunden, weil das ath9k_htc Modul zunächst noch nachinstalliert werden musste (siehe oben).

Dafür funkte die 2.4 GHz Zelle plötzlich wieder! Auf der berlin-wireless Mailingliste gab's Abhilfe: Es ist ein »Reghack« notwendig. Die README gibt Aufschluss darüber, was zu tun ist:

$ ssh root@frei.funk
$ cd /tmp/
$ wget http://luci.subsignal.org/~jow/reghack/reghack.mips.elf
$ chmod +x reghack.mips.elf
$ ./reghack.mips.elf /lib/modules/*/ath.ko
$ ./reghack.mips.elf /lib/modules/*/cfg80211.ko
$ reboot

Außenmission

Das letzte, was noch ausstand, war die Verpackung gegen Feuchtigkeit. Nach dem Vorbild einer grandiosen Bastelanleitung habe ich Löcher für Kabelverschraubungen durch die Plastikwand gelötet. Die einzigen Verschraubungen, die der Baumarkt hatte, waren leider ohne Gummilippe und Schelle, aber ich habe entschieden, dass das auch so geht.

Der starre USB-Verlängerungsstecker musste von mir auch nach außen gelegt werden, da der Router anders nicht mehr in die Dose gepasst hätte. Vielleicht führe ich das Kabel noch wieder zurück in die Dose, damit die USB-Antenne nicht freiliegt. Ich möchte zuvor allerdings noch den Packetloss für den Uplink beobachten.

Kostenaufstellung

  • TP-Link WDR3500: 40€
  • TP-Link WN722N: 12€
  • Klickbox: 8€
  • Kabelverschraubungen: 5€
comments powered by Disqus