如何为树外模块创建 Debian 软件包,以便在启用安全启动时与 apt 升级配合使用。

问题描述 投票:0回答:1

我们已经为Ubuntu 18.04 HWE内核的目标创建了自己的FPGA驱动,运行的是 启用安全启动. 这个驱动已经被签署,并被放到了一个Debian软件包中,如 fpga-driver-5.3.0-42-generic_1.1_amd64.deb。然后我们将这个驱动程序上传到我们自定义的Ubuntu软件包服务器上。在我们的目标机上,我们在etcaptsource.list.d文件夹里有一个指向包服务器的链接,然后我们就可以用以下方法安装驱动程序

sudo apt install fpga-driver-5.3.0-42-generic

如果我们将驱动升级到 fpga-driver-5.3.0-42-generic_1.2_amd64.deb。现在,我们可以运行 升级 而只要内核版本相同,一切都很好。

HWE 内核时常会被升级,我们会重建驱动,并创建一个新的 Debian 软件包,如 fpga-driver-5.3.0-51-generic_1.2_amd64.deb。. 如果我们现在在target上运行apt升级,除了我们的驱动之外,其他的都更新了。我们必须再次手动安装才能使它正常工作,但这对最终用户来说不是一个好的解决方案。

所以问题是,我们应该如何做才能用 "Debian的方式 "来做?

我知道从apt的角度来看,软件包的名字是不同的(fpga-driver-5.3.0-42-generic vs fpga-driver-5.3.0-51-generic),所以它不明白应该升级这个软件包,但是我们必须支持多个内核。

我们不能像网上的大多数解决方案那样使用 dkms,因为我们必须签署这个驱动程序以使其在安全启动下工作,而且我们必须能够升级内核版本。

linux debian code-signing kernel-module apt
1个回答
2
投票

Debian的方法是 元包. 这只是一个空包,它依赖于当前版本的驱动。每次升级驱动时,你也会将元包的依赖关系设置为新包。一个众所周知的例子是 linux-image-amd64. 这个包指向你的仓库的最新版本的内核,目前是linux-imag-5.5-0.bpo.2-amd64,几天前是linux-imag-5.4.0-0.bpo.4-amd64。目前是linux-imag-5.5.0-0.bpo.2-amd64,几天前是linux-imag-5.4.0-0.bpo.4-amd64。

© www.soinside.com 2019 - 2024. All rights reserved.