2014-08-24 10:18:18 -07:00
<section xmlns= "http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="sec-wireless">
2018-05-01 16:57:09 -07:00
<title > Wireless Networks</title>
2014-08-24 10:18:18 -07:00
2018-05-01 16:57:09 -07:00
<para >
2019-09-18 13:13:35 -07:00
For a desktop installation using NetworkManager (e.g., GNOME), you just have to make sure the user is in the <code > networkmanager</code> group and you can skip the rest of this section on wireless networks.
2018-05-01 16:57:09 -07:00
</para>
2014-08-24 10:18:18 -07:00
2018-05-01 16:57:09 -07:00
<para >
NixOS will start wpa_supplicant for you if you enable this setting:
2014-08-24 10:18:18 -07:00
<programlisting >
2018-04-05 01:43:56 -07:00
<xref linkend= "opt-networking.wireless.enable" /> = true;
2014-08-24 10:18:18 -07:00
</programlisting>
2018-05-01 16:57:09 -07:00
NixOS lets you specify networks for wpa_supplicant declaratively:
2015-12-29 02:21:38 -08:00
<programlisting >
2018-04-05 01:43:56 -07:00
<xref linkend= "opt-networking.wireless.networks" /> = {
2015-12-29 02:21:38 -08:00
echelon = {
psk = "abcdefgh";
};
"free.wifi" = {};
2019-03-21 15:22:13 -07:00
};
2015-12-29 02:21:38 -08:00
</programlisting>
2019-09-18 13:13:35 -07:00
Be aware that keys will be written to the nix store in plaintext! When no networks are set, it will default to using a configuration file at <literal > /etc/wpa_supplicant.conf</literal> . You should edit this file yourself to define wireless networks, WPA keys and so on (see <citerefentry >
2019-03-22 06:44:11 -07:00
<refentrytitle > wpa_supplicant.conf</refentrytitle>
<manvolnum > 5</manvolnum> </citerefentry> ).
2018-05-01 16:57:09 -07:00
</para>
<para >
2019-09-18 13:13:35 -07:00
If you are using WPA2 you can generate pskRaw key using <command > wpa_passphrase</command> :
2019-03-04 18:27:15 -08:00
<screen >
2019-06-17 04:25:50 -07:00
<prompt > $ </prompt> wpa_passphrase ESSID PSK
2019-03-04 18:27:15 -08:00
network={
ssid="echelon"
#psk="abcdefgh"
psk=dca6d6ed41f4ab5a984c9f55f6f66d4efdc720ebf66959810f4329bb391c5435
}
</screen>
<programlisting >
<xref linkend= "opt-networking.wireless.networks" /> = {
echelon = {
pskRaw = "dca6d6ed41f4ab5a984c9f55f6f66d4efdc720ebf66959810f4329bb391c5435";
};
}
</programlisting>
2019-09-18 13:13:35 -07:00
or you can use it to directly generate the <literal > wpa_supplicant.conf</literal> :
2014-08-24 10:18:18 -07:00
<screen >
2019-06-17 04:25:50 -07:00
<prompt > # </prompt> wpa_passphrase ESSID PSK > /etc/wpa_supplicant.conf</screen>
2019-09-18 13:13:35 -07:00
After you have edited the <literal > wpa_supplicant.conf</literal> , you need to restart the wpa_supplicant service.
2014-08-24 10:18:18 -07:00
<screen >
2019-06-17 04:25:50 -07:00
<prompt > # </prompt> systemctl restart wpa_supplicant.service</screen>
2018-05-01 16:57:09 -07:00
</para>
2014-08-24 10:18:18 -07:00
</section>