My WiFi was working perfectly in Ubuntu 16.04.4. I rebooted my laptop and after logging in, nm-applet did not show any WiFi AP. WiFi modem is up and running. But My nm-applet did not show anything.

But even then my WiFi is not working.

$ iwconfig gives

lo        no wireless extensions.

enp3s0    no wireless extensions.

My Kernel version: 4.4.0-116-generic

$ls /lib/modules/4.4.0-116-generic/updates/dkms/ gives


$ lspci -vvnn | grep -A 9 Network gives

02:00.0 Network controller [0280]: Broadcom Limited BCM43142 802.11b/g/n [14e4:4365] (rev 01)
    DeviceName: NAMI
    Subsystem: Hewlett-Packard Company BCM43142 802.11b/g/n [103c:804a]
    Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 3
    Region 0: Memory at f0c00000 (64-bit, non-prefetchable) [size=32K]
    Capabilities: <access denied>
    Kernel modules: bcma, wl

$ lshw -C network spits

*-network UNCLAIMED
   description: Network controller
   product: BCM43142 802.11b/g/n
   vendor: Broadcom Limited
   physical id: 0
   bus info: pci@0000:02:00.0
   version: 01
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress cap_list
   configuration: latency=0
   resources: memory:f0c00000-f0c07fff
   description: Ethernet interface
   product: RTL810xE PCI Express Fast Ethernet controller
   vendor: Realtek Semiconductor Co., Ltd.
   physical id: 0
   bus info: pci@0000:03:00.0
   logical name: enp3s0
   version: 07
   serial: fc:3f:db:d5:e7:d7
   size: 100Mbit/s
   capacity: 100Mbit/s
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
   configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl8106e-1_0.0.1 06/29/12 ip= latency=0 link=yes multicast=yes port=MII speed=100Mbit/s
   resources: irq:32 ioport:2000(size=256) memory:f0b00000-f0b00fff memory:f0800000-f0803fff

$ sudo apt --reinstall bcmwl-kernel-source

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libqscintilla2-12v5 libqscintilla2-l10n libqt4-opengl linux-headers-4.4.0-119
  octave-info thermald
Use 'sudo apt autoremove' to remove them.
The following packages will be upgraded:
1 upgraded, 0 newly installed, 0 to remove and 16 not upgraded.
Need to get 0 B/1,544 kB of archives.
After this operation, 51.2 kB of additional disk space will be used.
(Reading database ... 374783 files and directories currently installed.)
Preparing to unpack .../bcmwl-kernel-source_6.30.223.271+bdcom-0ubuntu1~1.2_amd64.deb ...
Removing all DKMS Modules
Unpacking bcmwl-kernel-source ( over ( ...
Setting up bcmwl-kernel-source ( ...
Loading new bcmwl- DKMS files...
Building only for 4.4.0-116-generic
Building for architecture x86_64
Building initial module for 4.4.0-116-generic

Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-116-generic/updates/dkms/


DKMS: install completed.
modprobe: ERROR: could not insert 'wl': Exec format error
update-initramfs: deferring update (trigger activated)
Processing triggers for shim-signed (1.33.1~16.04.1+13-0ubuntu2) ...
Secure Boot not enabled on this system.
Processing triggers for initramfs-tools (0.122ubuntu8.11) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-116-generic

  • Possibly helpful: ubuntuforums.org/showthread.php?t=2386370 – chili555 Apr 16 '18 at 17:47
  • Yeah, I tried to install an old kernel in 4.4.0-112 on my pc. I downloaded it and I booted with the 4.4.0-112 kernel, but now I cannot even access my ethernet. Am I missing out something here? – Saravanan Rajenderan Apr 17 '18 at 23:47
  • Is the module loaded? lsmod | grep r816 Does it show up in ifconfig? – chili555 Apr 17 '18 at 23:56
  • No my ethernet interface is not showing up in ifconfig in the old kernel. lsmod | grep r816 gives nothing. – Saravanan Rajenderan Apr 18 '18 at 12:41
  • What is the exact result of the terminal command: sudo modprobe r8169 && dmesg | grep r816 ? – chili555 Apr 18 '18 at 13:54

I found the solution from this post. As mentioned in the post this is just a workaround not a solution for the problem. According to the post, there is a bug in loading the retpoline module magic. So what we do here is just load it no matter RETPOLINE Is available or not. This fixed the issue for me. Thank you chili555, for your assistance.

vim /usr/src/linux-headers-*/include/linux/vermagic.h

STEP 1 : Find the #ifdef RETPOLINE and comment it ( \\#ifdef RETPOLINE ) and add a line #if 1 below the commented line. The final file shoule look like the one given below and save the file.

#include <generated/utsrelease.h>

/* Simply sanity version stamp for modules. */
#define MODULE_VERMAGIC_PREEMPT "preempt "
#define MODULE_VERMAGIC_MODVERSIONS "modversions "
//#ifdef RETPOLINE
#if 1
#define MODULE_VERMAGIC_RETPOLINE "retpoline "

#define VERMAGIC_STRING                     \
    UTS_RELEASE " "                         \
    MODULE_ARCH_VERMAGIC                    \

STEP 2: Now reconfigure the bcmwl-kernel-source package sudo dpkg-reconfigure bcmwl-kernel-source.
STEP 3: Now restart the network manager sudo service network-manager restart.
STEP 4: Enjoy your WiFi :)

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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