Difference between revisions of "WPA supplicant"
(→Usage) |
(→Usage) |
||
| Line 56: | Line 56: | ||
# wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant.conf -B | # wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant.conf -B | ||
</pre> | </pre> | ||
| + | |||
| + | And finally to activate automatically your WiFi interface when starting Linux, here is a sample of init script /etc/init.d/S61Wifi to adapt to your WiFI driver (update WIFIDRIVERS in the source) and to place it on the target into /etc/init.d/S61wifi giving execution rigths to this file (chmod a+x /etc/init.d/S61Wifi): | ||
| + | <source lang="bash"> | ||
| + | #!/bin/sh | ||
| + | # | ||
| + | # Starts wifi services | ||
| + | # | ||
| + | # do not forget to update your wpa_supplicant configuration | ||
| + | # wpa_passphrase "mynetworrssid" "mynetworkpassphrase" >> /etc/wpa_supplicant.conf | ||
| + | # | ||
| + | export WIFIDRIVERS=libertas_sdio | ||
| + | case "$1" in | ||
| + | start) | ||
| + | echo "Starting wifi" | ||
| + | modprobe $WIFIDRIVERS | ||
| + | ip link set dev wlan0 up | ||
| + | wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant.conf -B | ||
| + | wpa_cli -B -a /etc/wpa_supplicant/wpa_cli-action.sh | ||
| + | ;; | ||
| + | |||
| + | stop) | ||
| + | wpa_cli -i wlan0 disconnect | ||
| + | wpa_cli -i wlan0 terminate | ||
| + | ip link set dev wlan0 down | ||
| + | rmmod -a $WIFIDRIVERS | ||
| + | ;; | ||
| + | |||
| + | restart) | ||
| + | $0 stop | ||
| + | sleep 1 | ||
| + | $0 start | ||
| + | ;; | ||
| + | |||
| + | *) | ||
| + | echo "Usage: $0 {start|stop|restart}" | ||
| + | exit 1 | ||
| + | ;; | ||
| + | esac | ||
| + | |||
| + | exit 0 | ||
| + | |||
| + | </source> | ||
==Stop it== | ==Stop it== | ||
Revision as of 17:23, 7 March 2013
When dealing with "strong" encryption of WiFi networks, you have to setup a WPA or WPA2 configuration. To handle the requirements of these protocols during association, a userspace daemon is needed: it is called a WPA supplicant. The most used one on Linux is wpa_supplicant; we will see here how to install and configure it.
Contents
Installation
$ make menuconfig
Package Selection for the target --->
Networking --->
[*] wpa_supplicant
[ ] Enable WPA with EAP
[*] Install wpa_cli binary
[*] Install wpa_passphrase binary
EAP is only needed if you plan to use WPA in Enterprise mode == with a Radius server.
Usage
wpa_supplicant needs a configuration file in /etc/wpa_supplicant.conf. Here is an example (WPA pre-shared key (TKIP)) and for your convience a generic wpa_supplicant.conf is already installed in the Armadeus BSP for releases > 5.2 :
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
update_config=1
network={
ssid="''SSID''"
scan_ssid=1
proto=WPA
key_mgmt=WPA-PSK
pairwise=TKIP
psk="''PASSPHRASE''"
}
You can adapt wpa_supplicant.conf manually or use the wpa_passphrase tool to add your network (SSID/PASSPHRASE) automatically:
# wpa_passphrase "mynetworkSSID" "mynetworkPASSPHRASE" >> /etc/wpa_supplicant.conf
Be sure to have your Wi-Fi chipset driver loaded:
# modprobe libertas_sdio or # modprobe rt73usb # modprobe rt2800_usb # modprobe zd1211rw # modprobe rtl8187 # modprobe r8712u ...
Then you can create the Wi-Fi connection with WPA Supplicant:
# ifconfig wlan0 up # wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant.conf -B
And finally to activate automatically your WiFi interface when starting Linux, here is a sample of init script /etc/init.d/S61Wifi to adapt to your WiFI driver (update WIFIDRIVERS in the source) and to place it on the target into /etc/init.d/S61wifi giving execution rigths to this file (chmod a+x /etc/init.d/S61Wifi):
#!/bin/sh
#
# Starts wifi services
#
# do not forget to update your wpa_supplicant configuration
# wpa_passphrase "mynetworrssid" "mynetworkpassphrase" >> /etc/wpa_supplicant.conf
#
export WIFIDRIVERS=libertas_sdio
case "$1" in
start)
echo "Starting wifi"
modprobe $WIFIDRIVERS
ip link set dev wlan0 up
wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant.conf -B
wpa_cli -B -a /etc/wpa_supplicant/wpa_cli-action.sh
;;
stop)
wpa_cli -i wlan0 disconnect
wpa_cli -i wlan0 terminate
ip link set dev wlan0 down
rmmod -a $WIFIDRIVERS
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit 0
Stop it
To stop WPA Supplicant daemon and switch off the connexion, you can use this command:
# wpa_cli terminate