我已经在谷歌上搜索这个问题大半天了,但没有成功。我正尝试使用 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
...
但当我尝试提起它时,我得到了这个:
% sudo nmcli c up "Wi-Fi connection 1"
Error: Connection activation failed: No suitable device found for this connection.
由于“nmcli connection show”清楚地显示该连接与 wlp3s0 相关联,我只能假设原因是 NetworkManager 认为该设备“不可用”
% nmcli d
DEVICE TYPE STATE CONNECTION
enp0s10 ethernet connected Wired connection 1
wlp3s0 wifi unavailable --
lo loopback unmanaged --
大多数人遇到的问题似乎都可以通过“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.
在 /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]
“原因‘管理’”到底是什么意思?
我还尝试通过将其放入 /etc/NetworkManager/conf.d/ 中来禁用 NetworkManager 中的 wifi 电源管理:
[connection]
wifi.powersave = 2
重新启动后,接口再次被阻止......
我肯定忽略了一些非常明显的东西?因为这太疯狂了……
附言:值得指出的是,这给了我预期范围内的 wifi 网络列表,似乎表明硬件没有问题:
% sudo ifconfig wlp3s0 up
% sudo iwlist wlp3s0 scan
...
答案1
我遇到了同样的问题,所有命令的输出都相同,日志显示的错误也相同。运行# 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
现在,nmcli 提供了一种通过命令启用该 wifi 无线电的方法$ nmcli radio wifi on
- 此后,您的界面应该可以工作了!
希望这对任何读到这篇文章的人都有效,其他解决方案似乎都无法解决我的问题。
答案2
如果 WPA Supplicant 和 NetworkManager 都尝试管理同一接口,则可能会发生冲突。尝试使用以下方法禁用wpa_supplicant
:
sudo pkill wpa_supplicant
sudo systemctl disable wpa_supplicant.service
现在尝试:
nmcli d
它应该显示:
DEVICE TYPE STATE CONNECTION
wlp3s0 wifi connected myconnection
代替:
STATE: unavailable
希望对你有帮助!