升级到 16.04.3 LTS 后,当前内核库中缺少设备驱动程序

升级到 16.04.3 LTS 后,当前内核库中缺少设备驱动程序

有一台较旧的计算机作为服务器运行,并安装了 3com 以太网卡。它已运行至 14.04 LTS。它需要 3c95x.ko 驱动程序才能工作,该驱动程序在 3.13.0-135-generic 内核中可用。( /lib/modules/3.13.0-135-generic/kernel/drivers/net/ethernet/3com/3c59x.ko)升级后,驱动程序在当前 4.X 内核版本中不可用。我该如何修复此问题。是否缺少存储库?我可以从以前版本的目录中复制驱动程序吗?希望解决方案允许 apt 包管理在内核开发时更新它们。我已恢复到 3.13.0-135 内核,网卡可以运行,但使用任何更高版本的 4.X 内核都会导致网卡处于未声明状态,并且服务器处于静默状态且无法通过网络访问。我安装了以下内核:

  • 3.13.0-135-generic – 驱动程序位于 /lib/modules/3.13.0-135-generic/kernel/drivers/net/ethernet/3com/3c59x.ko
  • 4.4.0-104-generic – 目录结构中未找到 3com 驱动程序
  • 4.8.0-58-generic–目录结构中未找到 3com 驱动程序
  • 4.10.0-42-generic–目录结构中未找到 3com 驱动程序
  • 4.11.0-13-generic–目录结构中未找到 3com 驱动程序
  • 4.11.0-14-generic–目录结构中未找到 3com 驱动程序

答案1

在我的系统上,驱动程序3c59x.ko位于两个已安装的内核中:

$ dpkg -S 3c59x.ko
linux-image-extra-4.4.0-103-generic:/lib/modules/4.4.0-103-generic/kernel/drivers/net/ethernet/3com/3c59x.ko
linux-image-extra-4.4.0-104-generic:/lib/modules/4.4.0-104-generic/kernel/drivers/net/ethernet/3com/3c59x.ko

您可以使用以下方法删除旧内核

sudo apt-get install byobu
sudo purge-old-kernels

尝试为 4.4 和普通 LTS 内核重新安装 linux-image-extra:

sudo apt-get install --reinstall --install-recommends \
linux-image-generic-lts-xenial

sudo apt-get purge linux-generic-hwe-16.04 linux-headers-3.13.* \
linux-headers-4.8.* linux-headers-4.10.* linux-headers-4.11.* \
linux-headers-generic-hwe-16.04 linux-image-3.13.* \
linux-image-4.8.* linux-image-4.10.* linux-image-4.11.* \
linux-image-extra-3.13.* linux-image-extra-4.8.* \
linux-image-extra-4.10.* linux-image-extra-4.11.* \
linux-image-generic-hwe-16.04

相关内容