最近 Canonical 的官方论坛发布了一个帖子,征集测试员,让大家试试能不能用 iwd 代替原本的 wpa_supplicant 去管理无限网络。
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/
我的arch好像也是这样,有时候重启,莫名其妙就没了wlan0