Neo FreeRunner Wifi
From Openmoko
(→Comments) |
|||
Line 181: | Line 181: | ||
The following may be helpful in order to scan available networks : | The following may be helpful in order to scan available networks : | ||
# iwlist eth0 scan | # iwlist eth0 scan | ||
+ | |||
+ | |||
+ | [kd8ikt] | ||
+ | i found a neat lil script that scans/shows and asks for a essid/pass then fires up udhcpc (some modification required) | ||
+ | http://www.spencerstirling.com/computergeek/wireless.html | ||
+ | also sort of working on a shell script to find open nets and auto connect to them but i'm having issues | ||
[[Category:GTA02 Hardware]] | [[Category:GTA02 Hardware]] |
Revision as of 19:50, 21 July 2008
To get wlan working on your Freerunner, you can follow these steps:
1. create and edit a suitable /etc/wpa_supplicant/wpa_supplicant.conf (use your favourite search engine to find the syntax)
2. execute
ifup eth0
3. execute
wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B
(-B for running as daemon)
4. get a IP via dhcp:
udhcpc eth0
That's it, your wlan should now work!
Contents |
Using /etc/network/interfaces
Another way is to use /etc/network/interfaces
For instance, for WEP:
- Using wireless tools:
iface eth0 inet dhcp wireless-key my_wep_key wireless-essid my_essid
- Using wpa_supplicant (this allows more authentication methods).
iface eth0 inet dhcp wpa-wep-key0 my_wep_key wpa-key-mgmt NONE wpa-ssid my_essid
Using a wpa_supplicant.conf file:
iface eth0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Then just run:
ifup eth0
You'll get a lot of messages, like ioctl[SIOCSIWENCODEEXT]: Operation not supported and sed: unrecognized option `--quiet', they appear to be harmless. The "--quiet" error message can be avoided by replacing "sed --quiet" with "sed -n" in /etc/wpa_supplicant/*.sh
Known good wpa-supplicant version?
Is the 0.6.3-r1 broken? I don't get anything to work with these instructions via usage of wpa_supplicant, but WEP works via direct interfaces changes (wireless-essid/wireless-key settings).
Sample wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant eapol_version=1 ap_scan=1 # WPA2: network={ ssid="your ssid" scan_ssid=1 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP TKIP group=TKIP CCMP psk="secret key" priority=50 } # WPA: network={ ssid="your_ssid" scan_ssid=1 psk="secret key" priority=10 } # WEP: network={ ssid="your_ssid" scan_ssid=1 key_mgmt=NONE wep_tx_keyidx=0 wep_key0="secret key" priority=8 } # Open: network={ ssid="your ssid" key_mgmt=NONE priority=5 }
A very ugly /etc/init.d/wlan startscript
#!/bin/sh # # wlan This shell script starts and stops wlan. # # processname: wlan # Source function library. #. /etc/rc.d/init.d/functions # "written" by HdR RETVAL=0 prog="wlan" # test -f /etc/default/$prog && . /etc/default/$prog start() { echo -n "Starting $prog: " ifconfig eth0 up wpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B sleep 10 udhcpc eth0 RETVAL=$? return $RETVAL } stop() { # Stop daemons. echo -n "Shutting down $prog: " killall wpa_supplicant ifconfig eth0 down # killproc gpsd RETVAL=$? return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart|reload) stop start RETVAL=$? ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $RETVAL
An alternative way to automate
Add the wpa_supplicant details to /etc/network/interfaces:
iface eth0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Now `ifup eth0` will start up wpa_supplicant and udhcpc for you, and `ifdown eth0` will stop them, in theory at least. In practise udhcpc can time out before wpa_supplicant has finished connecting to the access point, and if udhcpc has failed to get an address ifdown exits without stopping wpa_supplicant and bringing down the interface.
Comments
The alternative method seems to work reliably on the FR/ GTA02, I couldn't get the manual method to work when WPA/PSK is involved. Also you must do ifdown usb0 before the ifup eth0. Then you also need to setup the resolv.conf manually as it does not seem to get the dns server from the dhcp server. If the dhcp fails during ifup eth0, then you can run udhcpc eth0 manually it usually gets the dhcp address the second time around.
I use a script called u...
# u ifdown usb0 ifup eth0 echo nameserver xx.xx.xx.xx >/etc/resolv.conf
This usually works
[July 19, 2008] I've had repeated success with:
# ifconfig eth0 up # iwconfig eth0 essid any # iwconfig eth0 key '...' # iwconfig eth0 essid '...' # udhcpc eth0 # ifconfig usb0 down; ifconfig usb0 up
Hope that helps someone.
The following may be helpful in order to scan available networks :
# iwlist eth0 scan
[kd8ikt]
i found a neat lil script that scans/shows and asks for a essid/pass then fires up udhcpc (some modification required)
http://www.spencerstirling.com/computergeek/wireless.html
also sort of working on a shell script to find open nets and auto connect to them but i'm having issues