使用 apt-get 降级 Ubuntu 9.10 服务器中的内核?

使用 apt-get 降级 Ubuntu 9.10 服务器中的内核?

是否可以使用 apt-get 包管理器将 Ubuntu 服务器 9.10 中的内核降级到 2.6.30(或 2.6.31 以下的任何 2.6 内核)?

动机如下:

我在一台装有 NetXen NXB-10GCX4 10GbE NIC 的机器上安装了 Ubuntu 9.10 服务器。Linux 2.6.31 附带的 netxen_nic 驱动程序抱怨网卡上的固件太旧(固件为 3.4.114,内核需要固件版本 3.4.216 或更高版本)。

我访问了供应商的网站(QLogic,该公司已收购了 NetXen),下载了最新的驱动程序,并刷新了固件。不幸的是,NIC 仍然无法正常工作。根据驱动程序文档,我需要安装商业驱动程序才能与最新固件正常工作。

我尝试将商业驱动程序编译成内核模块。不幸的是,它们无法在 Ubuntu 9.10 上编译,因为它们是为旧版本的 Linux 网络 API 编写的,在 2.6.31 版中从内核中删除

由于 QLogic 认为这是一款旧产品,因此不会有任何额外的驱动程序更新。所以我需要在仍然支持旧 API 的内核上运行。我仍然想使用 Ubuntu 9.10。我更喜欢使用包管理器,以便正确处理依赖关系,而不是手动进行内核降级。

编辑:对于通过搜索此特定 NIC 到达此页面的任何人,我通过下载版本解决了我的具体问题Linux 驱动程序的 3.4.216从 NetXen 的日文网站获取固件,通过将 3.4.216/bin/cx4_romimage 复制到 /lib/firmware/nxroming.bin 并重新加载 netxen_nic 模块来刷新固件。

答案1

我没有关于该 NIC 的信息,所以我将重点讨论降级内核。

早期的 Karmic 版本使用的是 2.6.30.x 内核,目前任何版本的 APT 都无法使用。我建议你按照以下步骤操作这里安装 2.6.30 版本的 Ubuntu 服务器内核包(我不确定它是否正常工作)。内核服务器包不在主线内核存档中,但它们应该可以在 Ubuntu 存档镜像中找到(镜像列表)。我会尝试安装最新版本(我在镜像上看到了 2.6.30.7 服务器包,最新的上游版本是 2.6.30.10)。

我刚刚在最新的 Karmic 桌面安装上尝试了 2.6.30.10 桌面内核,它显然运行正常,因此该过程可能在服务器安装上运行正常。

安装后,如果可以的话,你可以使用 grub-set-default 命令更改默认内核(参见Grub2- 社区 Ubuntu 文档) 或在 X 上使用 StartUp-Manager (startupmanager 包)。不建议编辑 /boot/grub/grub.cfg。

答案2

大多数情况下,旧内核仍会存在于您的系统中,您只需编辑 grub 配置以指向旧内核并重新启动即可。(/boot/grub/grub.conf)

如果删除了旧内核,您将需要使用 apt-get 再次安装它,我怀疑包管理器是否允许您这样做。

另一件事是参与到稳定驱动程序界面的活动当中,这样这些问题就不会再出现了。

答案3

有两种方法可以实现这一点,首先,如果这不是您的生产服务器,您可以安装 ubuntu 8.04 升级到 ubuntu 9.10。其次,在运行之前,apt-get 删除该 kernel.XX.XX.XX.dep,您需要将旧内核添加到您的服务器。

答案4

我会尝试找到 Ubuntu 标准内核中的驱动程序所需的固件,因为最新的固件不起作用。从长远来看,我会用更受支持的固件替换该卡。降级内核以保持专有驱动程序的正常运行是一个失败的提议。

相关内容