Slow Painful WiFi speed Ubuntu

I dual booted Ubuntu 18.04.5 with Windows 10 Pro 21h1.

In windows and all other devices I'm getting 50 Mbps but when I use Ubuntu 18.04.5 I get 1Mbps max. In WiFi settings it displays link speed as same.

Here are the configs

wlp3s0    IEEE 802.11  ESSID:"SSID"  
      Mode:Managed  Frequency:2.432 GHz  Access Point: 00:00:00:00:00   
      Bit Rate=1 Mb/s   Tx-Power=20 dBm   
      Retry short limit:7   RTS thr:off   Fragment thr:off
      Power Management:off
      Link Quality=51/70  Signal level=-59 dBm  
      Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
      Tx excessive retries:0  Invalid misc:27   Missed beacon:0

Look at the BitRate here.

*-network
   description: Wireless interface
   product: QCA9377 802.11ac Wireless Network Adapter
   vendor: Qualcomm Atheros
   physical id: 0
   bus info: pci@0000:03:00.0
   logical name: wlp3s0
   version: 31
   serial: 00:00:00:00:00:00
   width: 64 bits
   clock: 33MHz
   capabilities: bus_master cap_list ethernet physical wireless
   configuration: broadcast=yes driver=ath10k_pci driverversion=5.4.0-81-generic firmware=WLAN.TF.2.1-00021-QCARMSWP-1 ip=xxx.xxx.xxx.xx latency=0 link=yes multicast=yes wireless=IEEE 802.11
   resources: irq:131 memory:b4000000-b41fffff

It gives okay speed with mobile hotspot but behaves like a snail with WiFi router only.

I turned off the power management for the wlp3s0.

I found something in /etc/modprobe.d/blacklist-ath_pci.conf saying

# For some Atheros 5K RF MACs, the madwifi driver loads buts fails to
# correctly initialize the hardware, leaving it in a state from
# which ath5k cannot recover. To prevent this condition, stop
# madwifi from loading by default. Use Jockey to select one driver
# or the other. (Ubuntu: #315056, #323830)
blacklist ath_pci

I can sense some problem with the iwlwifi.conf as well but as much as I understand it's a driver for Intel hardware but my WiFi is Qualcomm so I don't know what that have to do with it.

I have tried several others remedies which Google and Youtube offers but the Bit Rate remains the same as 1 Mb/s.

Any Help would be appreciated.

edit 1.0 : My phone supports enabling WiFi and Hotspot at the same time so I connect my phone to the router and Ubuntu machine to the phone's hotspot. It lead to getting 20Mbps on Ubuntu Machine. (It's link speed still shows 1 Mbps anyhow). However the router to Ubuntu Machine speed is 0.25-1.0 Mbps.


This card is notorious for it's sluggishness. There is a 3rd-party firmware available if you'd like to give it a try, though.

Here's how to install it:

  1. Open Terminal (if it's not already open)
  2. Go to the firmware directory for the card:
    cd /lib/firmware/ath10k/QCA9377/hw1.0/
    
  3. Rename two existing files (so they're not lost)
    sudo mv firmware-5.bin firmware-5.bin.orig
    sudo mv firmware-6.bin firmware-6.bin.orig
    
  4. Get the 3rd-party firmware:
    sudo wget "https://github.com/kvalo/ath10k-firmware/blob/master/QCA9377/hw1.0/CNSS.TF.1.0/firmware-5.bin_CNSS.TF.1.0-00267-QCATFSWPZ-1?raw=true" -O firmware-5.bin
    
  5. Reload the kernel module:
    sudo modprobe -r ath10k_pci
    sudo modprobe ath10k_pci 
    sudo dmesg | grep ath10k
    

That should give you proper transmission speeds.