最近 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,并且重启电脑即可。

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/