基于 DEB 安装新内核

基于 DEB 安装新内核

我正在尝试测试一个建议的内核Launchpad 问题 1556562:VIA C7-D 机器 skcipher_recvmsg_async 中的“内核 NULL 指针取消引用”. 建议的内核作为DEB 文件集合

根据测试 Ubuntu 提出的内核的经验,我相信我需要 Linux 映像和附加功能(linux-image-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deblinux-image-extra-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb)。

所以我很清楚,为了避免重新安装基本系统(现在是两次),如何使用 DEB 安装内核和附加组件?是不是就像从命令行安装任何其他 DEB

我认为update-grub2需要将其放入 GRUB 菜单。手动安装内核时是否需要执行其他步骤?

或者,有没有更好的方法?

答案1

这是我用来做这件事的小脚本。事后看来,这个脚本可能有点过头了,但它为我提供了可重现结果的基础。

DEB 文件的顺序不太正确。第一次运行时,我收到有关未满足依赖项的错误。第二次运行清除了未满足依赖项的问题。(我没有复制确切的错误消息,但我应该提供更完整的答案)。

update-grub2无需手动运行。显然,在一个或多个 DEB 中有一个触发器可以执行此操作。

#!/usr/bin/env bash

wget http://kernel.ubuntu.com/~kamal/lp1556562.0/linux-image-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb
wget http://kernel.ubuntu.com/~kamal/lp1556562.0/linux-image-extra-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb
wget http://kernel.ubuntu.com/~kamal/lp1556562.0/linux-headers-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb
wget http://kernel.ubuntu.com/~kamal/lp1556562.0/linux-tools-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb

dpkg -i linux-image-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb
dpkg -i linux-image-extra-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb
dpkg -i linux-headers-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb
dpkg -i linux-tools-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb

测试后删除内核有点有趣,因为你必须使用软件包名称,而不是 DEB 文件。你还必须遵守依赖关系。

首先,找到包名称:

$ dpkg --info linux-headers-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb | grep 'Package:'
 Package: linux-headers-4.2.0-35-generic

然后,使用dpkg -r

$ dpkg --info linux-image-extra-4.2.0-35-generic_4.2.0-35.40+lp1556562_i386.deb | grep 'Package:'
 Package: linux-image-extra-4.2.0-35-generic

$ sudo dpkg -r linux-image-extra-4.2.0-35-generic
(Reading database ... 126639 files and directories currently installed.)
Removing linux-image-extra-4.2.0-35-generic (4.2.0-35.40+lp1556562) ...
...

删除所有 DEB 后,执行清理,重新生成 grub 菜单并重新启动。

$ sudo apt-get autoclean
...
$ sudo apt-get autoremove
...
$ sudo update-grub2
...
$ sudo shutdown -r now

相关内容