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.


See other articles on the same subject:

Make the ThinkPad T14 Gen 5 AMD compatible with Linux