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 lar_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 bt_coex_active=0 power_save=0 lar_disable=1
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 lar_disable=1
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
options iwlwifi lar_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
10th option disables location aware regulatory
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.
Edit:
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'