Laptop wifi works great when unplugged but plugging it in causes wifi to slow

xk flag

As the title states my wifi is being weird. I have Googled around for a while now but have not found a solution. I have tried sudo iwconfig wlo1 power off and changing the line wifi.powersave = 3 in /etc/Network Manager/conf.d/default-wifi-powersave-on.conf to wifi.powersave = 2. I have tried restarting, moving closer to the router, and testing the network from other devices. I do not have an ethernet cable (yet) to test with.

Output of sudo lshw -C network (when plugged in or unplugged) is:

       description: Wireless interface
       product: Cannon Lake PCH CNVi WiFi
       vendor: Intel Corporation
       physical id: 14.3
       bus info: pci@0000:00:14.3
       logical name: wlo1
       version: 10
       serial: 04:d3:b0:ab:82:8b
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless
       configuration: broadcast=yes driver=iwlwifi driverversion=5.19.0-43-generic firmware=46.fae53a8b.0 9000-pu-b0-jf-b0- ip= latency=0 link=yes multicast=yes wireless=IEEE 802.11
       resources: irq:16 memory:a4414000-a4417fff
       description: Ethernet interface
       product: QCA8171 Gigabit Ethernet
       vendor: Qualcomm Atheros
       physical id: 0
       bus info: pci@0000:03:00.0
       logical name: enp3s0
       version: 10
       serial: 30:9c:23:fe:34:2a
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm pciexpress msi msix bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=alx driverversion=5.19.0-43-generic latency=0 link=no multicast=yes port=twisted pair
       resources: irq:16 memory:a4200000-a423ffff ioport:3000(size=128)

And output of

interface=$(nmcli -t -f active,device d wifi list | grep '^yes' | cut -d':' -f2)
echo -e "\n        \033[1;33mInterface:\033[0m $interface"
signal_strength=$(iw dev $interface link | awk '/signal/ {print $2}')
echo -e "        \033[1;33mSignal strength:\033[0m $signal_strength"
signal_quality=$(nmcli d wifi list ifname $interface | grep '*' | awk '{print $8}')
echo -e "        \033[1;33mSignal quality:\033[0m $signal_quality"
signal_bars=$(nmcli -t -f active,bars d wifi list | grep '^yes' | awk -F: '{print $2}')
echo -e "        \033[1;33mSignal bars:\033[0m $signal_bars"
speed=$(nmcli -t -f IN-USE,RATE dev wifi list | grep '*' | awk -F: '{print $2}')
echo -e "        \033[1;33mWi-Fi Speed:\033[0m $speed"
channel=$(nmcli -t -f IN-USE,CHAN dev wifi list | grep '*' | awk -F: '{print $2}')
echo -e "        \033[1;33mWi-Fi Channel:\033[0m $channel"
noise=$(awk 'NR==3 {print "Link: " $3 " Level: " $4 " Noise: " $5}' /proc/net/wireless)
echo -e "        \033[1;33mWi-Fi Noise, Link and Quality Level:\033[0m $noise";

when unplugged is:

        Interface: wlo1
        Signal strength: -66
        Signal quality: Mbit/s
        Signal bars: ▂▄▆_
        Wi-Fi Speed: 540 Mbit/s
        Wi-Fi Channel: 44
        Wi-Fi Noise, Link and Quality Level: Link: 44. Level: -66. Noise: -256

and when plugged in is:

        Interface: wlo1
        Signal strength: -63
        Signal quality: Mbit/s
        Signal bars: ▂▄▆_
        Wi-Fi Speed: 540 Mbit/s
        Wi-Fi Channel: 44
        Wi-Fi Noise, Link and Quality Level: Link: 46. Level: -64. Noise: -256

Edit: Thanks to waltinator's suggestion to use sudo journalctl --follow I was able to diagnose and find a solution. This command revealed that I was having a repeated Microcode SW error. Googling the error brought me to this page, the solution at the bottom to change /sys/module/iwlwifi/parameters to 11n_disable=1 bt_coex_active=0 uapsd_disable=1 seems to have solved my issue.

waltinator avatar
it flag
Watch `sudo journalctl --follow` as you unplug/wait 5 sec/plug/wait 5 sec/`^C` to get a hint. Please [edit] your question to add whatever information you get. Don't use Add Comment, or you'll classify yourself as "Does Not Follow Instructions (DNFI)", and I'll ignore you. I view DNFIs as unhelpable.
decisionmachine avatar
xk flag
@waltinator, thanks for the suggestion. I was able to figure out a solution and have edited my question with the solution that I found. Cheers!
I sit in a Tesla and translated this thread with Ai:


Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.