-
Is your bios up to date? If not then it would be a good idea to update it.
-
Are you dual booting with Windows?
-
Have you tried kernels 5.6 and 5.7. I would also suggest testing one of the real time kernels as well as several older kernels such as 4.19 and 4.14. Manjaro is capable of having more than one kernel installed at the same time. It is best to always have at least 2 kernels installed (at least one should be an LTS).
-
Have you tested alternate iwlwifi driver options for improvement? You can test them on the fly to see if different options may help.
Test different iwlwifi driver options:
You can temporarily test different iwlwifi driver options to see if your connectivity improves.
You can change the Intel iwlwifi drivers on the fly via rmmoding and modprobing.
Test one choice of options at a time by entering the following commands in the terminal individually.
Start at the top and work your way down the list, testing your connection for improvement after each change.
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi 11n_disable=8
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi 11n_disable=1
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=8
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=1
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=1 bt_coex_active=0
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=8 bt_coex_active=0
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=1 bt_coex_active=0 power_save=0
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=8 bt_coex_active=0 power_save=0
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi bt_coex_active=0 power_save=0
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=8 bt_coex_active=0 power_save=0
sudo lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi bt_coex_active=0 power_save=0 d0i3_disable=0 uapsd_disable=0
Those are some of the most commonly used options to improve connectivity with the iwlwifi driver. There are other options as well, but those are are the options that are commonly the most effective. Those options when executed from the terminal are not permanent. The modified driver option only persists until you reboot. The options can be made permanent by creating a configuration file in /etc/modprobe.d.
To permanently change the driver options, create the file:
/etc/modprobe.d/iwlwifi.conf
You can add any of the following lines to the iwlwifi configuration file to make the option(s) persistent::
options iwlwifi bt_coex_active=0
options iwlwifi bt_coex_active=1
options iwlwifi 11n_disable=1
options iwlwifi 11n_disable=8
options iwlwifi swcrypto=1
options iwlwifi power_save=0
options iwlmvm power_scheme=1
options iwlwifi d0i3_disable=1
options iwlwifi uapsd_disable=1
1st option: disables Bluetooth compatibility
2nd option: enables Bluetooth compatibility
3rd option: disables wireless N band
4th option enables antenna aggregation
5th option - adds software encryption
6th option - disables adapters power saving
7th option: another way to disable power saving (if also using the iwlmvm module)
8th option: disables the power save mode
9th option: disables the power save mode
Adding a comment ( "# " pound sign) in front of any option disables it. Try any, or all options in different combinations. Simply comment out, or delete any option that doesn’t improve performance. You can also delete the /etc/modprobe.d/iwlwifi.conf file completely if you find it is of no benefit.
Reboot after making any permanent driver option change in /etc/modprobe.d /iwlwifi.conf for the option to take effect.
Hopefully testing some of the available iwlwifi driver options might help improve your connectivity.
If you recieved an error message when running the above commands then you may need to try several different methods to change your options successfully.
If you received the following error:
rmmod: ERROR: missing module name.
Then run the following command:
sudo modprobe iwlwifi
Then execute the list of commands above sequentially to see if modifying your iwlwifi driver options can help improve your WiFi performance.
Revised Commands For Alternate Shells
If you are using a shell other than bash you may have to use a different version of the above commands so they will run successfully.
If you Recieved a list of errors similar to this:
grep: Documents: Is a directory
grep: Downloads: Is a directory
grep: Games: Is a directory
Then you will need to use the modified commands below.
Work your way down the list, running each command individually. Test your connection for improvement after running each command.
sudo -u $USER /bin/sh -lc 'lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1'
sudo -u $USER /bin/sh -lc 'lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi 11n_disable=8'
sudo -u $USER /bin/sh -lc 'lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi 11n_disable=1'
sudo -u $USER /bin/sh -lc 'lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=8'
sudo -u $USER /bin/sh -lc 'lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=1'
sudo -u $USER /bin/sh -lc 'lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=1 bt_coex_active=0'
sudo -u $USER /bin/sh -lc 'lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=8 bt_coex_active=0'
sudo -u $USER /bin/sh -lc 'lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=1 bt_coex_active=0 power_save=0'
sudo -u $USER /bin/sh -lc 'lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs sudo rmmod && sleep 3 && sudo modprobe iwlwifi swcrypto=1 11n_disable=8 bt_coex_active=0 power_save=0'
-
Perhaps these kernel boot parameters may help:
ipv6.disable=1 intel_iommu=off
The following command will automatically add the above kernel boot parameter(s) to /etc/default/grub:
sudo cp /etc/default/grub /etc/default/grub.bak && sudo sed '/^GRUB_CMDLINE_LINUX_DEFAULT=/s/"$/ ipv6.disable=1 intel_iommu=off"/g' -i /etc/default/grub
After adding the kernel boot parameter to grub, run:
sudo update-grub
Then, reboot and test for improvement.
To reverse the grub changes run:
sudo cp /etc/default/grub.bak /etc/default/grub
Then issue sudo update-grub
again.
-
Have you tried other Manjaro DE's from a live boot disk to see if the problem is present on other desktops as well.
-
On a boot attempt where your wifi is not operational please post:
rfkill list
Also please post the output from a boot where wifi is working as well.
If there is a soft or hard block returned on any of the rfkill commands be sure to post:
lsmod | sort
-
Consider disabling MAC address randomization in Network Manager with the following command:
echo -e "[device]\nwifi.scan-rand-mac-address=no" | sudo tee /etc/NetworkManager/conf.d/disable-random-mac.conf
Reboot (or restart NM) after creating, modifying, or removing any Network Manager configuration file.
Definitely perform this step if you are dual booting Windows.
If you wish to re-enable MAC randomization you can delete /etc/NetworkManager/conf.d/disable-random-mac.conf (or remove or comment out the conf files contents).
-
Blacklist Bluetooth (temporarily):
I have left this step until last as many people rely on Bluetooth. Sometimes the Bluetooth module can conflict with WiFi. As a troubleshooting step we will disable the Bluetooth driver module. This step can easily be reversed so please perform this step even if you rely on BT. If you use a Bluetooth keyboard/mouse it would be best to replace them temporarily with USB models.
The following command will automatically generate the conf file required to blacklist bluetooth:
echo "​blacklist btusb" | sudo tee /​etc/modprobe.d/blacklist_btusb.conf.
The blacklist can be reversed by deleting the file /etc/modprobe.d/blacklist_btusb.conf. Alternately place a pound sign if front of "​blacklist btusb" (or delete the contents of the file).
I would not recommend undoing my recommended fixes until you have tested them all. Leave the fixes in place until you have completed testing all my suggestions. Sometimes it takes severeral (or more) of the fixes in combination to effect a cure. Once you have worked through the list if nothing has improved you can consider which changes you want to roll back.
Hopefully some of those suggestions will improve your issue.