Atheros QCA9377 - Wifi is working too slow

It's been around 2-3 days since I shifted from Windows 10 to Garuda KDE Dragonised in my Dell Laptop (Intel Core i3 6th gen processor). Everything is working fine except the wifi network. I'm using a 300 Mbps wifi and the router is kept next to my room. Earlier in Windows 10, the network strength was always strong but in Garuda, no matter how close I get the wifi signal's strength always remain low to medium.
In addition to this, I'm also getting weak upload and download speeds. In many cases, the system can't even detect nearby wifi networks (that my smartphone can). I searched the forum and many people are facing similar issues and they were told to update their wifi driver or BIOS. But I don't know if my wifi's updated driver is available or not and from where I can download it. Dell's official website shows drivers for Ubuntu and Windows only.
Here is the garuda-inxi output. Please check it and help me resolve the issue. Let me know if you need any further information

System:
Kernel: 5.19.11-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.0
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=b045752d-ded3-434e-a114-fc77da77d434 rw rootflags=subvol=@
quiet quiet rd.udev.log_priority=3 vt.global_cursor_default=0
resume=UUID=af255ac5-9079-4dcd-b646-97184b0fd1ac loglevel=3
Desktop: KDE Plasma v: 5.25.5 tk: Qt v: 5.15.6 info: latte-dock
wm: kwin_x11 vt: 1 dm: SDDM Distro: Garuda Linux base: Arch Linux
Machine:
Type: Laptop System: Dell product: Vostro 15-3568 v: N/A
serial: <superuser required> Chassis: type: 9 serial: <superuser required>
Mobo: Dell model: 0D70P6 v: A00 serial: <superuser required>
UEFI-[Legacy]: Dell v: 3.6.0 date: 06/30/2020
Battery:
ID-1: BAT0 charge: 16.3 Wh (41.4%) condition: 39.4/41.4 Wh (95.0%)
volts: 14.3 min: 14.8 model: SMP DELL GR43778 type: Li-ion serial: <filter>
status: discharging
CPU:
Info: model: Intel Core i3-6100U bits: 64 type: MT MCP arch: Skylake
gen: core 6 level: v3 built: 2015 process: Intel 14nm family: 6
model-id: 0x4E (78) stepping: 3 microcode: 0xF0
Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache:
L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB desc: 2x256 KiB
L3: 3 MiB desc: 1x3 MiB
Speed (MHz): avg: 500 min/max: 400/2300 scaling: driver: intel_pstate
governor: powersave cores: 1: 500 2: 500 3: 500 4: 500 bogomips: 18399
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities:
Type: itlb_multihit status: KVM: VMX disabled
Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT
vulnerable
Type: mds mitigation: Clear CPU buffers; SMT vulnerable
Type: meltdown mitigation: PTI
Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
Type: retbleed mitigation: IBRS
Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
prctl
Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
sanitization
Type: spectre_v2 mitigation: IBRS, IBPB: conditional, RSB filling,
PBRSB-eIBRS: Not affected
Type: srbds mitigation: Microcode
Type: tsx_async_abort mitigation: TSX disabled
Graphics:
Device-1: Intel Skylake GT2 [HD Graphics 520] vendor: Dell driver: i915
v: kernel arch: Gen-9 process: Intel 14n built: 2015-16 ports:
active: eDP-1 empty: DP-1,HDMI-A-1,HDMI-A-2 bus-ID: 00:02.0
chip-ID: 8086:1916 class-ID: 0300
Device-2: Realtek Integrated Webcam type: USB driver: uvcvideo
bus-ID: 1-5:3 chip-ID: 0bda:5689 class-ID: 0e02 serial: <filter>
Display: x11 server: X.Org v: 21.1.4 with: Xwayland v: 22.1.3
compositor: kwin_x11 driver: X: loaded: modesetting
alternate: fbdev,intel,vesa gpu: i915 display-ID: :0 screens: 1
Screen-1: 0 s-res: 1366x768 s-dpi: 96 s-size: 361x203mm (14.21x7.99")
s-diag: 414mm (16.31")
Monitor-1: eDP-1 model: BOE Display 0x0674 built: 2016 res: 1366x768
hz: 60 dpi: 101 gamma: 1.2 size: 344x194mm (13.54x7.64")
diag: 395mm (15.5") ratio: 16:9 modes: 1366x768
OpenGL: renderer: Mesa Intel HD Graphics 520 (SKL GT2) v: 4.6 Mesa 22.1.7
direct render: Yes
Audio:
Device-1: Intel Sunrise Point-LP HD Audio vendor: Dell
driver: snd_hda_intel v: kernel alternate: snd_soc_skl,snd_soc_avs
bus-ID: 00:1f.3 chip-ID: 8086:9d70 class-ID: 0403
Sound Server-1: ALSA v: k5.19.11-zen1-1-zen running: yes
Sound Server-2: PulseAudio v: 16.1 running: no
Sound Server-3: PipeWire v: 0.3.58 running: yes
Network:
Device-1: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter
vendor: Dell driver: ath10k_pci v: kernel pcie: gen: 1 speed: 2.5 GT/s
lanes: 1 bus-ID: 01:00.0 chip-ID: 168c:0042 class-ID: 0280
IF: wlp1s0 state: up mac: <filter>
Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: Dell driver: r8168 v: 8.050.03-NAPI modules: r8169 pcie: gen: 1
speed: 2.5 GT/s lanes: 1 port: e000 bus-ID: 02:00.0 chip-ID: 10ec:8168
class-ID: 0200
IF: enp2s0 state: down mac: <filter>
Bluetooth:
Device-1: Qualcomm Atheros type: USB driver: btusb v: 0.8 bus-ID: 1-8:5
chip-ID: 0cf3:e009 class-ID: e001
Report: bt-adapter ID: hci0 rfk-id: 0 state: down
bt-service: enabled,running rfk-block: hardware: no software: yes
address: <filter>
Drives:
Local Storage: total: 931.51 GiB used: 15.73 GiB (1.7%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Toshiba model: MQ01ABD100
size: 931.51 GiB block-size: physical: 4096 B logical: 512 B
speed: 6.0 Gb/s type: HDD rpm: 5400 serial: <filter> rev: 3D scheme: MBR
Partition:
ID-1: / raw-size: 195.31 GiB size: 195.31 GiB (100.00%) used: 14.91 GiB
(7.6%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
ID-2: /home raw-size: 195.31 GiB size: 195.31 GiB (100.00%) used: 14.91
GiB (7.6%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
ID-3: /var/log raw-size: 195.31 GiB size: 195.31 GiB (100.00%) used: 14.91
GiB (7.6%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
ID-4: /var/tmp raw-size: 195.31 GiB size: 195.31 GiB (100.00%) used: 14.91
GiB (7.6%) fs: btrfs dev: /dev/sda1 maj-min: 8:1
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 11.48 GiB used: 0 KiB (0.0%) priority: 100
dev: /dev/zram0
ID-2: swap-2 type: partition size: 12.62 GiB used: 0 KiB (0.0%)
priority: -2 dev: /dev/sda2 maj-min: 8:2
Sensors:
System Temperatures: cpu: 51.0 C pch: 48.5 C mobo: 48.0 C
Fan Speeds (RPM): cpu: 0
Info:
Processes: 226 Uptime: 1h 19m wakeups: 3 Memory: 11.48 GiB used: 2.49 GiB
(21.7%) Init: systemd v: 251 default: graphical tool: systemctl
Compilers: gcc: 12.2.0 Packages: pm: pacman pkgs: 1285 libs: 352
tools: octopi,pamac,paru Shell: Bash v: 5.1.16 running-in: konsole
inxi: 3.3.21
Garuda (2.6.7-1):
System install date:     2022-09-26
Last full system update: 2022-09-27
Is partially upgraded:   No
Relevant software:       NetworkManager
Windows dual boot:       <superuser required>
Snapshots:               Snapper
Failed units:            systemd-backlight@leds:dell::kbd_backlight.service

I'm not even using randomised MAC address or Wifi power saving mode. The DNS is also set to Default.

Every single effort to help me resolve this issue is highly appreciated. Thanks!

Can you post a link to the resource you found? This might be a good place to start.

1 Like

Here it is
https://www.dell.com/support/home/en-in/product-support/servicetag/0-dUtPbkgyUUJXaDU0ekt1TUU4czFVQT090/drivers

Try to add these two kernel boot parameters:

pcie_aspm=off ath10k_core.skip_otp=y

See e.g.

or

But these appeared in several hits at an internet search.

2 Likes

Just tried. It made the speed even worse. Earlier, Ookla Speed Test results were around 40Mbps but now I'm getting just 10 Mbps (or slower).

Change the operating system to "BIOS" and the download will be available in the menu.

Here is the recommended procedure for installing the update:

https://www.dell.com/support/kbdoc/en-us/000131486/update-the-dell-bios-in-a-linux-or-ubuntu-environment

3 Likes

I'll try it and let you know the updates. Thanks!

Test some different kernels as the QCA9377 uses an in-kernel driver. The linux-lts and linux-mainline kernels are likely the best places to start.

It also wouldn't hurt to test out the linux-firmware-git package to see if there are any improvements using the newest firmware updates.

Have you tried disabling IPv6?

Have you tried a different DNS provider?

Have you tested your laptop on different networks?

Is the speed the same with your wfi when using an alternate network to connect to?

Have you tested your speed by connecting to your router directly using an ethernet cable?

Is your speed improved if you use your cell phone's wifi via USB phone tethering?

Have you power cycled (restarted) your router?

Do you have an alternate router you could try out just in case your router is part of the issue?

Although it is likely not a network or hardware issue it never hurts to eliminate all other possibilities. Please answer all questions put to you, so we can cross off other causes than your wifi adapter itself. It is more than likely your wifi model that is the issue, as this is the most problematic Atheros wifi adapter by a long shot. However, it is still possible other issues are in play, so we need to be thorough when troubleshooting.

Try running this command:

echo -e "[connection]\nwifi.powersave = 2" | sudo tee /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf

After running that command reboot or restart Network Manager. If that command brings no improvement, try the alternate version below:

echo -e "[connection]\nwifi.powersave = 0" | sudo tee /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf

Again, reboot or restart Network Manager after running this alternate command.

Hopefully something in my list will point us in the right direction, or correct your problem. Be sure to report back on every suggestion, and answer every question put to you in full.

4 Likes

Thanks a lot for your support.
linux-lts kernel seems to be working much better than the linux-zen
I'm getting 100-150 Mbps speed now with the lts kernel with the Quad9 DNS.
The above mentioned results were achieved by following steps:

  • Used linux-lts kernel
  • Switched to quad9 DNS
  • Restarted my wifi router
  • Disabled IPv6

However, I'm still getting 250-300 Mbps of speed in my smartphone with the same wifi router. This means that the router is working fine.
I would have tried linux-mainline kernel but it's still experimental and being a newbie I don't want to mess with other issues that may arise due to experimental kernel.
I would like to try the linux-frmware-git package. Could you please guide me to install it? In addition to this, I would like to try Google's DNS, but I can't find it in the Garuda Settings Manager now (when I first installed Garuda, Google's DNS was available in the list).

Thanks again!

1 Like

Oops, that’s just a typo–the package is linux-firmware-git. It is in the Chaotic AUR and can be installed like any other package (bring your system fully up to date with garuda-update, then install with pacman -S linux-firmware-git).

In general, git packages are a little closer to the edge (like the mainline kernel). You can get the most up-to-date fixes for your device, but on the other hand you can also get bugs that haven’t been squashed yet. If you do not see an improvement after switching to the git version, it’s probably best to switch back.

How did the BIOS update go?

Don’t forget to work through the rest of TBG’s list above, and note your observations in the thread–even if your observation is you did not see any apparent change.

If you wish you can configure this yourself in your /etc/resolv/conf, but I would encourage you to avoid using Google services if you can. Try OpenDNS instead.

3 Likes

It is very Important to not leave any questions unanswered.

Damn my old eyes, more and more things like that slip past me these days. Sorry about the typo, I’ll amend my original mistype so that others reading aren’t confused if that post is linked in the future.

Thanks for the great assistance @BluishHumility, (as always).

4 Likes

My laptop is currently running on BIOS 3.6 version whereas current available update is of 3.11 version. Shall I update the BIOS directly to 3.11 or proceed gradually with 3.7, 3.8, 3.9 and onwards?
I tried most of the steps as mentioned by @tbg
There are a few steps that I could not perform. I’m mentioning everything below:
:white_check_mark: Installed linux-firmware-git but I couldn’t see any changes in the performance
:white_check_mark: Using linux-lts kernel. This improved Wifi performance but not resolved the issue completely.
:white_check_mark: I’ve disabled IPv6 but that didn’t make any difference
:white_check_mark: Changed my DNS to OpenDNS and that’s working really well as compared to other available options.

:hourglass_flowing_sand: I don’t have any other wifi network nearby. So I’ve not checked the speed on any different network. I’ll check it in my college and let you know in a few days.
:hourglass_flowing_sand: My ethernet cable is not working. I’ve ordered another one and will test it once I receive it.

:white_check_mark: USB tethering is giving the exact result that I expect!
:white_check_mark: I restarted my router many times but again it made no difference.

:x: I do have an alternate router but that’s pretty old. That won’t connect optical fiber cable.

:white_check_mark: I’ve changed wifi powersaving mode by this command:

echo -e "[connection]\nwifi.powersave = 2" | sudo tee /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf

As of now I’m getting 100-120 Mbps of speed through my Laptop’s wifi. Whereas my smartphone is getting 250-300 Mbps of speed on the same network.
Through USB tethering, I’m getting exact same speed on my laptop that my smartphone is getting.

I hope this information will be helpful to proceed with further troubleshooting steps. Please do let me know if you need any further info.
Thanks!

3 Likes

According to this, Dell BIOS updates contain all previous updates so incrementally updating is not necessary. Grab whatever is the most recent version, and go for it!

3 Likes

Have you tested this kernel boot parameter yet?

ath10k_core.skip_otp=y

If yes, please test this again with your current changes.

Please post your edited /etc/default/grub file so that we can be sure you have made the changes correctly. Be sure to run sudo update-grub after editing.

Also try running this simple command to see if reloading the ath10k driver module helps:

sudo modprobe -r ath10k_pci && sudo modprobe ath10k_pci 

Also give the cloudflare DNS server a try, it is 1.1.1.1