ThinkPad T14 AMD - Fix WiFi on Ubuntu 24.04 / Mint 22
Published on 2024-09-27
ThinkPad T14 AMD - How to Resolve WiFi Problems on Linux Ubuntu 24.04 / Mint 22
Introduction
WiFi issues can be frustrating, especially on Linux systems with qualcomm chipset. This guide will walk you through fixing two common problems: high latency with NetworkManager and WiFi disconnection after suspend/resume cycles.
References
- Laptop model: ThinkPad T14 Gen 5 (AMD)
- Laptop reference: 21MCCTO1WW
- WiFi product name: Qualcomm Wi-Fi 6E NFA725A
- WiFi chipset name: QCNFA765 Wireless Network Adapter
Tutorial
1. Improve WiFi Performance on Linux
If you're experiencing unreliable WiFi or high latency, it might be due to NetworkManager's power-saving mode. Here's how to fix it:
Update powersave settings:
Edit the NetworkManager configuration file:
sudo nano /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
Replace the line:
wifi.powersave = 3
With:
wifi.powersave = 2
Save and exit.
After making this change, restart NetworkManager:
sudo systemctl restart NetworkManager
2. Fix WiFi Slowdown After Suspend / Resume on Linux
Some systems experience WiFi problems after several suspend/resume cycles. This can lead to authentication timeouts and unusable network speeds. Here's a solution:
Create a script to reset the WiFi module:
Create and edit this file:
sudo nano /lib/systemd/system-sleep/reset-wifi-module.sh
Add the following content to the file:
You can also download this script from my GitHub repository: Reset WiFi Module Script
#!/bin/bash
# This script unloads and reloads the Qualcomm WiFi module around suspend
case "$1" in
pre)
logger "Reset-WiFi-Module-Script : ---------- [PRE-SUSPEND START] ----------"
# Before suspend: unload the Qualcomm WiFi module
logger "Reset-WiFi-Module-Script : [PRE-SUSPEND START] Unloading Qualcomm WiFi module:"
modprobe -r ath11k_pci
if [ $? -eq 0 ]; then
logger "Reset-WiFi-Module-Script : [PRE-SUSPEND SUCCESS] Qualcomm module unloaded successfully."
else
logger "Reset-WiFi-Module-Script : [PRE-SUSPEND ERROR] Failed to unload Qualcomm module."
fi
logger "Reset-WiFi-Module-Script : ---------- [PRE-SUSPEND END] ----------"
;;
post)
logger "Reset-WiFi-Module-Script : ---------- [POST-RESUME START] ----------"
# After resume: reload the Qualcomm WiFi module
logger "Reset-WiFi-Module-Script : [POST-RESUME START] Reloading Qualcomm WiFi module:"
modprobe ath11k_pci
if [ $? -eq 0 ]; then
logger "Reset-WiFi-Module-Script : [POST-RESUME SUCCESS] Qualcomm module reloaded successfully."
else
logger "Reset-WiFi-Module-Script : [POST-RESUME ERROR] Failed to reload Qualcomm module."
fi
logger "Reset-WiFi-Module-Script : ---------- [POST-RESUME END] ----------"
;;
esac
Save and exit.
Set correct permissions:
Make the script executable and ensure it has the correct ownership:
sudo chmod +x /lib/systemd/system-sleep/reset-wifi-module.sh
sudo chown root:root /lib/systemd/system-sleep/reset-wifi-module.sh
3. Log Monitoring
To check if the script is working correctly, you can view the logs:
journalctl -xe | grep "Reset-WiFi-Module-Script"
Conclusion
By implementing these fixes, you should see improved WiFi stability and performance on your Linux system, both during normal operation and after suspend/resume cycles.
Other articles
See other articles on the same subject: