请同行评审我在 16.04 上无法正常工作的无线 8260 驱动程序修复程序

请同行评审我在 16.04 上无法正常工作的无线 8260 驱动程序修复程序

社区,

我维护着许多运行 16.04 的计算机。机器上的硬件构造尽可能地接近相同。这些机器分布在各处,并且在许多情况下与互联网断开连接。但它们确实在监控模式下使用无线网卡。

我的硬件供应商最近进行了一次修订,需要更换无线网卡,这导致使用我的基本安装映像的无线设备无法工作......它是旧的 Ubuntu 16.04.1 LTS(GNU/Linux 4.4.0-31-generic x86_64)

硬件变化很细微,如下所示...请注意子系统 ID 从 [8086:0010] 到 [8086:10b0] 的区别

工作(旧硬件):

# 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

不工作(新硬件):

# 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]

我在 linux 内核 github 中找到了相关的编辑,其中添加了 8086:10b0 硬件 ID这里。看起来我的内核早于 2016 年 5 月 23 日所做的此更改。

这就让我想到了我如何使这个工作发挥作用的方法。

我从以下网址下载了一个反向移植内核:https://mirrors.edge.kernel.org/pub/linux/kernel/projects/backports/stable/v4.4.2/

然后,我将缺失的硬件 ID 添加到文件中:./drivers/net/wireless/iwlwifi/pcie/drv.c,现在内容如下:

<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>

然后我通过以下方式编译并安装了扩展:

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

重启后我的无线网卡被识别并且工作正常。我的问题是。

这是您推荐的方法吗?

如果我要更新的话,我需要注意哪些“陷阱”?

我相信,如果我对已部署的系统进行全面更新以升级到现代内核,新内核将包含此修复程序,因此不再需要我的自定义注入,对吗?我需要采取什么步骤来删除内核补丁?

相关内容