簡體   English   中英

如何為啟用安全啟動時與 apt upgrade 一起使用的樹外模塊創建 Debian package

[英]How to create Debian package for out-of-tree module that works with apt upgrade when secure boot is enabled

我們已經為目標創建了自己的 fpga 驅動程序,其中 Ubuntu 18.04 HWE kernel,在啟用安全啟動的情況下運行。 This driver is signed and put into a Debian package like fpga-driver-5.3.0-42-generic_1.1_amd64.deb , and then we upload this driver to our custom Ubuntu package server. 在我們的目標上,我們在 /etc/apt/source.list.d/ 文件夾中有一個指向 package 服務器的鏈接,我們可以使用以下命令安裝驅動程序

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

如果我們將驅動程序升級到fpga-driver-5.3.0-42-generic_1.2_amd64.deb ,我們現在可以運行apt upgrade ,只要 kernel 版本相同,一切都很好。

有時會升級 HWE kernel,我們會重建驅動程序並創建新的 Debian ZEFE90A8E604A7C840E88D03A67F6B7D80-654.deric_ -1.2_d8-654.deric_-1.2_d80-651-deric_-5.3 如果我們現在在目標上運行 apt upgrade ,那么除了我們的驅動程序之外,其他所有內容都會更新。 我們必須再次手動安裝它才能使其工作,但這對最終用戶來說不是一個好的解決方案。

所以問題是我們應該如何做到這一點,以“Debian 方式”?

從apt的角度來看,我知道package名稱不同(fpga-driver-5.3.0-42-generic vs fpga-driver-5.3.0-51-generic)所以它不明白它應該升級這個package,但是我們必須支持多個kernel。

我們不能像 web 上的大多數解決方案那樣使用 dkms,因為我們必須簽署此驅動程序才能使其在安全啟動下工作,並且我們必須能夠升級 kernel 版本。

Debian 方式將是元 package 這只是一個空的 package,它取決於您的驅動程序的當前版本。 每次升級驅動程序時,您還將元 package 的依賴項設置為新的 package。 一個眾所周知的例子是linux-image-amd64 此 package 指向存儲庫的 kernel 的最新版本。 目前到 linux-image-5.5.0-0.bpo.2-amd64,幾天前到 linux-image-5.4.0-0.bpo.4-amd64。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM