You are correct it is unlikely that the bios is the cause if the wifi works on other distros. However it is possible that differences between distros especially with kernels and firmware could affect your wifi usability with an outdated bios.
I would also check that your regulatory domain (regdom) is set correctly.
Also try restricting your router to either the 2.4 or 5 GHz bands to see if that makes any difference.
Be sure you are not using a hidden access point in your router.
Some other things to try:
Issues with ath10k adapters not being initialized at boot or dropped connections can sometimes be corrected with a kernel boot parameter.
Set Active-State Power Management (ASPM) to off at runtime.
Create a grub config backup:
cp /etc/default/grub /etc/default/grub.bak
Open the grub configuration file located in:
/etc/default/grub
Add the "pcie_aspm=off" kernel boot parameter to the the end of the grub load line.
The line you will need to edit will look similar to the line below:
GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=e677590f-a8b0-49ad-a6a1-bed005449d2f"
There will be many other entries with btrfs used with Garuda.
Add this parameter at the end of that line:
pcie_aspm=off
The modified grub load line should now look similar to this (there will be many other entries with btrfs):
GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=e677590f-YOUR-NUMB-BERS-HEREo449d2f pcie_aspm=off"
After adding the boot parameter and saving your changes, run:
sudo update-grub
Reboot.
This parameter will disable pcie Active-State Power Management (ASPM).Using this parameter should have minimal impact on a laptop's run time while on battery.
Sometimes it is also best to add a further kernel boot parameter (as below) with Atheros wifi adapters:
pcie_aspm=off ath10k_core.skip_otp=y
Paste the following contents into a terminal:
nmcli networking off
sleep 1
sudo systemctl stop NetworkManager
sleep 1
sudo ip link set wlp2s0 down
sleep 1
sudo modprobe -r btusb
sleep 1
sudo rmmod -vf ath10k_pci
sleep 2
sudo rmmod -vf ath10k_core
sleep 2
sudo modprobe -v ath10k_pci
sleep 2
sudo ip link set wlp2s0 up
sleep 1
sudo systemctl start NetworkManager
sleep 2
nmcli networking on
Check your connectivity after running those commands. Post the outputs please.
You can also test this alternate version:
nmcli networking off
sleep 1
sudo systemctl stop NetworkManager
sleep 1
sudo ip link set wlp2s0 down
sleep 1
sudo modprobe -r btusb
sleep 1
sudo rmmod -vf ath10k_pci
sleep 2
sudo rmmod -vf ath10k_core
sleep 2
sudo modprobe -v ath10k_pci nohwcrypt=1
sleep 2
sudo ip link set wlp2s0 up
sleep 1
sudo systemctl start NetworkManager
sleep 2
nmcli networking on
Also please post:
sudo dmesg | grep -Ei 'error|fail|firm|deauth|qos|crda|regdom|cfg80211|alpha2|wl|blue' | grep -viE 'acpi|ras|nvidia|eth'
systemctl list-units | grep -iE '(net|dhcp|conn)'
systemctl --failed --all
lsmod |sort