During the installation of Ubuntu, it detected my wireless adapter perfectly fine and was able to connect to it without any problems. However, after installation, it no longer detects the wireless adapter.

First I tried setting up etc/network/interfaces:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
wpa-ssid IDHERE
wpa-psk PASSHERE

Then I tried the changes:

sudo ifdown wlan0 && sudo ifup -v wlan0

Which resulted in:

wpa_supplicant: /sbin/wpa_supplicant daemon failed to start

This didn't tell me much so I tried:

sudo /etc/init.d/networking restart

This resulted in an error telling me to run:

journalctl -xe

And here I got the errors:

Could not read interface wlan0 flags: no such device
WEXT: Could not set interface 'wlan0' UP
wlan0: Failed to initialize driver interface

Since a wired connection is not available to me (broken port), I started doing research on how to install the drivers from the original CD (which is on USB in my case). I found this question here:

How can I install and download drivers without internet?

However, the answer talks about Ubuntu 15.04. The named directories no longer exist and I couldn't find anything remotely simular to it on the disk. So after finding tons of Google answer talking about how to do it with a UI or a wired connection (which both aren't helpfull at all for me), I'm truely at a loss and ask you guys for some help.

  • Just checking: is your wireless card in fact wlan0? Try sudo lshw -class network. – Jos Nov 3 '16 at 13:01
  • @Jos I'm quite new to Ubuntu. I've run it and I'm seeing all kinds of information. Do you mind telling me what I'm looking at and what information is important? On a side note: It's oddly enough telling me both the wired and wireless adapters are disabled, but do have a driver installed – icecub Nov 3 '16 at 13:03
  • You will see a paragraph starting with "*-network" and giving all kinds of details about your wireless card (and another paragraph for your wired interface). You want to look at the "logical name". Or enter sudo lshw -class network | grep logical. – Jos Nov 3 '16 at 13:07
  • @Jos The wired one: logical name: enp2s0 The wireless one: logical name: wlp3s0 – icecub Nov 3 '16 at 13:09
  • 2
    There you go. Change wlan0 to wlp3s0 in your configuration files and try again. – Jos Nov 3 '16 at 13:13

Earlier on, network interfaces were assigned names in an inconsistent way. If you had one interface called eth0, and added another, the first one might be called eth1 all of a sudden. What was needed was a way to give names to network interfaces that didn't depend on other interfaces being present, but depended only on the hardware connection.

This was provided with some version of systemd that was released a few years back. It was called "Predictable Network Interfaces Names" (although "Persistent" would have been a better qualification as the names are not all that easy to predict). An interface will get its name based on BIOS information, and the name won't change until you take out the interface and e.g. put it in a different hardware slot.

Your installation, at this point, suffers from Predictable Interface Names. Your wireless card had been called wlan0 for years, but now it suddenly has another name. How can you tell? Do

sudo lshw -class network

This will show a paragraph starting with "*-network" and giving all kinds of details about your wireless card (and another paragraph for your wired interface). You want to look at the "logical name". In your case, it has changed to wlp3s0.

Change the name of the interface in your configuration files from wlan0 to wlp3s0, and you're done.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.