iwd (iNet Wireless Daemon) は切断時や電波不良時の高速な再接続を目指してIntelが開発したwpa_suplicantとhostapd の代替ソフトウェアで、wpa_supplicantとhostapdの組み合わせでできることはたいていできます。その使い方を紹介します。Ubuntu 20.04 と Debian 11 で確認
/etc/iwd/main.conf
[General]
UseDefaultInterface=true
DisableANQP=false
RoamThreshold=-60
を作ります。
NetworkManager と共に使う
[device]
wifi.backend=iwd
wifi.iwd.autoconnect=yes
を作ります。
インストール
インストールした瞬間に無線が使えなくなる可能性があるから注意して下さい。
apt-get install iwd
systemctl disable --now wpa_supplicant
systemctl restart NetworkManager
- NetworkManagerに設定した接続情報を一度削除してもう一度無線SSIDとそのパスフレーズを再登録
でNetworkManagerがiwdを使えるようになります。
NetworkManager と併用しない場合
ifconfig と併用する場合
pre-up /usr/bin/iwctl --passphrase=パスフレーズ station DEVICE connect SSID
とします。詳しくはifupの説明 を参照。
iwd にネットワークの設定をさせる
NetworkManager も ifup も使わずに iwd 単体でネットワーク設定する場合です
EnableNetworkConfiguration=true
[General]
EnableNetworkConfiguration=true
と書いておくと、iwdがDHCPクライアント(アクセスポイント(SSID)に繋ぐ場合)およびDHCPサーバー(アクセスポイントになりSSIDを提供する場合)として動作します。IPアドレスを自分で決める設定もできます。
SSID に接続しにいく場合
iwctl --passphrase=パスフレーズ station DEVICE connect SSID
とします。eduroam などもっと複雑な設定をする場合はこちら を参照して ナントカ.8021x
というファイルを作成する必要があります。
iwd にSSIDを提供させる
アクセスポイントにして他の機器からの接続を受け付けられるようにする設定です。
apt-get install crda
-
/etc/default/crda
にREGDOMAIN=JP
を設定 iwctl device wlan0 set-property Mode ap
iwctl ap wlan0 start-profile SSID パスフレーズ
接続して来た機器のIPアドレスなどを自動的に設定するように、iwdにDHCPサーバーもやらせる場合はここ を見て下さい。iwd と組み合わせるDHCPサーバーにsystemd や ISC DHCPサーバー や dnsmasq を使うこともできます。