Laptops, Raspberry Pis and even desktop computers may have internal wifi devices that can cause the following issues:
- If the internal wifi is switched off, then network-manager disables all external adapters as well, due to a bug. The solution is to either switch on the internal wifi, or to blacklist its module (driver).
- Configuring multiple wifi devices can be tricky. See how to select the correct device in network-manager, or blacklist the internal wifi module.
To check if your wifi is switched off, run the following command in a terminal:
rfkill list # Example output: 0: phy1: Wireless LAN Soft blocked: yes Hard blocked: no
If it reports “Soft blocked: yes”, then you can enable wifi from the network-manager menu, or with this command:
sudo rfkill unblock 0.
If it reports “Hard blocked: yes”, then you need to enable it by pressing Fn+F5 on your laptop keyboard, or whatever other F-key has a wifi icon on top of it (screenshot). Some laptops also have a hardware “wifi on/off” switch (screenshot). After switching it on, run
rfkill list again and verify that wifi is no longer blocked. If you’re having difficulties with this step, please send us your laptop model and some screenshots of its keys.
nm-connection-editor in a terminal in order to display the wifi connections dialog (screenshot). Double click on your wifi connection and then select the “Wi-Fi” tab. In the “Device” combo box you may select which devices can use that connection:
- Your internal adapter, which is usually wlan0 or wlp2s0
- Your external adapter, which is usually wlan1 or something like wlx4401bb912885
- Or you can delete its contents and leave it empty, so that the connection can be used with any adapter
To disable your internal adapter by blacklisting its module (driver), open a terminal and follow the procedure below. Note that for Raspberry Pi devices, this procedure is recommended instead.
The following command shows the names of the modules (drivers) for your wifi adapters. The module for our adapters is named 8812au, 88x2bu or 8821cu. The module for Intel adapters is named “iwlwifi”. For Atheros it’s “ath9k”, etc.
ls -d /sys/module/cfg80211/holders/*/drivers | cut -d/ -f6 # Example output: 88x2bu iwlwifi
In the following commands, replace “iwlwifi” with the module that you want to blacklist:
sudo -i echo "blacklist iwlwifi" > /etc/modprobe.d/local.conf update-initramfs -u reboot
After rebooting, the internal adapter should be disabled. Also, if you have more than one USB wifi adapters, remove the additional ones. Check if things work better that way.
If you ever need to remove the blacklist, use the following commands:
sudo -i rm /etc/modprobe.d/local.conf update-initramfs -u reboot