Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
284 changes: 188 additions & 96 deletions content/wireless.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
title: Wireless Troubleshooting
description: >
If you’re having problems with your wireless Internet connection, take a look at the suggestions in this article.
If your computer can’t connect to wireless networks or the connection is unstable, use this guide to diagnose and resolve the issue.
keywords:
- wireless
- wifi
- Wi-Fi
- support
- System76

Expand All @@ -16,61 +16,178 @@ section: network-troubleshooting
tableOfContents: true
---

WiFi issues are influenced by many different factors, including:
If your computer can’t connect to wireless networks or the connection is unstable, this guide can help you diagnose and fix the issue.

- Hardware (WiFi card, access point)
- Settings at both ends of the connection
- The local environment
---

## Initial Troubleshooting

1. Reboot the router/modem and the computer.

2. Toggle Airplane Mode from the system menu in the top-right corner of the screen, or using a keyboard shortcut (most commonly **Fn + F11**, depending on your System76 model).

3. If you've installed the `backport-iwlwifi-dkms` package for your Intel wireless card and your Wi-Fi issues began after an update, removing that package may resolve the issue. Run this command:
```bash
sudo apt remove backport-iwlwifi-dkms
```
...then restart your computer.

4. Temporarily use a phone hotspot to confirm whether the network or your computer is the issue.

5. [Boot from a Live USB](https://support.system76.com/articles/live-disk) of your distribution to determine whether the issue exists outside your installed system.

## Router and Access Point Recommendations

- Make sure your access point is configured for stability and compatibility.

- Use 2.4 GHz channels 1, 6, or 11 to minimize overlap.

- Set the channel width to 20 MHz for crowded networks.

- For 5 GHz, use an explicit channel instead of “Auto” when troubleshooting.

- Use mixed mode (b/g/n/ax) if devices vary by generation.

- If a single device struggles, temporarily set your router to a widely supported mode (such as **802.11n-only**) and test connectivity.

- Avoid complex access point features such as:

- Band steering

- Aggressive airtime fairness

- Deep MAC filtering

- Ensure your device’s MAC address isn’t being filtered.

- Check your MAC address with:

```bash
ip link show | grep ether
```

Then confirm that MAC address is allowed in your router’s admin panel.

## Basic Troubleshooting
- Confirm what channel and frequency your connection is using:

If you’re having problems, try these steps first:
```bash
iw dev
iwlist wlan0 scan | grep -E 'SSID|Channel|Frequency'
```

- Try unplugging the wireless router or modem to reboot it.
- Try airplane mode by pressing <kbd>Fn</kbd>+<kbd>F11</kbd>, waiting 10s, then disabling.
- Try rebooting the computer.
## Device-Level Checks and Commands

Some router settings can cause problems. Try adjusting your access point to these settings:
These commands help verify whether your wireless card and drivers are functioning correctly.

- WPA2-AES is preferred over WPA/WPA2 mixed mode or TKIP.
- A channel width of 20 MHz in the 2.4 GHz band is more stable than automatic 20/40 MHz or fixed 40 MHz.
- Set 2.4Ghz and 5Ghz SSID names differently.
- Pick a fixed channel. Use either 1, 6, or 11 in the 2.4 Ghz band, rather than automatic selection.
- Check if the router is set to N speeds only. Auto B/G/N is preferred.
- Lower the max/burst speeds, turn off channel bonding, and reduce channel width. Setting the speed to 600 Mb/s or 450 Mb/s will use spread frequencies to achieve those speeds and may decrease stability. Try setting it to 289/300 Mb/s (N speed) or or 54 Mb/s (G speed).
- After making these changes, reboot the router.
- List all wireless network interfaces to confirm that your Wi-Fi interface (usually `wlp2s0` or `wlan0`) is recognized:
```bash
ip a
```
- Show wireless devices and their states:
```bash
iw dev
```
- Check for hardware or software Wi-Fi blocks:
```bash
sudo rfkill list
```
- Check NetworkManager device states:
```bash
nmcli device status
```
- Restart the network stack (safe to run at any time):
```bash
sudo systemctl restart NetworkManager
```
- View network-related boot logs:
```bash
journalctl -b | grep -i network
```
- View driver and firmware kernel logs:
```bash
sudo dmesg | grep -i -E 'wifi|wlan|firmware|ieee80211|rtl|brcm|ath'
```
- To save the logs to a file:
```bash
sudo dmesg | grep -i -E 'wifi|wlan|firmware|ieee80211|rtl|brcm|ath' > ~/wireless-dmesg.txt
```

If the issues started after you applied updates, try running this command to make sure a bad WiFi driver has not been installed, then reboot your computer:
## Driver and Firmware Checks

If the device is detected but unstable, verify the driver and firmware setup.

- Check for missing firmware messages:
```bash
dmesg | grep -i firmware
```
- Reinstall firmware packages:
```bash
sudo apt update
sudo apt install --reinstall linux-firmware
```
- Test with a different router or mobile hotspot.

## NetworkManager and Configuration Tips

NetworkManager controls Wi-Fi connections on many Linux systems, including Pop!_OS and Ubuntu systems by default.

To restart NetworkManager, run this command:

```bash
sudo apt remove backport-iwlwifi-dkms
sudo systemctl restart NetworkManager
```

## Advanced Troubleshooting
To delete and recreate saved connections, run these commands:

If the above steps aren't working, or you would like to fine tune and improve you connection, see the following steps.
```bash
nmcli connection delete <SSID>
nmcli device wifi connect <SSID>
```

If network connectivity seems unstable, try setting IPv6 to “Ignore” in the network settings:

### Regulatory Domain
1. Open Settings → Network.
2. Select your Wi-Fi connection.
3. Go to the IPv6 tab → change the method to Ignore.

In many cases, it's recommended to explicitly set the WiFi regulatory domain. Check yours with this command:
## Bluetooth and Airplane Mode Interactions

The `rfkill` command can be used to view whether Bluetooth, Wireless LAN (Wi-Fi), or both are disabled at a software or hardware level:

```bash
sudo iw reg get
sudo rfkill list
```

Sample output where Bluetooth and Wi-Fi are both enabled looks like this:

```
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
```

If you get 00, that is a one-size-maybe-fits-all setting. Find yours here: [ISO_3166](http://wikipedia.org/wiki/ISO_3166-1).
If anything is blocked, check that airplane mode is off and that Bluetooth and Wi-Fi are enabled in your system settings.

And set it permanently with this command:
This command can be used to restart the Bluetooth stack:

```
sudo systemctl restart bluetooth
```

If Wi-Fi drops after you've used Bluetooth (or vice versa), run the following command to add modprobe configuration to allow both Wi-Fi and Bluetooth to transmit at the same time:

```bash
sudo gedit /etc/default/crda
echo "options iwlwifi bt_coex_active=0" | sudo tee -a /etc/modprobe.d/iwlwifi.conf
```

Change the last line to read:
Reboot after running this command. Note that transmitting both Wi-Fi and Bluetooth at the same time can cause interference between the two; only certain wireless cards that don't track transmission properly (e.g. acting as if Bluetooth is always transmitting) need this option applied.

> REGDOMAIN=US
## Advanced Troubleshooting

Save and close the text editor.
If the above steps aren't working, or you would like to fine tune and improve you connection, see the following steps.

### IPv6

Expand Down Expand Up @@ -107,22 +224,13 @@ If you have trouble with a Bluetooth headset and keeping a steady downlink speed

### Power Management

Another way to help with Wifi issues is to turn off power management for the hardware. To do so, edit the configuration file with this command:
Another way to help with Wi-Fi issues is to turn off Wi-Fi power management. This can be done by adding the appropriate NetworkManager configuration using the following command, then rebooting your computer:

```bash
sudo gedit /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
echo -e "[connection]\nwifi.powersave = 2" | sudo tee /etc/NetworkManager/conf.d/default-wifi-powersave-off.conf
```

And change the file to read (effective upon reboot):

> \[connection\]
> wifi.powersave = 2

If `tlp` is installed, take a look at the settings file found here for additional Wifi power saving being enabled:

```bash
sudo gedit /etc/default/tlp
```
If TLP is installed, it may also enable Wi-Fi power saving. You can review its configuration in `/etc/default/tlp`.

## Useful Programs

Expand All @@ -140,70 +248,54 @@ sudo wavemon

## Useful Commands

```bash
iwevent
```

Run this command to watch what the Wifi hardware is doing. Pay attention to the disconnect reasons, and ignore the scans.

```bash
sudo systemctl restart NetworkManager
```

This command will restart the service that manages all Internet traffic on the computer, which is usually easier than restarting the computer.

```bash
dmesg | grep iwlwifi
```

This will check the hardware startup and driver loading messages.

```bash
lspci | grep Network
```

This will check if the hardware is being detected by the kernel.

```bash
lsmod | grep iwlwifi
```

This will check to see if the device driver (module) is loaded.

```bash
sudo rm /etc/NetworkManager/system-connections/*
```

This will erase the stored information about all wireless access points.

```bash
sudo apt install --reinstall network-manager
```

This will reinstall network-manager, which can fix some network issues.

**NOTE:** After reinstalling the above packages, fully shut down the machine and then power it back on, rather than rebooting. This ensures the hardware completely resets.
These are miscellaneous commands that may be useful for troubleshooting.

- To watch what the Wi-Fi hardware is doing, including disconnection reasons and scan logs:
```bash
iwevent
```
- To check what hardware network controllers are detected by your system:
```bash
lspci | grep Network
lsusb | grep Network
```
- To check if the Intel Wi-Fi kernel module is loaded:
```bash
lsmod | grep iwlwifi
```
- To erase all saved network information, such as Wi-Fi passwords and other configuration:
```bash
sudo rm /etc/NetworkManager/system-connections/*
```
- To reinstall NetworkManager:
```bash
sudo apt install --reinstall network-manager
sudo systemctl poweroff
```
After the system has completely powered off, power it back on. (This allows network hardware to fully reset.)

## Additional Info

Wifi Speeds and Frequencies:
Wi-Fi Speeds and Frequencies:

- 54 Mb/s uses the 802.11g & 802.11b standards.

- 145 Mb/s and 300 Mb/s modes use the 802.11n standard and 20MHz or 40MHz bandwidths.

- 300Mbps / 40Mhz will provide the maximum performance in most cases.

- 145Mbps / 20MHz will work better in areas with more access points.
- 450Mbps uses a 60Mhz channel width and 600Mbps uses a 80Mhz channel width, and is typically less stable.

The name of the Linux driver for Intel Wifi cards is called <u>iwlwifi</u> and is included in the kernel by default. All information about the driver can be found here:
- 450Mbps uses a 60Mhz channel width and 600Mbps uses a 80Mhz channel width, and is typically less stable.

[wireless.wiki.kernel.org/en/users/drivers/iwlwifi](https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi)
The name of the Linux driver for Intel Wi-Fi cards is called <u>iwlwifi</u> and is included in the kernel by default. All information about the driver can be found [on the Kernel.org wiki](https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi).

The newest version of the <u>linux-firmware</u> package, which contains the iwlwifi driver, can be found here:
Sometimes the newest version of the `linux-firmware` package will clear up occasional bugs. You can download the newest `.deb` package from [the Kernel.org Ubuntu mirror](https://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware).

[mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware](https://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware)
### Windows Dual Boot

Sometimes the newest version of the firmware will clear up occasional bugs. Please download the newest `.deb` package.
If you're dual booting Windows, you may lose access to your Wi-Fi card entirely after running driver/OS updates in Windows. You may be able to gain access to your Wi-Fi card again by disabling "Fast Startup" in the Windows power options before booting back into Pop!_OS.

### Windows Dual Boot
## Contact System76 Support

If you are dual booting Windows, you may lose access to your wifi card entirely after running driver/OS updates in Windows. You may be able to gain access to your wifi card again by disabling "Fast Startup" in the Windows power options before booting back into Pop!_OS.
If you purchased a System76 computer and you’ve tried all the steps above, but your wireless connection still isn’t working as expected, please collect the output from the diagnostic commands and [contact System76 support](https://system76.com/contact/support).
Loading