OpenWRT Router http://wiki.openwrt.org/inbox/airties-wav281 leider nicht multiple ssid fähig (kein node und ap gleichzeitig) Flashen a) Image bauen Kamikaze scheint bei mir nicht zu funktionieren, daher Attitude Adjustment. $ wget http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/lantiq/danube/OpenWrt-ImageBuilder-lantiq_danube-for-linux-i486.tar.bz2 $ cd Open... $ make image PROFILE="ARV4520PW" PACKAGES="-atm-tools -linux-atm -kmod-atm -kmod-ltq-dsl-danube -kmod-ltq-dsl-firmware-b-danube -kmod-pppoe -kmod-ppp -kmod-pppox -kmod-pppoa -ppp-mod-pppoa -ppp-mod-pppoe -ppp -kmod-ltq-dsl -ltq-dsl-app -wpad-mini -br2684ctl olsrd freifunk-common freifunk-firewall horst ip community-profiles luci luci-app-olsr luci-mod-freifunk luci-app-meshwizard meshwizard luci-app-olsr-services luci-app-olsr-viz olsrd-mod-arprefresh olsrd-mod-nameservice olsrd-mod-watchdog" $ du -h bin/lantiq/*.image b) Fertiges Image nehmen * Nico * http://cholin.spline.de/stuff/openwrt-lantiq-danube-ARV4520PW-squashfs.image * mit olsr, freifunk und luci aber ohne jeglichen dsl treibern (genau das image aus dem make befehl aus a) * Mirko * https://nanl.de/files/openwrt/airties/openwrt-lantiq-danube-ARV4520PW-squashfs_34033.image * "Firmware Version: OpenWrt Barrier Breaker r34033 / LuCI Trunk (trunk+svn9414)" * Felix * http://sacknage.ursa.uberspace.de/openwrt-lantiq-danube-ARV4520PW-squashfs.image * ohne olsr, mit openvpn als freedomfighterbox (Freifunk VPN!) Wenn uboot geflashed wurde, einfach WLAN-Button gedrückt halten und Router anmachen. Nach 10 Sekunden sollte über 192.168.1.1 ein Webserver antworten über den der Router geflashet werden kann (z.Bsp. mit openwrt-lantiq-danube-ARV4520PW-squashfs.image) Wichtig ist hier, dass nicht Chrome sondern zum Beispiel Firefox benutzt wird. Konfigurieren Beispiele * https://github.com/gitmo/freifunk * https://wiki.freifunk.net/Freifunk_freedom_fighter_box Anleitung a) Allgemeine Vorgehensweise mit Webinterface und Meshwizard Siehe https://github.com/gitmo/freifunk#readme Config file diff's im git-repo https://github.com/gitmo/freifunk/commit/a4a52cb263792928a64b30768c54602e60c07e36 b) [Historisch] Erster Link zu Zwingli-Nordost mit dem Airties 1. OLSR Community Freifunk-Berlin per Webinterface gesetzt 2. /etc/config/network nach Phillips config [1] angepasst 3. /etc/config/wireless nach Phillips config [2] angepasst WICHTIG: in /etc/config/wireless: option bssid '02:CA:FF:EE:BA:BE' (gleiche BSSID wie Zwingli-Node) [4. Und nicht vergessen WLAN interface zu enablen *hust*] [1] https://github.com/gitmo/freifunk/blob/master/tm-inet-box/config/network [2] https://github.com/gitmo/freifunk/blob/master/tm-inet-box/config/wireless c) Freedom Fighter Box 1. LAN 4 mit Rechner verbinden 2. telnet 10.0.0.1 passwd (password ändern) auf dem rechner 3. scp freifunk_yourName.crt root@10.0.0.1:/etc/openvpn/freifunk.crt 4. scp freifunk_yourName.key root@10.0.0.1:/etc/openvpn/freifunk.key auf dem router 5. /root/config hostname latitude longitude email 6. LAN 3 über LAN mit anderem Router verknüpfen (7. /bin/openwifimap-update ausführen um direkt auf der Karte zu erscheinen - sonst erst das nächste Mal um 15Uhr) 8. Verbinung zu LAN4 kappen 9. Have fun [LAN 4 - mgmt - nur von hier kann via ssh oder luci auf den router zugegriffen werden LAN 3 - wan - hier kommt das Internet rein LAN 2/1 - freifunk internet /etc/init.d/repairWifi - script um Fehler des Routers mit der WIFI mac adresse zu umgehen /usr/bin/openwifimap-update - script um Knoten auf Karte anzeigen zu lassen; davor system.@system[0].contact,longitude und latitude setzen /root/config - config script setzt hostnamen (wird zu hostname-anon) setzt den WLAN namen auf hostname.anon.freifunk.de kann falls angegeben lon lat n OpenWifiMap siehe http://wiki.apache.org/couchdb/HTTP_Document_API und https://github.com/andrenarchy/openwifimap Zum regelmäßigen Update Script benutzen: https://github.com/gitmo/freifunk/blob/master/openwifimap-update.sh Um seinen initial Knoten bekannt zumachen, reicht folgender Einzeiler: $ curl -X PUT -H 'Content-Type: application/json' -d @simpl0n.json http://map.pberg.freifunk.net/openwifimap/simpl0n.olsr --trace-ascii - == Info: About to connect() to map.pberg.freifunk.net port 80 (#0) == Info: Trying 81.169.174.233... == Info: connected == Info: Connected to map.pberg.freifunk.net (81.169.174.233) port 80 (#0) => Send header, 230 bytes (0xe6) 0000: PUT /openwifimap/simpl0n.olsr HTTP/1.1 0028: User-Agent: curl/7.24.0 (x86_64-apple-darwin12.0) libcurl/7.24.0 0068: OpenSSL/0.9.8r zlib/1.2.5 0084: Host: map.pberg.freifunk.net 00a2: Accept: */* 00af: Content-Type: application/json 00cf: Content-Length: 238 00e4: => Send data, 238 bytes (0xee) 0000: {"type":"node","hostname":"simpl0n.olsr","longitude":13.4628,"la 0040: titude":52.5058,"interfaces":[{"name":"simpl0n.olsr","ipv4Addres 0080: ses":["104.130.3.88"]}],"neighbors":[{"interface":"simpl0n.olsr" 00c0: ,"id":"zwingli-nordost.olsr","quality":2.34}]} == Info: upload completely sent off: 238 out of 238 bytes <= Recv header, 22 bytes (0x16) 0000: HTTP/1.1 201 Created <= Recv header, 22 bytes (0x16) 0000: Server: nginx/1.0.10 <= Recv header, 37 bytes (0x25) 0000: Date: Tue, 12 Feb 2013 14:19:57 GMT <= Recv header, 41 bytes (0x29) 0000: Content-Type: text/plain; charset=utf-8 <= Recv header, 24 bytes (0x18) 0000: Connection: keep-alive <= Recv header, 66 bytes (0x42) 0000: Location: http://map.pberg.freifunk.net/openwifimap/simpl0n.olsr <= Recv header, 44 bytes (0x2c) 0000: ETag: "1-b4dc6a07d64468bac904736d8d7c872e" <= Recv header, 20 bytes (0x14) 0000: Content-Length: 75 <= Recv header, 32 bytes (0x20) 0000: Cache-Control: must-revalidate <= Recv header, 2 bytes (0x2) 0000: <= Recv data, 75 bytes (0x4b) 0000: {"ok":true,"id":"simpl0n.olsr","rev":"1-b4dc6a07d64468bac904736d 0040: 8d7c872e"}. {"ok":true,"id":"simpl0n.olsr","rev":"1-b4dc6a07d64468bac904736d8d7c872e"} == Info: Connection #0 to host map.pberg.freifunk.net left intact == Info: Closing connection #0 Entbricken R64 / R80 überbrücken serielle Verbindung aufmachen: $ screen /dev/ttyUSB0 115200 > ROM VER: 1.0.3 > CFG 04 > Read EEPROMX > X > UART U-Boot RAM-Image hochladen (Image aus Trunk für ARV4519PW) selbst gebaut, da die Online-Versionen nicht loady als Befehl haben - Ethernet funktioniert leider nicht) $ cat arv4519pw_ram-u-boot.asc | sudo tee /dev/ttyUSB0 > /dev/null Image: http://cholin.spline.de/stuff/openwrt-lantiq-arv4519pw_ram-u-boot.asc > U-Boot 2010.03-svn34185 (Nov 16 2012 - 07:26:28) > Board: ARV4520PW > SoC: Danube/Twinpass/Vinax-VE V1.3, DDR Speed 111 MHz, CPU Speed 111 MHz > DRAM: 32 MB > ARV4520 => Schreibschutz für Boot-Speicher aufheben protect off 0xB0000000 +0x1FFFF > Un-Protected 9 sectors Speicher leeren erase 0xB0000000 +0x1FFFF > ......... done > Erased 9 sector U-Boot konfigurieren um Image übertragen zu können loady Flash-U-Boot-Image übertragen (in Screen, sb ist im Packet 'lrzsz' zu finden) ^A : exec !!.| sb --ymodem /path/to/u-boot-bootstrap.bin Image: http://downloads.openwrt.org/attitude_adjustment/12.09-rc1/lantiq/danube/uboot-lantiq-arv4520PW_flash/u-boot-bootstrap.bin > ## Ready for binary (ymodem) download to 0x81000000 at 115200 bps... > CSending: u-boot-bootstrap.bin > Ymodem sectors/kbytes sent: 0/ 0kRetry 0: NAK on sector > Retry 0: NAK on sector > Bytes Sent: 65536 BPS:1891 > Sending: > Ymodem sectors/kbytes sent: 0/ 0k > Transfer complete > dem - CRC mode, 514(SOH)/0(STX)/0(CAN) packets, 5 retries > ## Total Size = 0x00010000 = 65536 Bytes Image in den Flash-Speicher kopieren cp.b 0x81000000 0xB0000000 0x10000 > Copy to Flash... done Speicher wieder schreibschützen protect on 0xB0000000 +0x1FFFF Router ausschalten und R64 / R80 entlöten. Danach kann sollte der Router wieder funktionsfähig sein und es kann zum Beispiel über den HTTP-Server OpenWRT geflashed werden. DHCP und OLSR: 1. Block von mind. 16 IPs registrieren zb. 104.130.3.96-104.130.3.111 2. Network address, Subnet, min/max Host IP für DHCP-Range berechnen http://jodies.de/ipcalc?host=104.130.3.96&mask1=28&mask2= =>Network: 104.130.3.96/28 Broadcast: 104.130.3.111 HostMin: 104.130.3.97 HostMax: 104.130.3.110 Hosts/Net: 14 2.a Oft passen die vorregistrierten Adressen nicht perfekt ins /28-Netz -> noch mehr registrieren bisset reicht ;) 3. Router bekommt die erste mögliche IP 104.130.3.97 4. DHCP vergibt den Rest .98-.110 -> 13 Adressen 5. Offset vom Anfang des Ranges 104.130.3.98 zu 104.0.0.0 berechnen so wie hier http://wiki.openwrt.org/doc/uci/dhcp#assigning.dhcp.pool.to.a.subnet.in.a.large.network 130*2^16 + 3*2^8 + 98[*2^0] = 8520546 Check: root@simpl0n:~# ipcalc.sh 104.130.3.96 255.0.0.0 8520546 12 IP=104.130.3.96 NETMASK=255.0.0.0 BROADCAST=104.255.255.255 NETWORK=104.0.0.0 PREFIX=8 START=104.130.3.98 END=104.130.3.110 # Als Netzmaske wird hier fälschlicherweise 255.0.0.0 als Basis genommen zu der dann der Offset berechnet wird. Das liegt daran das aus /etc/config/dhcp immer eine /tmp/etc/dnsmasq.conf generiert wird, die automatisch die Netmask vom 'wlan0' interface übernimmt. 6. /etc/config/dhcp editieren config dhcp 'wireless0' option interface 'wireless0' option start '8520546' option limit '12' option leasetime 1h list 'dhcp_option' '1,255.255.255.240' # Letzte Zeile zwingt letztendlich dnsmasq dazu nicht die 255.0.0.0 (subnet vom OLSR) herauszugeben, sondern nur die Maske für unser /28 Netz. 7. HNA4 route in /etc/config/olsrd announcen config Hna4 option netaddr '104.130.3.96' option netmask '255.255.255.240' # Alles 3x überprüfen!!! ;) Hier gibts noch ne schöne kleine Grafik: http://wiki.freifunk.net/Freifunk_FirmwaKnotenre/FFF_%28English%29#Using_DHCP_with_an_OLSR_Network . HNA4 und Subnet-Problematik werden nicht erwähnt. Liegt wohl daran dass das Setup dort NAT macht? Eventuell könnte man seine unbedarften DHCP-User NAT'en um sie ein wenig vor dem "gefährlichen" OLSR zu schützen.