diff --git a/content/wireless.md b/content/wireless.md index 2052091fc9..5a0ad1af3d 100644 --- a/content/wireless.md +++ b/content/wireless.md @@ -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 @@ -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 Fn+F11, 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 +nmcli device wifi connect +``` + +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 @@ -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 @@ -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 iwlwifi 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 iwlwifi 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 linux-firmware 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).