- Code: Alles auswählen
1420 root 932 S ./chilli -c /etc/chilli.conf
1424 root 932 S ./chilli -c /etc/chilli_fon.conf
1427 root 372 R ps
Ich habe dummerweise hier nur begrenzte Experimentiermöglichkeiten, da ich kein LAN habe (nur WLAN). Außerdem habe ich keinen gültigen Linus-Status, da meine Fonera wohl zu lange off gewesen ist.
Könnte das jemand von euch vielleicht auch ausprobieren?
Und vorher habe ich das hier gelesen und bin um genau zu sein nach dieser Anleitung vorgegangen.
EDIT am 5. Juli 2007 um 13:32:
So. Habe das nochmal getestet. Funzt wunderbar. Hotsplots und FON_AP sind aktiviert und beides läuft über den OpenVPN-Server von Hotsplots. Zudem befindet sich die Fonera auf dem Balkon (musste nur 5 V Gleichspannung auf den Balkon bringen) und hängt über WLAN an meiner FBF 7050 dran.
Damit ist aber wirklich der ganze RAM der Fonera ausgeschöpft. Nur 1 MB bleibt übrig.
- Code: Alles auswählen
Mem: 12608K used, 1004K free, 0K shrd, 884K buff, 5224K cached
Load average: 0.03 0.14 0.10
PID USER STATUS RSS PPID %CPU %MEM COMMAND
2088 root R 396 2080 3.8 2.9 top
2049 root S 1504 1 0.0 11.0 openvpn
1929 root S 1008 1 0.0 7.3 chilli
1739 root S 944 1 0.0 6.9 wpa_supplicant
1925 root S 932 1 0.0 6.8 chilli
2079 root S 560 1870 0.0 4.1 dropbear
2080 root S 472 2079 0.0 3.4 ash
195 root S 396 1 0.0 2.9 logger
1 root S 392 0 0.0 2.8 init
2002 nobody S 384 1 0.0 2.8 dnsmasq
213 root S 336 1 0.0 2.4 syslogd
1870 root S 336 1 0.0 2.4 dropbear
1861 root S 316 1 0.0 2.3 crond
216 root S 276 1 0.0 2.0 klogd
197 root S 236 1 0.0 1.7 init
224 root S 228 1 0.0 1.6 hotplug2
41 root SW 0 1 0.0 0.0 mtdblockd
182 root SWN 0 1 0.0 0.0 jffs2_gcd_mtd3
3 root SW< 0 1 0.0 0.0 events/0
4 root SW< 0 1 0.0 0.0 khelper
2 root SWN 0 1 0.0 0.0 ksoftirqd/0
Die Ausgabe von iwconfig:
- Code: Alles auswählen
eth0 no wireless extensions.
lo no wireless extensions.
wifi0 no wireless extensions.
ath0 IEEE 802.11g ESSID:"FON_AP" Nickname:""
Mode:Master Frequency:2.422 GHz Access Point: 00:18:84:1B:XX:XX
Bit Rate:0 kb/s Tx-Power=17 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=23/127 Signal level=-64 dBm Noise level=-87 dBm
Rx invalid nwid:204 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
br-wan no wireless extensions.
ath1 IEEE 802.11g ESSID:"hotsplots_AP" Nickname:""
Mode:Master Frequency:2.422 GHz Access Point: 06:18:84:1B:XX:XX
Bit Rate:0 kb/s Tx-Power=17 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=23/127 Signal level=-64 dBm Noise level=-87 dBm
Rx invalid nwid:211 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
ath2 IEEE 802.11g ESSID:"FRITZ!Box Fon WLAN 7050" Nickname:""
Mode:Managed Frequency:2.422 GHz Access Point: 00:04:0E:XX:XX:XX
Bit Rate:36 Mb/s Tx-Power=17 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX Security mode:restricted
Power Management:off
Link Quality=23/127 Signal level=-64 dBm Noise level=-87 dBm
Rx invalid nwid:1577 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
tun0 no wireless extensions.
tun1 no wireless extensions.
tun9 no wireless extensions.
Der Inhalt von /etc/config/network
- Code: Alles auswählen
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
option proto static
option ipaddr 192.168.1.1
option netmask 255.255.255.0
config interface wan
option ifname 'wifi0'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.178.200'
option netmask '255.255.255.0'
option gateway '192.168.178.1'
option dns '192.168.178.1'
config interface wifi
option ifname ath0
option proto none
Der Inhalt der /etc/config/wireless
- Code: Alles auswählen
config wifi-device wifi0
option type atheros
config wifi-iface
option device wifi0
option network wifi
option mode ap
option ssid FON_AP
option hidden 0
option txpower 18
option encryption none
config wifi-iface
option device wifi0
option network wifi
option mode ap
option ssid hotsplots_PsychoMantis
option hidden 0
option txpower 18
option encryption none
config "wifi-iface" ""
option device 'wifi0'
option mode 'sta'
option ssid 'FRITZ!Box Fon WLAN 7050'
option hidden '0'
option encryption 'psk'
option network 'wan'
option isolate '0'
option txpower '18'
option bgscan '0'
option key 'XXXXXXXXXXXXX'
Der Inhalt der chilli.conf die für Hotsplots zuständig ist:
- Code: Alles auswählen
radiusnasid PsychoMantis
radiussecret ***
uamallowed www.paypal.de,www.paypal.com,www.paypalobjects.com
uamserver https://www.hotsplots.de/auth/login.php
radiusserver1 radius1.hotsplots.de
radiusserver2 radius2.hotsplots.de
dns1 192.168.44.1
dns2 192.168.44.1
net 192.168.44.0/24
dynip 192.168.44.0/24
dhcpif ath1
uamlisten 192.168.44.1
domain none
interval 86400
Und letzendlich der Inhalt der /etc/chilli_fon.conf die für FON (die habe ich bis auf den Eintrag "dhcpif" so aus der Original-FON-Firmwar übernommen) zuständig ist:
EDIT: Wie ich später rausgefunden habe, ist es vorteilhaft, die chilli.conf jedesmal beim Neustart des Routers neu zu generieren. Über ein Script (siehe Freewlan-Addons) wird der radius-Server von FON nach der neusten und aktuellsten chilli.conf abgefragt.
Ich habe daher das meiste von den freewlan-addons abgeschaut und mache es so:
Ich habe einen Ordner /etc/usrbin/ erstellt und habe dort die ausführbare Datei chilli_radconfig rein getan. Dann wird bei jedem Neustart des Routers noch die ausführbare Datei, die ich "fonchilli" benannt habe, die auch in /etc/usrbin/ liegt ausgeführ. Diese hat den folgenden Inhalt (das meisten aus freewlan-addons):
- Code: Alles auswählen
TMP_C=/tmp/chilli.conf
touch $TMP_C
MAC=$(ifconfig wifi0 | head -n1 | awk '{print $5}'|sed s/:/-/g)
MAC=${MAC:-fon}
/etc/usrbin/chilli_radconfig \
-c /dev/null \
--radiusserver1="radius01.fon.com" \
--radiussecret="garrafon" \
--adminuser="chillispot" \
--adminpasswd="chillispot" \
--radiusnasid="$MAC" \
--dhcpif ath0 \
> $TMP_C
sed -e s/eth1/ath0/g $TMP_C > /tmp/chilli.tmp
mv /tmp/chilli.tmp $TMP_C
chilli --conf $TMP_C --radiusnasid="$MAC" --dns1 192.168.182.1
Mit dem Befehl "sed -e s/eth1/ath0/g $TMP_C > /tmp/chilli.tmp" wird der Parameter dhcpif in der chilli.conf geändert (Normal steht dort eth1 oder so. Man braucht aber den richtigen (bei mir ath0) Parameter.) und als /tmp/chilli.tmp gespeichert, um dann (in der vorletzten Zeile) wieder in "/tmp/chilli.conf" umbenannt zu werden. Schließlich (in der letzten Zeile) wird die chilli mit der für FON gültigen chilli.conf gestartet.
Dann liegt unter /etc/usrbin/ bei mir noch die Datei "FON-heartbeat", die stündlich über Crontabs ausgeführt wird. Deren Inhalt habe ich bei dd-wrt gefunden und um das nötigste kastriert. Das sorgt dafür, dass bei FON die La Fonera als online angezeigt wird:
- Code: Alles auswählen
WLMAC="$(ifconfig | grep HWaddr | grep wifi0 | awk '{print $5}')"
MAC="$(ifconfig | grep HWaddr | grep eth0 | awk '{print $5}')"
echo "mode='start' wlmac='$WLMAC' mac='$MAC' fonrev='2' firmware='0.7.1' chillver='1.0' thclver='1.0' device='fonera'" | dbclient -T -p 1937 -i /etc/usrbin/key openwrt@download.fon.com > /tmp/.thinclient.sh
Damit es funzt, muss die Datei key auch in diesem Ordner liegen.
Letzendlich gibt es bei mir noch im Ordner /etc/init.d/ die ausführbare Datei "custom-user-startup" mit folgendem Inhalt:
- Code: Alles auswählen
START=90
mkdir /tmp/.ssh/
cat /etc/usrbin/known_hosts >> /tmp/.ssh/known_hosts
/etc/usrbin/fonchilli
/etc/usrbin/FON-heartbeat
Damit das funzt, muss man die Datei known_hosts im Ordner /etc/usrbin/ haben.
Die ersten Zeilen dieser Datei sorgen dafür, dass die Fonera ohne zu murksten auf den Fon-Server zugreifen kann, in der vorletzten Zeile wird dann die fonchilli ausgeführt und in der letzten Zeile wird der Fon-heartbeat einmal ausgeführ (später wird er dann ja per crontabs ausgeführt).
Ich übernehme keine Garantie, dass es so funktioniert, jedenfalls funzt es so bei mir.
Übrigens hoffe ich, dass mir keiner böse ist, wenn ich sein geistiges Eigentum gestohlen habe, aber so weit ich weiß, darf man das tun, wenn man die Quelle angibt.


