# Tl;dr
- Module configuration:
/etc/modprobe.d/rtw.conf
Should have:
| options rtw88_core disable_lps_deep=y
options rtw88_pci disable_msi=y disable_aspm=y
|
If you use grub just add pcie_aspm.policy=performance
to the kernel command line in /etc/default/grub
:
| GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 init=/sbin/openrc-init pcie_aspm.policy=performance"
|
- WPA configuration:
/etc/wpa_supplicant/wpa_supplicant.conf
or wherever you keep your wpa_supplicant.conf
file
Should have:
| network={
...
beacon_int=9000
}
|
(Append beacon_int=9000
to your main config)
Only run this if you use GRUB:
| su -c 'grub-mkconfig -o /boot/grub/grub.cfg'
|
Then no matter what you run:
Then wait a couple of minutes (2-5 min) and power your computer on
I use the rtl8821ce
driver for my WiFi and recently I noticed how often it begun to disconnect from the internet, wpa would always give me this output:
| ...
wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1
wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1
wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1
wlo1: CTRL-EVENT-SCAN-FAILED ret=-16 retry=1
...
|
Not sure how much it's related, but might be a sign for you /shrug
Anyway, I think I found a solution:
Add this exact content to /etc/modprobe.d/rtw.conf
| options rtw88_core disable_lps_deep=y
options rtw88_pci disable_msi=y disable_aspm=y
|
You can call rtw.conf anything you like
I don't know how it works on other bootloaders, but basically your kernel command line should include:
| pcie_aspm.policy=performance
|
# GRUB
- Open
/etc/default/grub
in some editor - Find where it says
GRUB_CMDLINE_LINUX_DEFAULT
- In that variable, between quotes add
pcie_aspm.policy=performance
For example in my config:
| GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 init=/sbin/openrc-init pcie_aspm.policy=performance"
|
Open /etc/wpa_supplicant/wpa_supplicant.conf
or wherever you store your wpa_supplicant.conf file and in the main config add:
For example:
| network={
ssid="My-C00l-Wifi"
psk=0000000000000000000000000000000000000000000000000000000000000000
beacon_int=9000
}
|
Or
| network={
ssid="My-C00l-Wifi"
psk="9Y-pAs$w0rd123"
beacon_int=9000
}
|
Depends on how your config is set up, but the only part that really matters is:
| network={
...
beacon_int=9000
}
|
# Finishing
If you are using GRUB before anything run this:
| su -c 'grub-mkconfig -o /boot/grub/grub.cfg'
|
And if not skip this command
After, no matter what you use:
Then wait a couple of minutes (like between 2 and 5), and then power on your computer, this should fix the network annoyances
# If your WiFi does not work anymore after this
Not a problem, just revert all the steps in this blog, look for a new solution and find out what option is causing it, usually it's the module
part, so try to modify or remove it
Although if this does not work and you find a solution comment on https://user.ari.lt/ and share the solution with others