我有一块联发科 MT7921,用于 bt/wifi,过去它给我带来了一些问题。它以前可以用于 BT+wifi,但现在只能用于 wifi。
我正在使用内核为 6.0.9 的 Ubuntu 22.10
lshw -C network
给出以下内容:
*-network
description: Wireless interface
product: MT7921 802.11ax PCI Express Wireless Network Adapter
vendor: MEDIATEK Corp.
physical id: 0
bus info: pci@0000:05:00.0
logical name: wlp5s0
version: 00
serial:
width: 64 bits
clock: 33MHz
capabilities: bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=mt7921e driverversion=6.0.9-060009-generic firmware=____010000-20220608210922 latency=0 link=no multicast=yes wireless=IEEE 802.11
resources: iomemory:7c0-7bf iomemory:7c0-7bf iomemory:7c0-7bf irq:109 memory:7c10100000-7c101fffff memory:7c10200000-7c10203fff memory:7c10204000-7c10204fff
nmcli d
显示 Wi-Fi 不可用
DEVICE TYPE STATE CONNECTION
enp6s0 ethernet connected Wired connection 1
bt disconnected --
wlp5s0 wifi unavailable --
lo loopback unmanaged --
我尝试重新启动 wpa_supplicant.service,然后重新启动 NetworkManager,但问题依然存在。
对于下一步该尝试什么,有什么想法吗?
答案1
所以最终结果是我的问题是 OS/UI 问题。
nmcli d
这表明 wifi 接口不可用。
iwlist wlp5s0 scanning
尽管接口显示为 nmcli 不可用,但 iwlist 能够扫描附近的 wifi SSID,表明硬件、驱动程序等实际上至少在一定程度上正常运行。
按照以下程序https://www.baeldung.com/linux/connect-network-cli我能够创建一个 wpa_supplicant.conf 文件,测试它,运行它,然后使用 dhcp 获取连接。
脚步:
- 检查你的无线接口(iwconfig)
- 激活接口(sudo ifconfig up>)
- 扫描以验证其是否正常工作(sudo iwlist s)
- 正如我的情况一样,创建一个 wpa_supplicant.conf 文件来处理密码(sudo wpa_passphrase <wlan_name>)
- 这将以交互方式提示输入 pw 并生成我们需要放入 conf 文件中的标准输出(我将其放在 /etc/wpa_supplicant.conf 中,但您可以将其放在任何您喜欢的位置)
- 检查驱动程序(wpa_supplicant)
- 测试(wpa_supplicant -i -c <wpa_supplicant.conf 文件路径> -D )- 我使用了 wext
- 如果连接成功,则在上面的 wpa_supplicant 命令中添加 -B 参数,以便在后台运行它(如果没有连接,请开始故障排除 :-) )
- 使用 dhclient 获取 IP (sudo dhclient)
重新启动时我会失去连接,但编写以下脚本可以轻松再次连接
#/bin/bash
wpa_supplicant -B -i wlp5s0 -c /etc/wpa_supplicant/wpa_supplicant.conf -D wext
dhclient wlp5s0
iwconfig 显示与 AP 的关联,ifconfig 显示 IP 等,但 nmcli 仍显示 wlp5s0 不可用。UI 仍显示旋转器,不会列出 SSID 或执行任何有用的操作,但我不知道当我很少使用 wifi 并且主要只在一个 AP 上使用时,我是否愿意处理这个问题。