Fonera
FLASHING
NEW: Gargoyle Flash Fon Utility
Gargoyle project includes a Flash Fon utility that works similarly as EasyFlash, but works on MacOSX, Linux and Windows
Mac OS X
Since EasyFlash isn't available for Max OS X, we do this manually (FON2200 + ethernet only):
1. Set IP address of your Mac:
sudo ifconfig en0 192.168.1.254
antifuchs says: this does not work reliably on Leopard. What does work is: In Network.prefpane, Make a new network location, make inactive every device except ethernet; set ethernet config to "Manual", configure IP address 192.168.1.254. Then select that location as your current location.
2. Enable tftp
Alternative 1: Get TFTPServer, point it to the directory that contains the firmware; it needs to be world-read/writable; you can let that program fix permissions for you.
Altenative 2: Use the tftp server which comes with Mac OS X:
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
3. Copy OpenWRT files to tftp dir:
These files are typically what you want to use:
- openwrt-atheros-2.6-vmlinux.lzma
- openwrt-atheros-2.6-root.squashfs
4. Upload the firmware
Two methods here: The lazy approach, and flashing it manually. I recommend doing it by hand at least once to be able to debug the lazy approach if it goes wrong.
Flashing manually
Get access to RedBoot
See also http://forum.openwrt.org/viewtopic.php?pid=63402.
echo -e "\003" > break
fonera an den strom, wenn das 2te led zu blinken beginnt:
nc -vvv 192.168.1.254 9000 < break;
danach ctrl+c
telnet 192.168.1.254 9000
-> You should now have a "RedBoot>" prompt. If not, rinse and repeat.
Flash new kernel and filesystem images in RedBoot:
In RedBoot (assuming you configured the machine with the tftp server to 192.168.1.254):
fis init load -r -b 0x80041000 openwrt-atheros-2.6-vmlinux.lzma fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7 load -r -b 0x80041000 openwrt-atheros-2.6-root.squashfs fis create -l 0x06F0000 rootfs
Reboot
You are now where EasyFlash ends. Wait for the boot to finish and telnet to 192.168.1.1 and set a root password.
Flashing automatically (the lazy approach)
Get this expect script (written by Antifuchs and Marius): https://whatever.metalab.at/user/kintel/fonera/flashit.expect
Usage:
1. Start script: ./flashit.expect
Optionally, you can give kernel and squashfs files as parameters if they don't have the default filenames
2. Connect and power up the Fonera
3. When you see stuff happening, go for lunch.
When the script exits (and you see no error message), you can safely reboot the box and telnet to 192.168.1.1
Windows/Linux (easyflash):
- Flashing Utility
http://download.berlin.freifunk.net/fonera/
- Linux/Unix: ap51-flash-fonera-1.0-42
- Windows: ap51-flash-fonera-gui-1.0-42.exe
Passendes Tool runterladen.
- System Images
http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/
die beiden runterladen.
Jetzt kommts..
- Linux/Unix
sudo ifconfig eth0 192.168.1.254
Vistanetsh interface ipv4 set address "LAN-Verbindung" static 192.168.1.254 255.255.255.0 192.168.1.1
- Fonera mit Ethernet-Patchkabel an eth0 anstecken.
- Linux/Unix
./ap51-flash-fonera-1.0-38 eth0 openwrt-atheros-2.6-root.jffs2-64k openwrt-atheros-2.6-vmlinux.lzma
unter Windowsap51-flash-fonera-gui-1.0-38.exe
als Administrator ausführen - Strom an den Fonera anstecken
Der Fonera schickt nun beim hochfahren einen ARP request raus, das Flashtool wartet darauf und tut dann seine Magie.
Der ganze Flashvorgang dauert rund _15_ Minuten.
Zuerst sieht man die IP vom Router
Dann steht da was von
Loading RootFS .. Writing RootFS.. (10 Minuten) Loading Kernel .. Writing Kernel.. Rebooting Device..
Fertig.
Danach hat der Fonero die IP 192.168.1.1 und ist über TELNET erreichbar. Happy hacking.
Flashen direkt aus laufendem OpenWRT
Wenn OpenWRT bereits läuft kann man auch direkt auf eine neue Version updaten bzw. diese über die grade laufende Version drüber flashen.
ABER VORSICHT! Das geht nur wenn die neuen Kernel- und Dateisystemimages gleich groß oder kleiner sind als die die aktuell installiert sind, sonst ist nicht genug Platz frei! In dem Fall müssen die Partitionen ohnehin neu angelegt werden - also eine der anderen hier beschriebenen Updateroutinen verwenden!!
Zuerst per SSH einloggen, dann:
cd /tmp scp user@host:/path/to/openwrt-atheros-vmlinux.lzma . scp user@host:/path/to/openwrt-atheros-root.squashfs . mtd -e vmlinux.bin.l7 write openwrt-atheros-vmlinux.lzma vmlinux.bin.l7 mtd -e rootfs write openwrt-atheros-root.squashfs rootfs
Danach einfach neu starten (Stecker ziehen), per Telnet einloggen und den SSH Zugang neu aktivieren (siehe unten)
set password after flashing
telnet 192.168.1.1 passwd ***** ***** exit
ssh root@192.168.1.1 yes *****
note: after flashing, the fingerprint of the router changes. in that case delete the old entry for 192.168.1.1 from your ssh known_hosts file:
[open ~/.ssh/known_hosts with your favourite editor] [remove the line starting with 192.168.1.1] ssh root@192.168.1.1 yes *****
On Windows you can use PuTTY for the SSH connection.
CONFIGURATION
default network configuration files
file | description |
---|---|
/etc/ethers | specifying static IP addresses via DHCP |
/etc/dnsmasq.conf | configures DNS masquerading |
/etc/hosts | maps IP-address to hostname |
/etc/networks | maps network addresses to network name |
/etc/protocols | maps protocol to port number; see IANA for a complete list |
/etc/config/dhcp | configures dhcp server |
/etc/config/dropbear | configures ssh |
/etc/config/firewall | configures firewall |
/etc/config/network | configures network interfaces |
/etc/config/system | |
/etc/config/wireless | configures wireless lan adapter |
/etc/ethers
This file maps a given MAC-address to an IPv4-Address via DHCP. Example:
# desktop xx:xx:xx:xx:xx:xx 192.168.1.10 # another desktop xx:xx:xx:xx:xx:xx 192.168.1.20 # laptop xx:xx:xx:xx:xx:xx 192.168.1.30 # LAN xx:xx:xx:xx:xx:xx 192.168.1.31 # WLAN
Hint: You get the MAC-address using ipconfig -all
on Windows or by using ifconfig
on Linux/Unix.
/etc/hosts
maps IP address to full domain names, local domain names, and local hostnames. Example:
127.0.0.1 www.mydomain.com localhost.lan www.lan localhost www 192.168.1.4 ftp.mydomain.com ftp.lan ftp
Hint: you can also use a hosts file to block bad sites; see also custom hosts files
/etc/networks
configures the names and addresses of networks. this file is used by the route command. Example:
default 0.0.0.0 # default route - mandatory loopnet 127.0.0.0 # loopback network - mandatory wlan 192.168.0.0 # local wireless network lan 192.168.1.0 # local wired network
/etc/protocols
Usually you don't touch that.
/etc/config/network
See OpenWRT Kamikaze Manual for setting up basic network configuration
- Example 0:
Routing between Ethernet and WLAN
config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface eth0 option proto static option ipaddr 10.0.0.10 # bridge option netmask 255.255.255.0 # network subnet mask option gateway 10.0.0.138 # dsl/cable router option dns 10.0.0.138 # dns server
Note: Routing is enabled by default, so you usually don't have to configure routing tables.
- Example 1:
Bridging Ethernet and WLAN
config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface bridge option ifname eth0 wifi0 # which interfaces to bridge option type bridge option proto static option ipaddr 10.0.0.10 # bridge option netmask 255.255.255.0 # network subnet mask option gateway 10.0.0.138 # dsl/cable router option dns 10.0.0.138 # dns server
- Example 2:
Bridging multiple Ethernet ports
config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface lan option ifname 'eth0 eth1 eth2' option type bridge option proto static option ipaddr 10.0.0.10 # bridge option netmask 255.255.255.0 # network subnet mask option gateway 10.0.0.138 # dsl/cable router option dns 10.0.0.138 # dns server
/etc/config/wireless
See OpenWRT Kamikaze Manual for setting up basic wireless network configuration
- Example 0:
Routing Ethernet and WLAN without encryption
config wifi-device wifi0 option type atheros option channel 11 # select best channel between 1 and 11 option country at # austria option disabled 0 # wlan enabled # you can also use the reset button to enable/disable option agmode 11bg # 802.11bg option distance 20 # maximum wlan reach in meters config wifi-iface option device wifi0 # 2nd interface is called "ath0" option network bridge # which settings from /etc/config/network option mode ap # access point mode option ssid "My Fonera" # name of the router option hidden 0 # ssid broadcast option encryption "none" # no encryption
Note: Routing is enabled by default, so you usually don't have to configure routing tables.
- Example 1:
Bridging Ethernet and WLAN with WPA2-PSK-encryption
config wifi-device wifi0 option type atheros option channel 11 # select best channel between 1 and 11 option country at # austria option disabled 0 # wlan enabled # you can also use the reset button to enable/disable option agmode 11bg # 802.11bg option distance 20 # maximum wlan reach in meters config wifi-iface option device ath0 # 2nd interface is called "wifi0" option network bridge # which settings from /etc/config/network option mode ap # access point mode option ssid "My Fonera" # name of the router option hidden 1 # disables ssid broadcast option encyption psk2 # wpa2-psk option key *********** # google 'wep key generator' to get a key
- Example 2:
Configure WDS
- WDS Access Point (WDS-AP; first node)
config wifi-device wifi0 option type atheros option channel 11 # select best channel between 1 and 11 option country at # austria option disabled 0 # wlan enabled # you can also use the reset button to enable/disable option agmode 11bg # 802.11bg option distance 20 # maximum wlan reach in meters config wifi-iface option device ath0 # 2nd interface is called "wifi0" option network bridge # which settings from /etc/config/network option mode ap # access point mode option ssid 'My Fonera' # name of the WDS-AP option bssid '00:xx:xx:xx:xx:xx' # MAC-Address of the WDS-AP option hidden 0 # enables ssid broadcast option encyption psk2 # wpa2-psk option key *********** # google 'wep key generator' to get a key
- WDS-Station (WDS-STA; all other nodes)
config wifi-device wifi0 option type atheros option channel 11 # select best channel between 1 and 11 option country at # austria option disabled 0 # wlan enabled # you can also use the reset button to enable/disable option agmode 11bg # 802.11bg option distance 20 # maximum wlan reach in meters config wifi-iface option device ath0 # 2nd interface is called "wifi0" option network bridge # which settings from /etc/config/network option mode ap # access point mode option ssid 'My Fonera' # name of the WDS-AP option bssid '00:xx:xx:xx:xx:xx' # MAC-Address of the WDS-AP option hidden 0 # enables ssid broadcast option encyption psk2 # wpa2-psk option key *********** # google 'wep key generator' to get a key
- Notes on WPA2-Encryption
For WPA2-Encryption you must install hostapd on Access Points
ipkg install hostapd
as well as wpa-supplicant on WDS-Stations
ipkg install wpa-supplicant
FIXME: Encryption also may only work on interface ath0
. Please share your experience here.
INSTALLING PACKAGES
After you have successfully configured a connection with the internet, you can load additional software packages using ipkg.
FIXME: If you compiled OpenWRT yourself, you can register your computer as the package repository
- install packages
ipkg update ipkg list | more ipkg install <packagename>
- uninstall packages
ipkg list_installed ipkg remove <packagename>
- Fette ipkg repositories
- http://downloads.openwrt.org/kamikaze/packages/mips/
- http://ipkg.k1k2.de/packages/
MESH NETWORKS
For Mesh Networks you have to install one of
- olsrd (may produce routing loops, but standardized and most widely deployed)
- batman (also included in the robin firmware; does not scale for big networks; beta)
- babel (also works with wired connections; beta)
on all your nodes.
FIXME: write a howto
CLONING
How to clone (or backup) a Fonera:
1. Get this expect script (written by Marius): https://whatever.metalab.at/user/kintel/fonera/clone.expect
2. Set up your fonera so you can ssh in without a password:
- Copy your computer's ~/.ssh/id_dsa.pub (or equivalent) to the Fonera
- On the Fonera:
# cp id_dsa.pub /etc/dropbear/authorized_keys # chmod og-r /etc/dropbear/authorized_keys
3. Run the script on your computer
4. The backup is now made to the files clone.lzma and clone.squashfs. These can be used to reflash another fonera to become an identical copy.
Assumptions: The fonera lives at 192.168.1.1, the root prompt contains a "#", a normal openwrt is flashed on it.
NB! This has not been tested very well, so use with caution until it's been more quality assured.
Bugreports are welcome :)
kyrah says: I've tried cloning my Fonera (running OpenWrt) using these instructions, resulting in #fail: Looks like the rootfs_data partition is overwritten when firstboot is run. Must investigate further.
SOFTWARE
- software zum flashen + packages ..
- http://download.berlin.freifunk.net/fonera/
- Buildchain
- http://wiki.openwrt.org/BuildingPackagesHowTo
svn co https://svn.openwrt.org/openwrt/tags/kamikaze_7.09
- http://forum.openwrt.org/viewtopic.php?pid=31794#p31794
- Fette ipkg repositories
- http://downloads.openwrt.org/kamikaze/packages/mips/
- http://ipkg.k1k2.de/packages/
HARDWARE
- SD card am fonera?
- http://www.larsen-b.com/Article/262.html
- http://phrozen.org/fonera.html
- GPIO kernel modul
- http://mobileaccess.de/fonera/gpio/
- http://daubau.net/proc_gpio/
- Fertig compiliertes GPIO kernelmodul im feschen .ipk + src
- Media:Kamikaze_7.09_GPIOkmod.tar.gz