Difference between revisions of "How to install wpa supplicant"

From ThinkWiki
Jump to: navigation, search
(Starting wpa_supplicant)
m (External Sources)
 
(47 intermediate revisions by 16 users not shown)
Line 1: Line 1:
=== Installing wpa_supplicant with madwifi support===
+
=== Installing wpa_supplicant ===
*Get the source [http://hostap.epitest.fi/wpa_supplicant/ wpa_supplicant]
+
AtRPMS contains packages for [[:Category:Fedora|Fedora Core]].
*Edit .config
 
  
.config
+
*Get the [http://hostap.epitest.fi/wpa_supplicant/ source]
 +
*Make sure your kernel includes the drivers for your wireless card. Here's a sample .config for [[madwifi]] users:
  
 +
  #
 +
  #.config
 +
  #
 +
  # Uncomment following two lines and fix the paths if you have installed openssl
 +
  # in non-default location
 +
  #CFLAGS += -I/usr/local/openssl/include
 +
  #LIBS += -L/usr/local/openssl/lib
 +
  # Driver interface for Host AP driver
 +
  #CONFIG_DRIVER_HOSTAP=y
 +
  # Driver interface for Agere driver
 +
  #CONFIG_DRIVER_HERMES=y
 +
  # Change include directories to match with the local setup
 +
  #CFLAGS += -I../../hcf -I../../include -I../../include/hcf
 +
  #CFLAGS += -I../../include/wireless
 +
  # Driver interface for Prism54 driver
 +
  # (Note: Prism54 is not yet supported, i.e., this will not work as-is and is
 +
  # for developers only)
 +
  #CONFIG_DRIVER_PRISM54=y
 +
  # Driver interface for ndiswrapper
 +
  #CONFIG_DRIVER_NDISWRAPPER=y
 +
  # Driver interface for Atmel driver
 +
  #CONFIG_DRIVER_ATMEL=y
 +
  # Driver interface for Broadcom driver
 +
  #CONFIG_DRIVER_BROADCOM=y
 +
  # Example path for wlioctl.h; change to match your configuration
 +
  #CFLAGS += -I/opt/WRT54GS/release/src/include
 +
  # Driver interface for Intel ipw2100/2200 driver
 +
  #CONFIG_DRIVER_IPW=y
 
   CONFIG_DRIVER_MADWIFI=y
 
   CONFIG_DRIVER_MADWIFI=y
 
   # Change include directories to match with the local setup
 
   # Change include directories to match with the local setup
 
   CFLAGS += -I../madwif
 
   CFLAGS += -I../madwif
 
   CONFIG_DRIVER_WEXT=y
 
   CONFIG_DRIVER_WEXT=y
 +
  # Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
 +
  #CONFIG_DRIVER_BSD=y
 +
  #CFLAGS += -I/usr/local/include
 +
  #LIBS += -L/usr/local/lib
 +
  # Driver interface for Windows NDIS
 +
  #CONFIG_DRIVER_NDIS=y
 +
  #CFLAGS += -I/usr/include/w32api/ddk
 +
  #LIBS += -L/usr/local/lib
 +
  # For native build using mingw
 +
  #CONFIG_NATIVE_WINDOWS=y
 +
  # Additional directories for cross-compilation on Linux host for mingw target
 +
  #CFLAGS += -I/opt/mingw/mingw32/include/ddk
 +
  #LIBS += -L/opt/mingw/mingw32/lib
 +
  #CC=mingw32-gcc
 +
  # Driver interface for development testing
 +
  #CONFIG_DRIVER_TEST=y
 +
  # Driver interface for wired Ethernet drivers
 +
  #CONFIG_DRIVER_WIRED=y
 
   CONFIG_IEEE8021X_EAPOL=y
 
   CONFIG_IEEE8021X_EAPOL=y
 
   # EAP-MD5 (automatically included if EAP-TTLS is enabled)
 
   # EAP-MD5 (automatically included if EAP-TTLS is enabled)
Line 32: Line 78:
 
   CONFIG_CTRL_IFACE=y
 
   CONFIG_CTRL_IFACE=y
  
* install wpa_supplicant by make && make install
+
* install wpa_supplicant by {{cmdroot|make && make install}}
 +
 
 +
=== Configuration ===
  
=== Configuration for WPA-PSK ===
+
Set {{path|wpa_supplicant.conf}} to the following:
*Edit wpa_supplicant.conf
 
  
wpa_supplicant.conf
+
You have to change the values according to the response of {{cmdroot|wpa_passphrase <yourAPssid> <yourpassphrase>}}.
  
  ctrl_interface=/var/run/wpa_supplicant
+
==== For WPA-PSK ====
  ctrl_interface_group=0
+
<pre> 
  eapol_version=1
+
ctrl_interface=/var/run/wpa_supplicant
  # ap_scan=2 was the one for me you may try 0 or 1 indstead of 2
+
ctrl_interface_group=0
  ap_scan=2
+
eapol_version=1
  fast_reauth=1
+
# ap_scan=2 was the one for me you may try 0 or 1 indstead of 2
 +
ap_scan=2
 +
fast_reauth=1
  
  network={
+
network={
         ssid=""
+
         ssid="my_network"
 
         proto=WPA
 
         proto=WPA
 
         key_mgmt=WPA-PSK
 
         key_mgmt=WPA-PSK
 
         pairwise=TKIP
 
         pairwise=TKIP
 
         group=TKIP
 
         group=TKIP
         psk=
+
         psk="secret_password"
  }
+
}
 +
</pre>
 +
 
 +
==== For WPA2-Personal ====
 +
<pre> 
 +
ctrl_interface=/var/run/wpa_supplicant
 +
ctrl_interface_group=0
 +
ap_scan=1
  
You have to change the values according to the response of "wpa_passphrase yourAPssid  yourpassphrase ".
+
network={
 +
        ssid="my_network"
 +
        proto=RSN
 +
        key_mgmt=WPA-PSK
 +
        pairwise=CCMP TKIP
 +
        group=CCMP TKIP
 +
        psk="secret_password"
 +
}
 +
</pre>
  
 
=== Starting wpa_supplicant ===
 
=== Starting wpa_supplicant ===
 +
====When using a recent [[ipw2200]] driver  ====
 +
When using a recent [[ipw2200]] driver (e.g., as found in recent mainline kernels):
 +
:{{cmdroot|wpa_supplicant -d -c/etc/wpa_supplicant.conf -ieth1 -Dwext}}
 +
If every thing works as expected, you can replace <tt>-d</tt> by <tt>-B</tt> for the deamon mode.
 +
 +
In the instructions below, replace the interface name <tt>ath0</tt> with the appropriate one (usually <tt>eth1</tt>).
 +
 +
====When using the [[madwifi]] driver ====
 +
Make sure that the modules <tt>ath_pci</tt>, <tt>ath_hal</tt>, <tt>ath_rate_sample</tt>, <tt>wlan</tt>, <tt>wlan_tkip</tt> and <tt>wlan_xauth</tt> are loaded (using {{cmdroot|lsmod}}).
 +
 +
Now you are able to start wpa_supplicant by
 +
:{{cmdroot|wpa_supplicant -d -c /etc/wpa_supplicant.conf -iath0 -Dmadwifi}}
 +
If every thing works as expected, you can replace <tt>-d</tt> by <tt>-B</tt> for the deamon mode.
  
Now you are able to start wpa_supplicant by "wpa_supplicant -d -c/etc/wpa_supplicant.conf -iath0 -Dmadwifi ".
+
====Bringing up the network card manually====
If every thing works as expected, you can replace -d by -B for the deamon mode.
+
*Bring up the network interface with {{cmdroot|ifconfig ath0 <yourip> up}}.
               
+
{{NOTE|1=At the moment there is a problem within the madwifi driver or wpa_supplicant passing dhcp. That´s why I use a fixed IP.
Bring up my network card manual by "ifconfig ath0 ip up" and changing the routes and add the default gateway.
+
There are two patches one for wpa_supllicant (http://hostap.epitest.fi/bugz/show_bug.cgi?id=63) and one for madwifi                                           
 +
(http://article.gmane.org/gmane.linux.drivers.madwifi.devel/1275). Each one is supposed to work.}}
 +
*Change the routes and add the default gateway.
  
Bringing up the device at boot for gentoo users:
+
====Bringing up the device at boottime (for {{Gentoo}} users)====
 
+
*Make a symbolic link
*Make a symbolic link ln -s net.lo net.ath0 in /etc/init.d/
+
:{{cmdroot|cd /etc/init.d/}}
*Copy wpa_supplicant.conf to /etc/conf.d/wpa_supplicant
+
:{{cmdroot|ln -s net.lo net.ath0}}
*Edit /etc/conf.d/net
+
*Copy {{path|wpa_supplicant.conf}} to {{path|/etc/conf.d/wpa_supplicant}}.
 +
*Edit {{path|/etc/conf.d/net}}
 
    
 
    
   wpa_supplicant_ath0="-Dmadwifi"
+
  #
 +
  #net
 +
  #
 +
  modules=( "wpa_supplicant" )
 +
   wpa_supplicant_ath0="-Dmadwifi"modules=( "wpa_supplicant" )
 
   wpa_timeout_ath0=60
 
   wpa_timeout_ath0=60
   config_ath0=("yourip netmask 255.255.255.0")
+
   config_ath0=("<yourip> netmask 255.255.255.0")
   routes_ath0=("default gw yourgateway")
+
   routes_ath0=("default gw <yourgateway>")
 +
 
 +
*Add net.ath0 to the default runlevel by executing
 +
:{{cmdroot|rc-update add net.ath0 default}}
 +
*Make sure all needed modules are in {{path|/etc/modules.autoload/2.x}}
  
*Add net.ath0 to runlevel by "rc-update add net.ath0 default"
+
=== External Sources ===
*Make sure all needed modules are in /etc/modules.autoloa.d/2.x
+
*[http://hostap.epitest.fi/wpa_supplicant/ wpa_supplicant] source
 +
*[http://www.linux-wireless.org/ linux-wireless] Wireless HOWTOs
 +
*[http://www.examplenow.com/wpa_supplicant wpa_supplicant examples] wpa_supplicant examples
 +
*[http://rinta-aho.org/docs/wlan/wlan.html EAP-TLS] setting up WLAN network with EAP-TLS
 +
*[http://www.codealias.info/technotes/wpa2_eap-tls_authentication_linux_client_setup setting up EAP-TLS in wpa_supplicant ]
 +
*[http://www.codealias.info/technotes/wireless_security_wpa/wap2_with_eap-peap_using_wpa_supplicant_and_client_ssl_certificates_linux_setup setting up EAP-PEAP in wpa_supplicant]
 +
*[http://www.codealias.info/technotes/wireless_security_wpa/wap2_with_eap-ttls_using_wpa_supplicant_and_client_ssl_certificates_linux_setup setting up EAP-TTLS in wpa_supplicant]

Latest revision as of 21:32, 7 March 2009

Installing wpa_supplicant

AtRPMS contains packages for Fedora Core.

  • Get the source
  • Make sure your kernel includes the drivers for your wireless card. Here's a sample .config for madwifi users:
 #
 #.config
 #
 # Uncomment following two lines and fix the paths if you have installed openssl
 # in non-default location
 #CFLAGS += -I/usr/local/openssl/include
 #LIBS += -L/usr/local/openssl/lib
 # Driver interface for Host AP driver
 #CONFIG_DRIVER_HOSTAP=y
 # Driver interface for Agere driver
 #CONFIG_DRIVER_HERMES=y
 # Change include directories to match with the local setup
 #CFLAGS += -I../../hcf -I../../include -I../../include/hcf
 #CFLAGS += -I../../include/wireless
 # Driver interface for Prism54 driver
 # (Note: Prism54 is not yet supported, i.e., this will not work as-is and is
 # for developers only)
 #CONFIG_DRIVER_PRISM54=y
 # Driver interface for ndiswrapper
 #CONFIG_DRIVER_NDISWRAPPER=y
 # Driver interface for Atmel driver
 #CONFIG_DRIVER_ATMEL=y
 # Driver interface for Broadcom driver
 #CONFIG_DRIVER_BROADCOM=y
 # Example path for wlioctl.h; change to match your configuration
 #CFLAGS += -I/opt/WRT54GS/release/src/include
 # Driver interface for Intel ipw2100/2200 driver
 #CONFIG_DRIVER_IPW=y
 CONFIG_DRIVER_MADWIFI=y
 # Change include directories to match with the local setup
 CFLAGS += -I../madwif
 CONFIG_DRIVER_WEXT=y
 # Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
 #CONFIG_DRIVER_BSD=y
 #CFLAGS += -I/usr/local/include
 #LIBS += -L/usr/local/lib
 # Driver interface for Windows NDIS
 #CONFIG_DRIVER_NDIS=y
 #CFLAGS += -I/usr/include/w32api/ddk
 #LIBS += -L/usr/local/lib
 # For native build using mingw
 #CONFIG_NATIVE_WINDOWS=y
 # Additional directories for cross-compilation on Linux host for mingw target
 #CFLAGS += -I/opt/mingw/mingw32/include/ddk
 #LIBS += -L/opt/mingw/mingw32/lib
 #CC=mingw32-gcc
 # Driver interface for development testing
 #CONFIG_DRIVER_TEST=y
 # Driver interface for wired Ethernet drivers
 #CONFIG_DRIVER_WIRED=y
 CONFIG_IEEE8021X_EAPOL=y
 # EAP-MD5 (automatically included if EAP-TTLS is enabled)
 CONFIG_EAP_MD5=y
 # EAP-MSCHAPv2 (automatically included if EAP-PEAP is enabled)
 CONFIG_EAP_MSCHAPV2=y
 # EAP-TLS
 CONFIG_EAP_TLS=y
 # EAL-PEAP
 CONFIG_EAP_PEAP=y
 # EAP-TTLS
 CONFIG_EAP_TTLS=y
 # EAP-GTC
 CONFIG_EAP_GTC=y 
 # EAP-OTP
 CONFIG_EAP_OTP=y
 # LEAP
 CONFIG_EAP_LEAP=y
 # PKCS#12 (PFX) support (used to read private key and certificate file from
 # a file that usually has extension .p12 or .pfx)
 CONFIG_PKCS12=y
 # Include control interface for external programs, e.g, wpa_cli
 CONFIG_CTRL_IFACE=y
  • install wpa_supplicant by # make && make install

Configuration

Set wpa_supplicant.conf to the following:

You have to change the values according to the response of # wpa_passphrase <yourAPssid> <yourpassphrase>.

For WPA-PSK

  
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
eapol_version=1
# ap_scan=2 was the one for me you may try 0 or 1 indstead of 2
ap_scan=2
fast_reauth=1

network={
        ssid="my_network"
        proto=WPA
        key_mgmt=WPA-PSK
        pairwise=TKIP
        group=TKIP
        psk="secret_password"
}

For WPA2-Personal

  
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1

network={
        ssid="my_network"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP TKIP
        group=CCMP TKIP
        psk="secret_password"
}

Starting wpa_supplicant

When using a recent ipw2200 driver

When using a recent ipw2200 driver (e.g., as found in recent mainline kernels):

# wpa_supplicant -d -c/etc/wpa_supplicant.conf -ieth1 -Dwext

If every thing works as expected, you can replace -d by -B for the deamon mode.

In the instructions below, replace the interface name ath0 with the appropriate one (usually eth1).

When using the madwifi driver

Make sure that the modules ath_pci, ath_hal, ath_rate_sample, wlan, wlan_tkip and wlan_xauth are loaded (using # lsmod).

Now you are able to start wpa_supplicant by

# wpa_supplicant -d -c /etc/wpa_supplicant.conf -iath0 -Dmadwifi

If every thing works as expected, you can replace -d by -B for the deamon mode.

Bringing up the network card manually

  • Bring up the network interface with # ifconfig ath0 <yourip> up.
NOTE!
At the moment there is a problem within the madwifi driver or wpa_supplicant passing dhcp. That´s why I use a fixed IP.

There are two patches one for wpa_supllicant (http://hostap.epitest.fi/bugz/show_bug.cgi?id=63) and one for madwifi

(http://article.gmane.org/gmane.linux.drivers.madwifi.devel/1275). Each one is supposed to work.
  • Change the routes and add the default gateway.

Bringing up the device at boottime (for Gentoo users)

  • Make a symbolic link
# cd /etc/init.d/
# ln -s net.lo net.ath0
  • Copy wpa_supplicant.conf to /etc/conf.d/wpa_supplicant.
  • Edit /etc/conf.d/net
 #
 #net
 #
 modules=( "wpa_supplicant" )
 wpa_supplicant_ath0="-Dmadwifi"modules=( "wpa_supplicant" )
 wpa_timeout_ath0=60
 config_ath0=("<yourip> netmask 255.255.255.0")
 routes_ath0=("default gw <yourgateway>")
  • Add net.ath0 to the default runlevel by executing
# rc-update add net.ath0 default
  • Make sure all needed modules are in /etc/modules.autoload/2.x

External Sources