我正在尝试为 Ubuntu Groovy 5.8.0-43-generic #49-Ubuntu 构建内核,因为我对 USB XHCI 驱动程序做了一些更改。这些更改是为了修复 bugzilla.kernel 中记录的问题而建议的。
到目前为止,我已经克隆了 Ubuntu Groovy repo 并签出了标签为 Ubuntu-5.8.0-43.49 的分支
所有构建工具均已安装,构建成功。以下是我采取的步骤
fakeroot debian/rules clean
dch -i
在这里,我尝试升级版本,以便安装新构建的内核时不会与现有内核发生冲突。我想保留现有内核,只启动新内核进行测试。变更日志的顶部如下所示:
linux (5.8.0-43.49ubuntu1) UNRELEASED; urgency=medium
* groovy/linux: 5.8.0-43.49ubuntu1
-- myname <myname@mmyname-XPS-15-9500> Thu, 25 Feb 2021 21:00:54 +0000
然后我就跑了
LANG=C fakeroot debian/rules binary-headers binary-generic binary-perarch
构建成功后,我得到了一堆 .deb 包,主要包括
- linux-headers-5.8.0-43_5.8.0-43.49ubuntu1_all.deb
- linux-headers-5.8.0-43-generic_5.8.0-43.49ubuntu1_amd64.deb
- Linux-映像-未签名-5.8.0-43-generic_5.8.0-43.49ubuntu1_amd64.deb
注意ubuntu1.deb 文件的名称与步骤 2 中添加到变更日志的版本更新相匹配。
然后我将上面的 3 个 .deb 包复制到我想要安装新内核的电脑上,然后运行
sudo dpkg -i *.deb
头文件 .deb 安装没有问题,但是linux-image-unsigned-5.8.0-43-generic_5.8.0-43.49ubuntu1_amd64.deb
由于以下冲突而失败:
dpkg: regarding linux-image-unsigned-5.8.0-43-generic_5.8.0-43.49ubuntu1_amd64.deb containing linux-image-unsigned-5.8.0-43-generic:
linux-image-unsigned-5.8.0-43-generic conflicts with linux-image-5.8.0-43-generic
linux-image-5.8.0-43-generic (version 5.8.0-43.49) is present and installed.
这表明 linux-image deb 包包含已安装的内核版本。
boot
如果我提取目录包含的linux-image deb 包vmlinuz-5.8.0-43-generic
,则会usr/share/doc/linux-image-unsigned-5.8.0-43-generic/changelog
显示前面提到的修改后的变更日志。
我不明白为什么变更日志中的升级版本不能防止这种冲突。我搜索了这个问题的答案,唯一的建议是使用dch -i
如上所示的方法。
谢谢
答案1
使用 .50ubuntu1is49,就像我在 Ubuntu 中看到的一些软件包一样。无论如何,这应该可以让您在下一个版本发布之前保持领先地位,或者您可能希望使用高于 50 的版本,以便始终安装您的版本并选择最高版本。您显然不想运行库存内核,那么为什么还要尝试安装呢?