Ubuntu – How to get an Intel Wireless 3168 802.11ac wireless card to work

16.04intel-wirelesswireless

I have recently bought HP Pavilion 15 AU113TX laptop, which comes with Intel Core i5 7200U Kaby Lake processor, I have installed Ubuntu GNOME 16.04.1 on it, and it is unable to detect WiFi adapter.

  • Upon running lspci -nnk | grep -A2, I'm getting following information about adapter.

    028005:00.0 Network controller [0280]: Intel Corporation Device [8086:24fb] (rev 10)
            DeviceName: Intel Dual BandWireless-AC 3168 802.11 ac 1x1 WiFi + BT 4.0 Combo Adapter
            Subsystem: Intel Corporation Device [8086:2110]
    
  • But running rfkill list all, I see following output (WiFi missing there).

    0: hci0: Bluetooth
            Soft blocked: no
            Hard blocked: no
    
  • And here's the output for dmesg | grep iwl.

    [   13.570633] iwlwifi 0000:05:00.0: Unsupported splx structure
    [   13.635662] iwlwifi 0000:05:00.0: Direct firmware load for iwlwifi-3168-21.ucode failed with error -2
    [   13.650761] iwlwifi 0000:05:00.0: Direct firmware load for iwlwifi-3168-20.ucode failed with error -2
    [   13.650765] iwlwifi 0000:05:00.0: no suitable firmware found!
    
  • Output for ls -al /lib/firmware | grep 3168 Under both Stock Kernel 4.4.0-36 & Kernel 4.7.3.

    -rw-r--r--  1 root root   33168 Jul 13 01:03 hfi1_pcie.fw
    

Please note that this laptop is dual booted with Windows 10 Home, and WiFi is working fine there.

Now, I don't know if this adapter is supported by 4.4 kernel that Ubuntu 16.04 ships with, or it requires manual fix, as my laptop doesn't have hardware switch to turn on/off WiFi. Also, this being a combo adapter for both WiFi and Bluetooth, I can use Bluetooth just fine. Ethernet works too.

After searching around IntelĀ® Dual Band Wireless-AC 3168 I found this page which suggests that support for this Wireless Adapter was added starting Kernel v4.6, and since 16.04 has Kernel 4.4, I tried two things.

1) Upgrade Kernel

I manually installed 4.7.3 from kernel.ubuntu.com, and booted into it but WiFi still remains undetected.

2) Loading firmware for this adapter version (3168).

I searched for .ucode files for this adapter and found it on OpenELEC's GitHub. So I copied iwlwifi-3168-21.ucode and iwlwifi-3168-22.ucode files to /lib/firmware/ and rebooted, but still no luck.


Update

This seems to be a linux-firmware related bug, and I have filed the report on Launchpad. However, workaround given by Jeremy31 seems to fix WiFi under Kernel 4.7.4, but it breaks Bluetooth which was working fine with Stock Kernel 4.4.0-38. I'm still looking for a proper fix which doesn't cause any regressions (I'm fine with upgrading to newer stable Kernel release).

Best Answer

You have an issue with firmware for the device with the 4.7 kernel

wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.161_all.deb
sudo dpkg -i linux-firmware_1.161_all.deb

Reboot into the 4.7 kernel and your wireless should function

Related Question