夸赞女孩漂亮的诗句:wpa_supplicant.conf

来源:百度文库 编辑:中财网 时间:2024/04/29 18:37:15

Neo FreeRunner Wifi

From Openmoko

(Redirected from Wireless Networking)Jump to: navigation, searchLanguages:

English ?  ??????? ?  Български ?  ?esky ?  Dansk ?  Deutsch ?  Esperanto ?  Eesti ?  Espa?ol ?  ????? ?  Suomi ?  Fran?ais ?  ????? ?  Magyar ?  Italiano ?  ??? ?  Nederlands ?  Polski ?  Português ?  Roman? ?  Русский ?  Svenska ?  Sloven?ina ?  Укра?нська ?  ?中文(中国大陆)? ?  ?中文(台灣)? ?  Euskara ?  Català


This page documents the wireless networking solutions commonly known as WLAN or WiFi.

There are other ways to enable wireless communications on the Neo, including Bluetooth. For Bluetooth solutions, see How to use bluetooth to transfer data between Neo and Desk-top and Manually using Bluetooth.

Contents

[hide]
  • 1 How can I tell what Access Points (APs) are visible to me?
  • 2 WPA
    • 2.1 Using wpa_supplicant manually
    • 2.2 Using WPA and /etc/network/interfaces
    • 2.3 wpa_supplicant.conf
      • 2.3.1 wpa_supplicant.conf explained
      • 2.3.2 Sample wpa_supplicant.conf
      • 2.3.3 Other working sample wpa_supplicant.conf files
      • 2.3.4 Roaming
      • 2.3.5 Using with fsoraw
  • 3 WEP
    • 3.1 Using iwconfig manually
      • 3.1.1 Manually setting WEP key with index different than 1
    • 3.2 Using WEP and /etc/network/interfaces
  • 4 Known Issues
    • 4.1 iwconfig doesn't work in all cases
    • 4.2 Anecdotal solutions
      • 4.2.1 Disable power management
      • 4.2.2 Modified script
      • 4.2.3 Use a different channel
      • 4.2.4 Make your WIFI more reliable
      • 4.2.5 eth0 doesn't show up
  • 5 Wake up from wireless (wow)
  • 6 A very ugly /etc/init.d/wlan startscript
  • 7 Route internet connection through Wifi rather than USB
  • 8 ssh into FR over Other Network Interfaces
    • 8.1 ssh into FR over WiFi Only
    • 8.2 ssh into FR over Any Network Interface
  • 9 See also
  • 10 External links

How can I tell what Access Points (APs) are visible to me?

You can connect to wireless networks through wireless access points. If you want to know the names of all the access points that are currently visible to you, you can perform a scan with this command:

root@om-gta02:~# iwlist eth0 scan

If anything is visible you will get a list that looks something like this:

eth0      Scan completed :          Cell 01 - Address: 00:16:B6:DE:77:58                    ESSID:"StarvinMarvin"                    Mode:Master                    Frequency:2.437 GHz (Channel 6)                    Quality=9/94  Signal level=-86 dBm  Noise level=-95 dBm                    Encryption key:on                    Extra:bcn_int=100                    Extra:wpa_ie=dd180050f20101000050f20201000050f20201000050f2020000          Cell 02 - Address: 00:21:29:AA:10:97                    ESSID:"CandT Network"                    Mode:Master                    Frequency:2.437 GHz (Channel 6)                    Quality=39/94  Signal level=-56 dBm  Noise level=-95 dBm                    Encryption key:on                    Extra:bcn_int=100                    Extra:wpa_ie=dd1c0050f20101000050f20202000050f2040050f20201000050f2020000                    Extra:rsn_ie=30180100000fac020200000fac04000fac020100000fac020000          Cell 03 - Address: 00:14:95:1B:8E:B9                    ESSID:"2WIRE852"                    Mode:Master                    Frequency:2.437 GHz (Channel 6)                    Quality=5/94  Signal level=-90 dBm  Noise level=-95 dBm                    Encryption key:on                    Extra:bcn_int=100          Cell 04 - Address: 00:E0:98:52:3D:78                    ESSID:"smith"                    Mode:Master                    Frequency:2.437 GHz (Channel 6)                    Quality=36/94  Signal level=-59 dBm  Noise level=-95 dBm                    Encryption key:on                    Extra:bcn_int=100

If you want to connect to an unsecured network run:

 udhcpc  


WPA

WPA is an encryption method for securing your wireless network.

Using wpa_supplicant manually

Create and edit a suitable /etc/wpa_supplicant/wpa_supplicant.conf (see below).

Bring up your wireless connection:

root@om-gta02:~# ifconfig eth0 uproot@om-gta02:~# wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -Broot@om-gta02:~# udhcpc -i eth0

Using WPA and /etc/network/interfaces

Once you have a /etc/wpa_supplicant/wpa_supplicant.conf (see below) file, add a line under the eth0 entry in /etc/network/interfaces:

iface eth0 inet dhcp   wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Save your changes and run:

 # ifdown eth0 && 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 (bug #2189)

wpa_supplicant.conf

wpa-supplicant's conf file typically found at /etc/wpa_supplicant/wpa_supplicant.conf.

wpa_supplicant.conf explained

The highest priority is tried first then falls back to the next highest number.

priority=100 1st
then
priority=99

 # Simple case: WPA-PSK, PSK as an ASCII passphrase, allow all valid ciphersnetwork={ssid="AP_ESSID"psk="presharedkey"priority=5}#try open AP regardless of its SSID.# change root password before you go roaming around it could prove dangerousnetwork={key_mgmt=NONEpriority=1  #try any open AP last}

A more in depth explanation can be found here:
http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/wpa_supplicant.conf

Sample wpa_supplicant.conf

Sample /etc/wpa_supplicant/wpa_supplicant.conf :

ctrl_interface=/var/run/wpa_supplicantctrl_interface_group=0eapol_version=1ap_scan=1fast_reauth=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"      proto=WPA      key_mgmt=WPA-PSK      pairwise=TKIP      group=TKIP      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=your_hex_key     priority=8}# Open:network={     ssid="your ssid"     key_mgmt=NONE     priority=5}

Other working sample wpa_supplicant.conf files

Tom Yates documents his success here

Matthias Apitz documents his success here: http://www.unixarea.de/openmoko.txt (see chapter 6.).

Roaming

  • Connecting to a local network with usb networking enabled, may get you into trouble. The default /etc/network/interfaces will configure the usb endpoint as a default gateway (for 2008.12). If you connect to another 192.168.0.0/24 network your phone will try the usb, timeout and then go for the other: remove the route with 'route del default gw 192.168.0.200'. Optionally remove the route from interfaces if you never intend to use your desktop as a router.
  • You can have wpa_supplicant roam for you by setting the inet method to manual and using wpa_roam instead of wpa_conf in your /etc/network/interfaces.
  • After bringing up the interface with wpa_supplicant, you can run wpa_cli and issue the command 'status' to see if and to which AP you are connected.

Using with fsoraw

wpa_supplicant can be invoked through fsoraw by running,

fsoraw -r WiFi -- wpa_supplicant -ieth0 -Dwext -c /etc/wpa_supplicant/wpa_supplicant.conf

  • Remember there is no need to enable WiFi radio in Settings>Connectivity as fsoraw will enable it.
  • The above command shall not return back to the shell, it can be sent to background using &
  • To terminate the connection, kill wpa_supplicant

WEP

WEP is an encryption method for securing your wireless network. WEP is generally considered to be weak, you should use WPA instead if possible.

Using iwconfig manually

Note that for WEP our iwconfig requires a more specific format than generic iwconfig.

The canonical way of running iwconfig for WEP would be something like this:

  1. iwconfig eth0 key A4BEB3B8EC essid xyz

Two things are important here:

  • the key must be in HEX. iwconfig will not do anything useful if the key is given as a string. Here is a handy ASCII string to HEX converter.
  • the ESSID must follow the key.

If an incorrect key was set, please stop all activity on the interface for at least two minutes (i.e., killall udhcpc and ifconfig eth0 down), then issue the correct iwconfig command and retry.

Manually setting WEP key with index different than 1

First you need to specify the key with its index as prefix or postfix:

  1. iwconfig eth0 key A4BEB3B8EC [2]

At this point, iwconfig doesn't show any key is used. Now you need to tell it to actually use key with index 2:

  1. iwconfig eth0 key [2]

Now your network with nonstandard wep index should work :)

Using WEP and /etc/network/interfaces

 iface eth0 inet dhcp   wireless-key my_wep_key   wireless-essid my_essid
iface eth0 inet dhcp   wpa-wep-key0 my_wep_key   wpa-key-mgmt NONE   wpa-ssid my_essid

Save your changes and run:

 # ifdown eth0 && ifup eth0

Idea : You can use ShortOm to lauch this command on futur boot to activate wifi without having to use terminal

Known Issues

iwconfig doesn't work in all cases

Note that for some reason our iwconfig requires a more constrained format than the generic iwconfig. See using iwconfig manually.

Anecdotal solutions

These solutions worked for some people:

Disable power management

Some APs apparently get upset by power managed devices, and the Freerunner enables power management of the wifi by default to preserve battery. One user's wrt54g certainly gets upset from time to time if he connect with the FreeRunner, sometimes refusing to talk to _anything_ over wifi afterwards until rebooted.

iwconfig eth0 power off

Modified script

"I changed the script a little:

Exec=xterm -e "ifconfig eth0 down iwconfig eth0 txpower off channel 0 while killall wpa_supplicant; do echo 'Killing wpa_sup'; done killall udhcpc wpa_supplicant -i eth0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext -B sleep 10; udhcpc"

Now it is working every time. I am using 2008.latest (081004) and a linksys WAP54G accesspoint,

Use a different channel

"Could not get it to work properly on channel 11, so I set my accesspoint to channel 1."

Make your WIFI more reliable

After boot or before connecting do:

wmiconfig -i eth0 --power maxperf

of course you need to find wmiconfig or to compile it

eth0 doesn't show up

If a "config -a" or "lshw -c network" doesn't show the wlan interface (eth0) you might need to bind it first:

echo s3c2440-sdi > /sys/bus/platform/drivers/s3c2440-sdi/bind

If you are using FSO try using dbus.

root@om-gta02:~$cat scripts/wifi-on.sh #!/bin/sh mdbus -s org.freesmartphone.odeviced /org/freesmartphone/Device/PowerControl/WiFi  org.freesmartphone.Resource.Enable

Wake up from wireless (wow)

Wi-Fi module constantly drain currents after module power up, for wi-fi SIP phone or some application need long standby time, will need wake up from wireless function for power saving. There is a sleep mode that Ar6k supported for wake up from wireless.

http://svn.openmoko.org/trunk/src/target/AR6kSDK.build_sw.18/host/tools/wmiconfig
export ATH_CROSS_COMPILE_TYPE=arm-angstrom-linux-gnueabi-make

Debian package:

wget http://meshy.org/~ato/debian/pool/main/w/wmiconfig/wmiconfig_0.0.18-1_armel.debdpkg -i wmiconfig_0.0.18-1_armel.deb

Basically, it's achieved via wmiconfig tool to issue IOCTL if we want ar6k wifi module to generate interrupt to host controller. The procedure to enable wakeup-on-wireless(wow) is listed here:

1. wmiconfig --sethostmode asleep /* to tell ar6k what host's current is */2. wmiconfig --setwowmode enable /* enable wow function */3. wmiconfig --addwowpattern 0 1 33 01 ff /* add packet filter pattern, this is the ICMP filter pattern */4. apm -s5. ping IP_of_Neo6. The GPIO1 pin would be pulled up. The system would resume then.7. wmiconfig --sethostmode awake /* The firmware of ar6k will pull low the GPIO1 pin */

--addwowpattern

Here are some addwowpattern commands:

Protocol type=IP=0800 Protocol type in IP header=ICMP=01

- To filter for IP packets(offset 22)wmiconfig --addwowpattern 0 2 22 0800 ffff- To filter for ICMP packets (offset 33)wmiconfig --addwowpattern 0 1 33 01 ff

A very ugly /etc/init.d/wlan startscript

#!/bin/sh## wlanThis shell script starts and stops wlan.## processname: wlan# Source function library.#. /etc/rc.d/init.d/functions# "written" by HdRRETVAL=0prog="wlan"# test -f /etc/default/$prog && . /etc/default/$progstart() {echo -n "Starting $prog: "ifconfig eth0 upwpa_supplicant -ieth0 -c/etc/wpa_supplicant/wpa_supplicant.conf -Bsleep 10udhcpc -i eth0RETVAL=$?return $RETVAL}stop() {# Stop daemons.echo -n "Shutting down $prog: "        killall wpa_supplicantifconfig eth0 down#        killproc gpsdRETVAL=$?return $RETVAL}# See how we were called.case "$1" in  start)start;;  stop)stop;;  restart|reload)stopstartRETVAL=$?;;  *)echo "Usage: $0 {start|stop|restart}"exit 1esacexit $RETVAL