1

Community,

I maintain many computers that run 16.04. The hardware builld on the machines is as close to identical as I can make it. These machines are distributed all over the place and in many cases disconnected from the internet. They do use the wireless card in monitor mode though.

A recent revision from my hardware vendor has required a change in the wireless card that results in a non-working wireless device using my base installation image...it's old Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-31-generic x86_64)

The hardware change is subtle as follows...note the difference in subsystem id from [8086:0010] to [8086:10b0]

Working (old hardware):

# lspci -knn -s 03:00.0
03:00.0 Network controller [0280]: Intel Corporation Wireless 8260 [8086:24f3] (rev 3a)
    Subsystem: Intel Corporation Dual Band Wireless-AC 8260 [8086:0010]
    Kernel driver in use: iwlwifi
    Kernel modules: iwlwifi

Non-working (new hardware):

# lspci -knn -s 03:00.0
03:00.0 Network controller [0280]: Intel Corporation Wireless 8260 [8086:24f3] (rev 3a)
    Subsystem: Intel Corporation Wireless 8260 [8086:10b0]

I found the associated edit where 8086:10b0 hardware id was added in the linux kernel github here. It looks like my kernel predates this change which was made on 23-05-2016.

Which brings me to my approach on how I got this working.

I've downloaded a backport kernel from: https://mirrors.edge.kernel.org/pub/linux/kernel/projects/backports/stable/v4.4.2/

I then added the missing hardware id into the file: ./drivers/net/wireless/iwlwifi/pcie/drv.c so that it now reads as follows:

<snip>

/* 8000 Series */
    {IWL_PCI_DEVICE(0x24F3, 0x0010, iwl8260_2ac_cfg)},
    {IWL_PCI_DEVICE(0x24F3, 0x10B0, iwl8260_2ac_cfg)}, /* deanhuff: added missing hw id */
    {IWL_PCI_DEVICE(0x24F3, 0x1010, iwl8260_2ac_cfg)},

<snip>

Then I've compiled and installed the extension via:

make defconfig-iwlwifi
make
sudo make install
update-initramfs -u

Upon reboot my wireless card is recognized and works fine. My questions are.

Is this the approach you would recommend?

What "gotchas" do I need to look out for if I ever update?

I believe if I ever do a full update on fielded systems to a modern kernel, the new kernel will contain this fix already so my custom injection will no longer be needed, is this correct? Will there be any steps I would need to take to remove my kernel patch?

3
  • 3
    A newer 4.4 kernel may have the fix and you can use the 4.15 kernels in 16.04
    – Jeremy31
    Aug 19, 2019 at 17:41
  • completely agreed...i'm attempting to NOT update kernel if possible to keep my software baseline (including OS) in lockstep across as many devices as possible
    – deanhuff
    Aug 19, 2019 at 17:57
  • 4
    That old kernel has so many open security issues, no Spectre fixes. Most software won't even notice a kernel change and you can still use an older kernel if the new one does cause issues
    – Jeremy31
    Aug 19, 2019 at 20:50

0

You must log in to answer this question.

Browse other questions tagged .