Ubuntu 20.04 で iwd を使って無線ネットワークを管理する

広告

最近 Canonical の公式フォーラムに投稿が出て、テスターを募集していた。iwd を使って、本来の wpa_supplicant の代わりに無線ネットワークを管理できるか試してみてほしい、という内容だ。

photo_2020-08-19_12-00-31.jpg

広告

iwd は Intel がカーネルベースで出している無線ネットワーク管理で、利点が多い。ほとんどが性能重視で速い。なにせカーネル層のものだからね。Canonical の投稿に従えば、自分でもテストに参加して効果を確認できる:

まずは iwd 本体をインストールする:

sudo apt install iwd

次に NetworkManager の設定ファイルを編集して、バックエンドを iwd に差し替える。ファイルを開くと空なので、そのまま新しい内容を書き足せばいい。

sudo gedit /etc/NetworkManager/conf.d/iwd.conf

追加:

[device]
wifi.backend=iwd

あとは元のネットワーク管理である wpa_supplicant をマスクして、PC を再起動するだけ。

sudo systemctl mask wpa_supplicant
sudo reboot

再起動が終わればテストに参加できる。これで無線ネットワーク管理は iwd をバックエンドとして使うようになった。まあ、意識高い Archer 諸兄はとっくにやってるんだろうけど、遅れてて発言権もない Ubuntu + GNOME Shell ユーザーも一応おこぼれに預かれるってわけだ。


とはいえ、普通にいくつか問題にぶつかるので、以下に個別に書いておく:

再起動後に Wi-Fi ネットワークが空で、Wi-Fi 信号を一切検索できない

これは Canonical がテスト用ドキュメントで明確に説明している状況だ。向こうは「起動のたびに一定の確率で iwd サービスが起動しないことがある」と言っているが、全然「一定の確率」じゃない。完全に「毎回」だ。Canonical いわく、解決策は iwd サービスを再起動するだけでいいらしいが……

毎回起動のたびに再起動なんてやってられるか!

ネットで調べてみると、これも古くからある問題らしい:

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/101

おおよその原因は、NetworkManager が起動しても iwd を一緒に動かさないこと。両者の結び付きがそれほど強くない。このスレッドでは一年近く議論されても結論が出ておらず、最終的な解決策は iwd サービスを自分で動かすことだった。

sudo systemctl enable iwd.service

自分の環境では問題ない。もちろん、他に影響が出るかどうかは知らんけど。


iwd のバージョンが古すぎる。最新はもう 1.8 だ

iwd の依存はどうやらかなり緩いので、Ubuntu 20.10 のリポジトリから新しい版を引っ張ってきてインストールすればいい。

https://launchpad.net/ubuntu/+source/iwd


iwd を有効にしたら Wi-Fi に再接続され、名前の後ろに「1」が付くようになった

これは正常。1 が付いているものを削除して再接続すればいい。


iwd を無効にして元の wpa_supplicant に戻すには?

sudo rm /etc/NetworkManager/conf.d/iwd.conf
sudo apt remove iwd
sudo systemctl unmask wpa_supplicant
sudo reboot

Ubuntu ユーザーでフィードバックがあるなら、Canonical のスレッドに返信してほしい:

https://discourse.ubuntu.com/t/call-for-testing-improved-wifi-via-iwd/

本家 plumz.me でこの記事にコメントする

コメントは中国語の本家サイトで受け付けています。このミラーは閲覧専用です。

目次