社区,
我维护着许多运行 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
重启后我的无线网卡被识别并且工作正常。我的问题是。
这是您推荐的方法吗?
如果我要更新的话,我需要注意哪些“陷阱”?
我相信,如果我对已部署的系统进行全面更新以升级到现代内核,新内核将包含此修复程序,因此不再需要我的自定义注入,对吗?我需要采取什么步骤来删除内核补丁?