问题: Ubuntu 22.04 LTS 上的 WiFi 比 Windows 10 上的慢得多。连接的下载速度约为 21-26 Mb/s,上传速度相似,而在 Windows 和 iOS 上,下载速度为 330-360 Mb/s。
英特尔WNA的潜在解决方案:
解决此问题时,首先要检查计算机中的无线网络适配器 (WNA),其次是此 WNA 的相关 Ubuntu 驱动程序。如果是英特尔的,解决方案可能是在options iwlwifi 11n_disable=8
文件中添加行/etc/modprobe.d/iwlwifi.conf
,或者如果行已经存在,则将此参数的值更改为 8。此值允许“积极 TX”。就我而言,硬件是Qualcomm Atheros QCA9377 802.11ac
,因此上述解决方案不适用。相关驱动程序是ath10k
。
信息命令:
$ iwconfig
$ lsmod | grep ath10k(=无线网络适配器驱动程序的名称)
$ sudo dmesg| grep -e ath -e wl
$ sudo lshw -C 网络
$ nmcli 设备 wifi 列表
$ sudo dmesg | grep ath | egrep "regdomain|国家"
$ sudo dmesg| grep 信标
$ iw reg 获取
可能的解决方案:
- sudo apt 安装固件-atheros
- sudo apt 安装 linux-generic
- sudo iwconfig wlp3s0 关闭电源
- sudo apt install --reinstall linux-firmware
- 通过 Gnome 界面进入当前使用的网络设置中的 Ipv6 方法:
automatic
更改为disabled
- 添加行:(
options cfg80211 ieee80211_regdom=XX
我的国家 alpha2 代码)到etc/modprobe.d/cfg80211.conf
- 设置
wifi.powersave = 2
(从 3 开始)etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
- 删除
#
之前precedence ::ffff:0:0/96 100
/etc/gai.conf
- 正在检查
Additional drivers
(这是 Ubuntu 应用程序的名称) - 将网络分成两个独立的频段(我通过在运营商的 Web 应用程序界面中将光纤调制解调器模式从 更改
open
为 来实现此目的)router
- 尝试 2.4Ghz 频段(也比其他系统差)
- 有人通过升级/降级到不同版本的内核解决了这个问题,但我不想弄乱它。我的内核是目前最新的(6.2.0-37-generic)。
- 将控制无线连接的后端组件从手动设置切换
wpa_supplicant
为iwd
手动设置。
尝试过的所有方法都无法给 Wifi 速度带来明显的变化。
如需解决方案,请查看接受的答案。
资料来源:
- 已解决:WLAN ath5k:设置了监管域但被忽略?
- 我的 Qualcomm Atheros QCA9377 无线适配器无法在 Ubuntu 20.04 LTS 中使用(供应商:联想型号:E41-25)
- Ubuntu 22.04LTS 中的 wifi 问题
- 22.04:WiFi 比 Windows 慢一个数量级
- 如何在 Ubuntu 中更改 Atheros 无线 NIC 区域(监管域)?
- https://www.mail-archive.com/[电子邮件保护]/msg13040.html
- https://forums.debian.net/viewtopic.php?f=7&t=127880
- https://forums.debian.net/viewtopic.php?t=135693
- https://forums.debian.net/viewtopic.php?f=7&t=132008&p=639267&hilit=atheros+QCA9377#p639267
- https://wireless.wiki.kernel.org/en/users/drivers/ath
- https://lists.infradead.org/pipermail/ath10k/2020-November/012090.html
- 设置监管区域我以为这可能是解决方案,但在我的例子中并非如此。如果内核没有读取该区域,请检查这。
- https://github.com/pop-os/pop/issues/1470
- https://github.com/kvalo/ath10k-firmware/blob/master/README.md
- https://wireless.wiki.kernel.org/en/developers/regulatory/processing_rules
答案1
对我来说有效的方法是弹出并注入驱动程序。
sudo modprobe -r ath10k_pci && modprobe ath10k_pci
这两个命令必须在每次系统启动后执行,因此如果这是您的解决方案,请通过创建一个将在系统启动时由内核加载的服务来自动化执行。操作方法如下:
- 在 nano 中打开一个新文件
sudo nano /etc/systemd/system/ath10k-reload.service
- 添加下面的内容并保存(
Ctrl+o
Enter
Ctrl+x
)
[Unit]
Description=Reload ath10k_pci module to speed up Wifi
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart= modprobe -r ath10k_pci
ExecStart= modprobe ath10k_pci
[Install]
WantedBy=default.target
- 重新加载 systemd 配置管理器:
sudo systemctl daemon-reload
- 检查服务是否正常运行:
sudo systemctl start ath10k-reload.service
- b) 如果没有,请在日志中寻找线索:
cat /var/log/syslog | grep NetworkManager
- 启动时启用服务:
sudo systemctl enable ath10k-reload.service
不客气。
感谢@chilli555 在整个过程中给予我的帮助。
答案2
我们在您的设置中看到了这一点:
EEPROM 指示我们应该期待直接修复图
在这里找到您的监管域:http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
让我们从终端快速简便地添加参数:
sudo -i
echo "options cfg80211 ieee80211_regdom=IS" >> /etc/modprobe.d/cfg80211.conf
exit
当然,请用您所在国家/地区的两个字母代码替换示例中使用的 IS I。另外,请记住,这是三个单独的命令,每个命令都要连续运行一次,每个命令后都按 Enter 键。
重启。
有沒有改善?