class.exe

blog.netaka.net

Ubuntu on NUCでWi-Fi接続した

7/23/2017

この記事を書いてから6年が経っています。内容が古いかもしれません。

Ubuntu Server 16.04 LTSをインストールしたNUCでWi-Fi接続してみました。環境、バージョン等は以下の通り。

iwconfigを利用可能にする

iwconfigはwireless-toolsパッケージに入っているようです。

$ iwconfig
The program 'iwconfig' is currently not installed. You can install it by typing:
sudo apt install wireless-tools
$ sudo apt install wireless-tools

iwconfigでWi-Fiモジュールを確認する

iwconfigでWi-Fiモジュールが確認できました。wlp2s0というインタフェースのようです。

$ iwconfig
lo        no wireless extensions.

eno1      no wireless extensions.

wlp2s0    IEEE 802.11abgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=0 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

wpa_passphrase, wpa_supplicantを利用可能にする

wpasupplicantパッケージをインストールします。

$ sudo apt install wpasupplicant

設定情報を作成する

wpa_passphraseでパスフレーズを暗号化して、設定情報をwpa_supplicant.confというファイルで保存します。

$ wpa_passphrase "ESSID" "passphrase"
network={
    ssid="ESSID"
    #psk="passphrase"
    psk=d5b7ea2dda330fb59753d126e0b98bc968644423abb76bb52374a027718219c6
}
$ wpa_passphrase "ESSID" "passphrase" > wpa_supplicant.conf

お家のアクセスポイントはSSIDがステレスなので、scan_ssid=1を追記しています。

wpa_supplicantコマンドで接続する

wpa_supplicantコマンドでアクセスポイントに接続します。

$ sudo wpa_supplicant -i wlp2s0 -c wpa_supplicant.conf -B

そして、DHCPクライアントでIPアドレスを取得します。

$ sudo dhclient wlp2s0

起動時に接続するようにする

こちらを参考に、systemdサービス用に、[email protected]を作成します。参考ページの記載とほぼ同じですが、wpa_supplicantのパスを/sbin/wpa_supplicantにしているのと、ExecStartPostdhclientを追記しています。

$ sudo mv wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlp2s0.conf
$ sudo vim /etc/systemd/system/[email protected]
[Unit]
Description=WPA supplicant daemon (interface-specific version)
Requires=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=simple
ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I
ExecStartPost=/sbin/dhclient %i

[Install]
Alias=multi-user.target.wants/wpa_supplicant@%i.service

無線インタフェースだけで運用する

有線を繋げていないと起動時にStarting Raise network interfaces...で待たされてしまうので、networking.serviceを止めてしまう。

$ sudo systemctl disable networking.service

追記

こっちのほうが適当そう。eno1をコメントアウトする。

/etc/network/interfaces
# The primary network interface
# auto eno1
# iface eno1 inet dhcp

参考ページ