Home / Linux / Fix: Why Isn’t Linux Detecting My Wi-Fi Adapter?

Fix: Why Isn’t Linux Detecting My Wi-Fi Adapter?

Linux terminal on a laptop screen.
fatmawati achmad zaenuri/Shutterstock.com

Ever installed Linux on a laptop, rebooted, and found it can’t see your Wi-Fi card? It’s pretty deflating. Try these hints. One or more of them might just get it working.

Linux and Wi-Fi: It’s A Love-Hate Thing

Historically, Linux has had a somewhat strained relationship with Wi-Fi cards. In recent years, the situation has changed considerably—and for the better—but it is still possible to boot into your new Linux installation and get that sinking feeling when you realize you’ve got no Wi-Fi.

Installation routines are very good at identifying the various components of the target computer and configuring itself to work with that hardware. But problems can still happen.

Troubleshooting hardware issues is difficult, especially if the only computer you have on hand is the broken device. Obviously, not everything presented here will be applicable to all cases. But hopefully, something below will either fix your issue or point you in the right direction.

Before You Install

Do some research. Most distributions have listings of supported hardware. Ask on their forums whether anyone else is using the same make and model of laptop as you intend to use. Did they have any issues, and if so, how did they fix them?

To get a good idea of what you’ll be facing, boot your laptop from a Live USB or Live CD of the most recent release of your intended distribution. You can then make sure it works as you’d expect, without taking the leap of faith of installation.

Check things like the screen resolution and graphics, the mouse pad and gestures, and your Wi-Fi connection. If they work in the live environment they should work when you install the distribution. If any of these don’t work, try a Live CD from a different distribution. You might get different results. If that’s the case, can you identify why? Perhaps they use a more recent kernel, or they bundle the drivers with their installation.

Using the commands we show you in this article you can identify the Wi-Fi hardware inside your laptop. With that knowledge, you can do some web searches. If you’re lucky, your Wi-Fi card will be one that just works. If not, you’ll probably need to use some of the techniques we describe in this article.

What Does a PC's BIOS Do, and When Should I Use It?

RELATEDWhat Does a PC’s BIOS Do, and When Should I Use It?

Look up the key combination that you need to interrupt the boot sequence and enter the BIOS of the laptop. You might not need it, but if you do you’ll be glad you found it out in advance. It’s often one of the following: Esc, F2, F5, or F10. On a lot of laptops, you’ll need to hold down the “Fn” button at the same time. Make sure you know what the keys are to get into the BIOS on your laptop.

Plan on what you will do if the Wi-Fi doesn’t come up straight away. Can you use a wired connection to get your laptop onto the internet? If not do you have access to another computer? Can you tether to your cell phone and use that to access the internet?

Look for the Simple Gotchas

It’s easy to leap straight into the deep end and start investigating complex root causes, but don’t overlook the simple things.

Some laptops have physical external switches—usually sliders—that disable Wi-Fi. These are often well-camouflaged and designed to blend into the laptop’s bodywork. Accidentally sliding one of these to the “off” position will prevent the Wi-Fi from working no matter what you do in the operating system.

It’s also possible to disable Wi-Fi from the BIOS. Reboot your laptop and enter the BIOS. Find the networking or Wi-Fi section, and make sure Wi-Fi is enabled.

Let the boot sequence continue. Log in and open the system menu by clicking on the right-hand end of the GNOME status bar (or wherever network settings are located in your desktop environment). If there is a menu entry titled “Wi-Fi Off”, click it.

System menu with Wi-Fi not working

From the expanded menu options, select “Turn on”.

System menu with the Wi-Fi options expanded

The menu will close. Re-open it, and select “Settings.”

System menu with the Settings option highlighted

In the Settings application, select Wi-Fi from the sidebar, and ensure that the slider in the top bar is “on” and the airplane mode slider is “off”. Then select a Wi-Fi network to connect to.

The Settings application Wi-Fi pane

If you’re not seeing any of these options, your network card is not being recognized by the operating system.

Working Through the Issues

Now that we’re sure we’ve not missed any basic fixes, let’s get into the nitty-gritty of Wi-Fi card troubleshooting.

Is Any Type of Networking Operational?

If you have an ethernet connection on the laptop, and you can get a connection using a wired connection, then networking is operational on your laptop. It’s just the Wi-Fi that isn’t working. If you don’t have an Ethernet port, you may still have hope with an Ethernet adapter.

If you can’t get a connection through your wired connection, then there’s something wrong with the computer’s networking capability, period. Try to get your laptop to ping itself.

ping localhost

making the laptop ping to itself

If neither of those work, your network manager might be missing or broken. Try re-installing it. This will either install it or replace it if it is already installed.

On Ubuntu type:

sudo apt install network-manager

On Fedora use:

sudo dnf install network-manager

On Manjaro, the command is:

sudo pacman -Sy network-manager

Reboot, and see if that improves the situation.

Identifying the Wi-Fi Card Hardware

If you’re still without Wi-Fi, we need to identify the Wi-Fi card hardware. The lspci command will list all of your PCI devices.


Listing the PCI devices in the laptop

Look for an entry with “wireless” or “wi-fi” in its description.

The Wi-Fi card entry in the lspci command results

On this laptop, it’s a Realtek RTL8723BE. We can also see this information using the nmcli command, including the network interface identifier.


The network manager CLI command

Our wireless interface wlan0 is showing as unavailable, but it still identifies the hardware for us.

The Wi-Fi card and network interface identifier in the nmcli results

This entry is showing as “software disabled” because we’ve turned the Wi-Fi card off to emulate a failure. In a real-world scenario, the message here might give you a clue to what the issue is or what it may be related to.

Trying To Bring the Card Online

The iw command can sometimes prove useful. Substitute wlan0 for the appropriate interface on your computer.

iw dev wlan0 link

The iw command showing the wlan0 interface is not connected

We’re told the interface is not connected. Let’s try and bring it up.

sudo ip link set wlan0 up

RF-kill identified as a preventing the Wi-Fi card from operating

We’re told the network connection cannot be brought up because of rfkill . This is a utility to forcibly prevent radio frequency network interfaces from operating. We can get it to show us what it is blocking.

rfkill list

The rfkill command showing the Wi-Fi card is software blocked

And we can tell it to unblock whatever is blocked. Note that if the card is listed hard blocked it means there is a physical switch on the laptop that needs to be set to the “on” position. Let’s remove the software block.

rfkill unblock wifi
rfkill list

Using rkill to unblock the Wi-Fi card

In our case, this seems to have cured the issue. If your issue is still present, it’s likely to be a driver module issue.

Checking the Drivers

We can check the drivers in use using the lspci command, with the -k (kernel drivers) option.

lspci -k

Listing the kernel drivers and modules

Our wireless card is using the “rtl8723be” driver and kernel module.

The Wi-Fi card kernel drivers and modules

We can check whether this is being loaded by searching the system logs using dmesg and grep . Substitute “rtl8723be” with the name of the module for your computer.

sudo dmesg | grep rtl8723be

The Wi-Fi card driver entry in the system logs

If you don’t see a positive indication that the driver is loaded, check the website and online help for your distribution, and search for instructions on how to download drivers from your distribution. Distributions often have bundled packages of common drivers that you might be able to use, and they may well have distribution-specific applications to make loading new drivers simple.

If you can’t find a way to get your drivers from your distribution’s package manager or website, you can review the list of supported wireless cards, and find your card hardware in the list.

Closest match to our Realtek Wi-Fi Card in the list of known Linux Wi-Fi drivers

Clicking on the model—or closest match—of the Wi-Fi card takes you to a card-specific page. This page will list all of the cards in that family of hardware releases. See if your card is listed there.

In our case, we clicked on the “rtl8723ae” link, which gave us a page with the rtl8723be listed on it, too.

The exact match for our card hardware

At the bottom of the page is a link under the “firmware” title.

The link to the download page

This takes you to the git repository page for the firmware. Use the git clone command and one of the locations listed at the bottom of the page to download the repository. We used:

git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

Cloning the git repository

In the (large) downloaded directory tree you should find the appropriate driver file for your hardware.

The driver file in the downloaded repository directory tree

Refer to your distribution’s instructions on how best to load this.

Use Your Community

The communities associated with Linux distributions are one of the greatest strengths of Linux. Ask for help in the community of your chosen distribution. The chances are high that someone else has been through the same thing you’re battling with.

Leave a Reply

Your email address will not be published. Required fields are marked *



Check Also

How to Add and Remove Users on Ubuntu

Hannah Stryker / How-To Geek To create a new user named “maxn” ...