我一天中大部分时间都在用谷歌搜索这个问题,但没有成功。我正在尝试使用 nmcli 连接到 wifi。我已经使用我的 wifi 设备创建了一个连接:
% nmcli c
NAME UUID TYPE DEVICE
Wired connection 1 89fdde8a-22e1-3c03-8b36-8299f2e95d43 802-3-ethernet enp0s10
Wi-Fi connection 1 826416aa-2030-4984-9685-8962857f59d9 802-11-wireless --
% nmcli c show "Wi-Fi connection 1"
connection.id: Wi-Fi connection 1
connection.uuid: 826416aa-2030-4984-9685-8962857f59d9
connection.interface-name: wlp3s0
...
Run Code Online (Sandbox Code Playgroud)
但是当我尝试提出它时,我得到了这个:
% sudo nmcli c up "Wi-Fi connection 1"
Error: Connection activation failed: No suitable device found for this connection.
Run Code Online (Sandbox Code Playgroud)
由于“nmcli connection show”清楚地表明该连接与 wlp3s0 相关联,我只能假设原因是 NetworkManager 认为该设备“不可用”
% nmcli d
DEVICE TYPE STATE CONNECTION
enp0s10 ethernet connected Wired connection 1
wlp3s0 wifi unavailable --
lo loopback unmanaged --
Run Code Online (Sandbox Code Playgroud)
大多数人对此的问题似乎可以通过“rfkill unblock wifi”解决。但是,即使在这样做并重新启动 NetworkManager 之后,我仍然无法连接到 wifi...
% rfkill unblock wifi
% rfkill list
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
2: brcmwl-0: Wireless LAN
Soft blocked: no
Hard blocked: no
% sudo systemctl restart NetworkManager
% nmcli d
DEVICE TYPE STATE CONNECTION
enp0s10 ethernet connected enp0s10
wlp3s0 wifi unavailable --
lo loopback unmanaged --
% sudo nmcli c up "Wi-Fi connection 1"
Error: Connection activation failed: No suitable device found for this connection.
Run Code Online (Sandbox Code Playgroud)
在 /var/log/syslog 中,我看到这些有趣的行:
Dec 30 15:55:24 providence NetworkManager[3851]: <info> [1483142124.5273] (wlp3s0): using nl80211 for WiFi device control
Dec 30 15:55:24 providence NetworkManager[3851]: <info> [1483142124.5299] manager: (wlp3s0): new 802.11 WiFi device (/org/freedesktop/NetworkManager/Devices/0)
Dec 30 15:55:24 providence kernel: [ 1498.556769] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready
Dec 30 15:55:24 providence NetworkManager[3851]: <info> [1483142124.5359] device (wlp3s0): state change: unmanaged -> unavailable (reason 'managed') [10 20 2]
Run Code Online (Sandbox Code Playgroud)
“原因'管理'”到底是什么意思??
我还尝试通过将其放入 /etc/NetworkManager/conf.d/ 来禁用 NetworkManager 中 wifi 的电源管理:
[connection]
wifi.powersave = 2
Run Code Online (Sandbox Code Playgroud)
重新启动后,界面再次被阻止...
我一定错过了一些非常明显的东西吗?因为这太疯狂了……
附:值得指出的是,这为我提供了范围内的 wifi 网络的预期列表,似乎表明硬件很好:
% sudo ifconfig wlp3s0 up
% sudo iwlist wlp3s0 scan
...
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了同样的问题,所有命令的输出都相同,并且日志显示了相同的错误。运行# iwlist wlp4s0 scanning(我的 wifi 接口不是你的 wlp3s0),显示所有网络,就好像 wifi 工作正常一样。
如果# rfkill list显示被阻止,您需要切换它以使其不受阻止。然后,运行# /etc/init.d/networking restart && dhclient应该启用 wifi 网络,现在 nmcli 应该可以看到它。
$ nmcli radio 应该显示:
WIFI-HW WIFI WWAN-HW WWAN
enabled disabled enabled enabled
Run Code Online (Sandbox Code Playgroud)
现在,nmcli 提供了一种通过命令启用该 wifi 无线电的方法$ nmcli radio wifi on- 在此之后,您的界面应该可以工作了!
希望这对任何阅读本文的人都有效,其他解决方案似乎都无法为我解决。