Package:WPA Supplicant

From Funtoo
Jump to: navigation, search

WPA Supplicant


We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.


root # echo 'net-wireless/wpa_supplicant wps' >> /etc/portage/package.use/wpa_supplicant
root #for a gui widget run the second command.
root # echo 'net-wireless/wpa_supplicant qt' >> /etc/portage/package.use/wpa_supplicant
root # emerge net-wireless/wpa_supplicant


You can configure wpa_supplicant daemon by editing /etc/wpa_supplicant/wpa_supplicant.conf.

   /etc/wpa_supplicant/wpa_supplicant.conf - wpa_supplicant daemon config
# provide control interface for wpa_cli and wpa_gui frontends

# allow wpa_cli and wpa_gui to update config


   /etc/wpa_supplicant/wpa_supplicant.conf - MOAR wpa_supplicant daemon config
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=wheel
        group=CCMP TKIP
        pairwise=CCMP TKIP

Another way would be to run

root # wpa_passphrase ssidname | tee /etc/wpa_supplicant.conf
root #reading passphrase from stdin

Like this the configuration file will be created automatically, so you cant make any typing mistakes like forgetting a tick. Use your SSID name instead of ssidname and after running the command it will wait for you to enter the password, then will save the output of wpa_passphrase into /etc/wpa_supplicant/wpa_supplicant.conf.


Start daemon with openrc.

root # /etc/init.d/wpa_supplicant start

You can also add it to default runlevel.

root # rc-update add wpa_supplicant default

The daemon can work independently or you can use wpa_cli and wpa_gui frontends. You can also alter configs with frontends.

Wpa_cli CLI Frontend

You can start cli frontend by running wpa_cli.

root # wpa_cli

Scan Access Points

> scan
> scan_results
bssid / frequency / signal level / flags / ssid
50:32:75:ee:b6:fb       2462    -41     [WPA2-PSK-CCMP][ESS]    AndroidAP
00:3a:98:99:12:f3       2412    -71     [WPA2-EAP-CCMP][ESS]    wEKSOTE
00:3a:98:99:12:f0       2412    -71     [WPA2-EAP-CCMP][ESS]    wULAPPA
00:23:33:a2:7d:14       2462    -85     [WPA2-EAP-CCMP][ESS]    SaitaBYOD
00:3a:98:99:12:f1       2412    -70     [ESS]   saitaOpen

Connect to Access Point

> add_network
> set_network 0 ssid "SSID"
> set_network 0 psk "passphrase"
> enable_network 0
<2>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed (reauth) [id=0 id_str=]

Save config

> save_config

Wpa_gui GUI Frontend

wpa_gui is simple gui frontend. You can start it by running wpa_gui.

root # wpa_gui

If you use Openbox and want to put wpa_gui in your autostart, you will run into some difficulties. You need to run wpa_gui as root, or you will not be able to access any adapters. On some other distributions, you can run chmod +s /usr/bin/wpa_gui in a terminal to allow other users to pretend they are root for this executable, but this is blocked on Funtoo for security reasons (wpa_gui will not start if you do this, so if you have done that, remove it with -s in the same command). The way to do it is to install the sudo package:

root # emerge sudo
root # nano /etc/sudoers

The /etc/sudoers file contains the rules for who is able to use sudo to gain root access with their own personal password. However, we don't want to get stuck on a password question when we start wpa_gui in the autostart for Openbox. Therefore, we need to add to this file that the wpa_gui executable can be run with sudo without any need for a password. I'm sure you can figure out the security implications of this. Add the following to the /etc/sudoers file:

wheel ALL=(ALL) ALL
wheel ALL=(ALL) NOPASSWD: /usr/bin/wpa_gui

The first line enables everyone in the wheel user group to use sudo with their personal password for root access. The second line says that all those users are also allowed to execute /usr/bin/wpa_gui without a password.

Now you can add sudo wpa_gui -t & to your ~/.config/openbox/autostart and that should put wpa_gui in your panel every time you start Openbox.

Autoconfigure IP with dhcpcd

You can use Package:dhcpcd to automatically configure an ip address. Start dhcpcd daemon by

root # /etc/init.d/dhcpcd start

To make it work automatically with system start, add dhcpcd to default runlevel:

root # rc-update add dhcpcd default