Fonera

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen

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/

Passendes Tool runterladen.

System Images

http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/

die beiden runterladen.


Jetzt kommts..

  1. Linux/Unix
      sudo ifconfig eth0 192.168.1.254
    Vista
      netsh interface ipv4 set address "LAN-Verbindung" static 192.168.1.254 255.255.255.0 192.168.1.1
  2. Fonera mit Ethernet-Patchkabel an eth0 anstecken.
  3. Linux/Unix
      ./ap51-flash-fonera-1.0-38 eth0 openwrt-atheros-2.6-root.jffs2-64k  openwrt-atheros-2.6-vmlinux.lzma
    unter Windows ap51-flash-fonera-gui-1.0-38.exe als Administrator ausführen
  4. 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

LCD am fonera?
http://www.lefinnois.net/wpen/index.php/2007/11/11/lcd-screen-for-la-fonera/
I2C bus?
http://www.lefinnois.net/wpen/index.php/2007/05/13/i2c-bus-for-la-fonera/
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