35

I have installed Ubuntu 17.10 on my notebook. However, I cannot connect to wi-fi because there is a "No Wi-Fi Adapter Found" message.

I don't have any idea what to do next.

  • My notebook : Asus X555LN-XX507H
  • Network Adapter : Broadcom 802.11n BCM43142 (14e4:4365)

(This is a follow-on from my earlier post, https://unix.stackexchange.com/questions/415639/kali-linux-no-wifi-adapter-found, where I was advised to try an easier system than Kali.)

6
  • 1
    Which version of Ubuntu are you using? What is the output from lspci or lsusb that defines the network adapter? (Both of these need to be added to your question.) Jan 10, 2018 at 19:15
  • Im using Ubuntu 17.10 I will add output from lspci and lsusb when I will have time
    – greed
    Jan 10, 2018 at 19:49
  • Welcome to U&L , please update with the output of lspci -knn | grep Net -A3
    – GAD3R
    Jan 11, 2018 at 10:30
  • 1
    Does it output different line than BCM43142 (14e4:4365) ?
    – greed
    Jan 11, 2018 at 19:23
  • Press Fn and F2(which F key is wifi button). It worked for me.
    – Rubel
    Mar 8, 2021 at 9:31

11 Answers 11

48

Just connect using usb cable to do usb tethering, open terminal by Ctrl+Alt+T and type:

sudo apt-get install --reinstall bcmwl-kernel-source

Then, reboot.

5
  • 3
    This didn't work for me in my ubuntu 17.10. I also tried to disable the secure boot in my bios but didn't have luck. As of now only ethernet cable works for me but when I try to use wifi connection I can't
    – Jaaayz
    Aug 26, 2018 at 14:53
  • 1
    On a fresh install you might need to run sudo apt update before trying to install anything. Nov 14, 2018 at 8:46
  • A simple solution is here: unix.stackexchange.com/a/507631/189124 Mar 21, 2019 at 8:20
  • I joined just to upvote, as this solved my issue, but I´d appreciate if you could give a bit more of insight on why that solved the issue Dec 14, 2019 at 22:05
  • this worked for me in Lenovo G550 Apr 17, 2020 at 15:19
14

So, the issue for me was because of secure-boot, uefi and the restriction on third party libraries which would be usually required for the network devices to work.

Following Rajat's comment proved useful for me on Ubuntu 18.04

sudo apt-get install --reinstall bcmwl-kernel-source

Reboot your OS and then follow instructions about Enrolling MUC. Once that is done, third party libraries should be able to interact with your devices and everything should work.

3
  • 1
    hi, I have been stuck on this issue for 2 days. please share how do you Enrolling MUC. thanks~!
    – Franva
    Sep 16, 2019 at 13:00
  • hi this doesnt work for ubuntu 18.04
    – Reine_Ran_
    Apr 2, 2020 at 10:49
  • hi this worked for me on ubuntu 18.04.3
    – beedot
    Oct 5, 2020 at 19:31
7

A problem with Broadcom BCM43142 (14e4:4365). the problem has been known for a long time. You need to download and install the package bcmwl-kernel-source

Source: https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx

1
7

This is not a Ubuntu issue.
This is not any driver issue.
This is caused by me (and possibly you).

While watching some video... I tried to increase volume with:
Fn + F10 key combination ... But I mistakenly pressed
Fn + F12 which was Wifi button with 'Radio' symbol on it, which disabled my wifi connection.

Running below command in Terminal, you can see the issue:

> rfkill list all 0: Toshiba Bluetooth: Bluetooth Soft blocked: no Hard blocked: no 1: phy0: Wireless LAN Soft blocked: no Hard blocked: yes <------ that's because I press Wifi button (above) mistakenly

Solution: Press again the Fn + F12 (or, some other key where you have Radio symbol)

Now run again the same command:

> rfkill list all 0: Toshiba Bluetooth: Bluetooth Soft blocked: no Hard blocked: no 1: phy0: Wireless LAN Soft blocked: no Hard blocked: no <------ no means solved.

Now, go to:

(Windows button, if you have on the keyboard) > Settings > Wifi > move to On > select your Wiki connection to enter credentials

Done, your internet is back on.

0
5

First, you'll need to find the exact model of the Broadcom network adapter chip your notebook has. "802.11n" is just the name of the Wi-Fi standard it supports: Broadcom has several wireless chips supporting that standard.

lspci -nn would be a good command to list all PCI(e) devices on your laptop and their PCI ID numbers: those numbers would allow a more accurate identification. lsusb will do the same for USB devices.

The lspci -nn listing line might look something like this:

12:00.0 Network controller [0280]: Broadcom Limited BCM43228 802.11a/b/g/n [14e4:4359]

Here, the numbers [14e4:4359] are the Device ID. The first part specifies the vendor (Broadcom = 14e4) and the second part identifies the device model.

The lsusb listing is a bit different, but the Device ID number is similar: 4 hexadecimal digits for the vendor id, a colon, and then 4 hexadecimal digits for the product ID.

You can check here for the Linux support status of various Broadcom chip models: https://wireless.wiki.kernel.org/en/users/drivers/brcm80211

Note that the supported Broadcom chips will need firmware: it is probably available pre-packaged in Ubuntu. If Ubuntu uses the same naming scheme as Debian, the firmware package name should be firmware-brcm80211.

With a bit of luck, installing this firmware package and rebooting might be enough to get your Wi-Fi functional if the necessary driver is already in kernel.

1
  • BCM43142 14e4:4365 but there is nothing like that on the site.
    – greed
    Jan 10, 2018 at 23:48
3

Installed Ubuntu 18.04 on an old Dell computer and got the same message (no wifi adapter found) when trying to connect to the internet. Tried some of the solutions proposed here and in other postings, none of which worked. Decided to re-install. During the installation there is a radial button "Install third party software for graphics and wi-fi hardware and additional media formats". The default is that this is not checked and so this option is not included in the default install. On the re-install, I checked this button, and after all the dust settled had no trouble connecting to the internet.

1
  • This worked for me -- circa 2008 macbook installing Ubuntu 18.04 !! Select "Install third party software for graphics and wi-fi hardware and additional media formats" during install. Nice - thanks! Jan 3, 2019 at 4:18
3

This may be covered in other answers, still: Post UBUNTU installation and ethernet connected; 2 steps:

  1. run (sudo apt-get install firmware-b43-installer) -- reboot
  2. run (sudo apt-get install --reinstall bcmwl-kernel-source) -- reboot

Context: The drivers are proprietary components of BroadComm. Ubuntu (a non proprietary) will not be able to install the packages due to authentication failure even though they are downloaded. Hence the separate steps are to be followed to get wifi enabled. This does not get you bluetooth though. It may need another set of steps.

LINKS : https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx and previous answers.

If ethernet is not connected, download package from other machines, copy to UBUNTU machine and run.

Thanks to perror, Rajat, GAD3R and Alex.

1

If the bcmwl-kernel-source solution did not work for you and you want to keep secure boot enabled, then try the following:

Create a set of keys for signing:

openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive common name/"

Import the key. You'll be prompted for a password here, which you'll need to remember. Your BIOS should prompt you for the password after the reboot.

sudo mokutil --import MOK.der

Restart:

reboot

You should have been prompted by your BIOS for the password. Assuming that worked, then you'll want to test that your MOK was successfully enrolled.

mokutil --test-key MOK.der

Now that your MOK has been enrolled. You will need to install the drivers for you wifi.

git clone https://github.com/lwfinger/rtlwifi_new.git
cd rtlwifi_new
git checkout extended
sudo make install

Your drivers are available for adding to your kernel, but you need to sign them first before adding them because you have secure boot enabled. So use the keys you generated earlier to sign your drivers.

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n rtlwifi)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n rtl_pci)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n btcoexist)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n rtl8723-common)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n phydm_mod)
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n rtl8723de)

Finally, add the rtl8723de drivers to the kernel in this order

sudo modprobe -r rtlwifi
sudo modprobe rtlwifi
sudo modprobe -r rtl_pci
sudo modprobe rtl_pci
sudo modprobe -r btcoexist
sudo modprobe btcoexist
sudo modprobe -r rtl8723-common
sudo modprobe rtl8723-common
sudo modprobe -r phydm_mod
sudo modprobe phydm_mod
sudo modprobe -r rtl8723de
sudo modprobe rtl8723de

On a side note: for the final step you might be able to get away with just writing:

sudo modprobe -r rtl8723de
sudo modprobe rtl8723de

modprobe knows which drivers rtl8723de depends on and should therefore be able to add everything that rtl8723de depends on along with rtl8723de. However, I didn't add my drivers this way and thus, can't guarantee this option will work.


Sources: 1, 2, 3

0

You could try the Realtek RTL8723DE module for Linux kernel version >= 4.15.

To install it, run:

git clone https://github.com/smlinux/rtl8723de.git -b 4.15-up
dkms add ./rtl8723de
dkms install rtl8723de/5.1.1.8_21285.20171026_COEX20170111-1414
depmod -a
reboot
1
  • Welcome, it is a Broadcom BCM43142 not a Realtek wifi card.
    – GAD3R
    Apr 9, 2019 at 15:31
0

this approach works on current kernels

uname -m && uname -r && cat /etc/*release
#    kernel 5.4 or newer including 5.8
x86_64
5.4.0-57-generic

first confirm you are using broadcom

lspci | grep -i network

output should appear similar to

02:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4352 802.11ac Wireless Network Adapter (rev 03)

or

03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4322 802.11a/b/g/n Wireless LAN Controller (rev 01)

sudo apt-get purge bcmwl-kernel-source  # buggy package circa year 2020 

example bug https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1878045

sudo apt-get install  broadcom-sta-source  broadcom-sta-dkms  broadcom-sta-common

then reboot and you should be OK

below is a crash file while still using ubuntu package bcmwl-kernel-source

 cat /var/crash/bcmwl-kernel-source.0.crash 
ProblemType: Package
DKMSBuildLog:
 DKMS make.log for bcmwl-6.30.223.271+bdcom for kernel 5.8.0-32-generic (x86_64)
 Thu 03 Dec 2020 08:50:14 PM EST
 make: Entering directory '/usr/src/linux-headers-5.8.0-32-generic'
 CFG80211 API is prefered for this kernel version
 Using CFG80211 API
   AR      /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/built-in.a
   CC [M]  /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.o
   CC [M]  /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o
   CC [M]  /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_iw.o
   CC [M]  /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_cfg80211_hybrid.o
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c: In function ‘osl_reg_map’:
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:949:10: error: implicit declaration of function ‘ioremap_nocache’; did you mean ‘ioremap_cache’? [-Werror=implicit-function-declaration]
   949 |  return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
       |          ^~~~~~~~~~~~~~~
       |          ioremap_cache
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:949:10: warning: returning ‘int’ from a function with return type ‘void *’ makes pointer from integer without a cast [-Wint-conversion]
   949 |  return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
       |         ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c: In function ‘wl_attach’:
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:593:20: error: implicit declaration of function ‘ioremap_nocache’; did you mean ‘ioremap_cache’? [-Werror=implicit-function-declaration]
   593 |  if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
       |                    ^~~~~~~~~~~~~~~
       |                    ioremap_cache
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:593:18: warning: assignment to ‘void *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
   593 |  if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
       |                  ^
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c: In function ‘wl_pci_probe’:
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:780:2: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   780 |  if ((val & 0x0000ff00) != 0)
       |  ^~
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:782:3: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
   782 |   bar1_size = pci_resource_len(pdev, 2);
       |   ^~~~~~~~~
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:783:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   783 |   bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2),
       |               ^
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c: In function ‘wl_reg_proc_entry’:
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:3376:58: error: passing argument 4 of ‘proc_create_data’ from incompatible pointer type [-Werror=incompatible-pointer-types]
  3376 |  if ((wl->proc_entry = proc_create_data(tmp, 0644, NULL, &wl_fops, wl)) == NULL) {
       |                                                          ^~~~~~~~
       |                                                          |
       |                                                          const struct file_operations *
 In file included from /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.c:38:
 ./include/linux/proc_fs.h:102:31: note: expected ‘const struct proc_ops *’ but argument is of type ‘const struct file_operations *’
   102 | extern struct proc_dir_entry *proc_create_data(const char *, umode_t,
       |                               ^~~~~~~~~~~~~~~~
 In file included from /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_cfg80211_hybrid.c:40:
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_cfg80211_hybrid.c: In function ‘wl_set_auth_type’:
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_cfg80211_hybrid.h:52:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
    52 |  if (wl_dbg_level & WL_DBG_DBG) {   \
       |     ^
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_cfg80211_hybrid.c:816:3: note: in expansion of macro ‘WL_DBG’
   816 |   WL_DBG(("network eap\n"));
       |   ^~~~~~
 /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_cfg80211_hybrid.c:817:2: note: here
   817 |  default:
       |  ^~~~~~~
 cc1: some warnings being treated as errors
 make[1]: *** [scripts/Makefile.build:288: /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.o] Error 1
 make[1]: *** Waiting for unfinished jobs....
 cc1: some warnings being treated as errors
 make[1]: *** [scripts/Makefile.build:288: /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/wl/sys/wl_linux.o] Error 1
 make: *** [Makefile:1780: /var/lib/dkms/bcmwl/6.30.223.271+bdcom/build] Error 2
 make: Leaving directory '/usr/src/linux-headers-5.8.0-32-generic'
DKMSKernelVersion: 5.8.0-32-generic
Date: Thu Dec  3 20:50:17 2020
DuplicateSignature: dkms:bcmwl-kernel-source:6.30.223.271+bdcom-0ubuntu5:/var/lib/dkms/bcmwl/6.30.223.271+bdcom/build/src/shared/linux_osl.c:949:10: error: implicit declaration of function ‘ioremap_nocache’; did you mean ‘ioremap_cache’? [-Werror=implicit-function-declaration]
Package: bcmwl-kernel-source 6.30.223.271+bdcom-0ubuntu5
PackageVersion: 6.30.223.271+bdcom-0ubuntu5
SourcePackage: bcmwl
Title: bcmwl-kernel-source 6.30.223.271+bdcom-0ubuntu5: bcmwl kernel module failed to build
1
  • Worked for me; wifi check box was not showing up with Kubuntu 20.04, kernel version 5.8.0-34 & 36, installing the broadcom packages fixed it.
    – Harshiv
    Jan 9, 2021 at 7:54
0

This happened on a couple of machines of mine running Ubuntu 20.04, both of them were inactive during several months, so here's my advice; before trying the sudo apt-get install --reinstall bcmwl-kernel-source do:

Manually update your machines date-time, then reboot.

You don't need internet access for this trick, obviously.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .