以编程方式查询最新内核版本来重建驱动程序?

以编程方式查询最新内核版本来重建驱动程序?

有没有办法以编程方式查询 Ubuntu 20.04 的最新内核版本 - 例如 5.4.0-88、5.4.0-91、5.4.0-92 等,也许查询某种 URL?

我需要构建一个自动化流程,将驱动程序重建为特定内核版本。通常,DKMS 会处理此问题,但该驱动程序适用于具有安全限制的服务器,无法在其上安装构建工具。它也无法联系互联网上的服务器,补丁是从本地服务器应用的。

构建过程将查询最新的 5.4.0-x 内核,如果有尚未安装标头的新内核,则安装适当的标头包,然后根据这些标头重建驱动程序。

谢谢你的帮助

答案1

这是我想出的一个相当粗略的解决方案。它本质上是通过读取 apt 存储库的 Packages 文件linux-image-generic来获取软件包信息focal-updates。然后提取软件包版本,如果这是您需要的格式,则将版本提取到依赖项名称中。

curl -s http://us.archive.ubuntu.com/ubuntu/dists/focal-updates/main/binary-amd64/Packages.gz | zcat | sed -n -e '/^Package: linux-image-generic$/,/^$/p' | sed -n -e '/^Depends:/s/^.*linux-image-\([-.0-9]*\)-.*/\1/p' -e '/^Version:/s/^Version: //p'

以下是实际执行的命令

$ curl -s http://us.archive.ubuntu.com/ubuntu/dists/focal-updates/main/binary-amd64/Packages.gz | zcat | sed -n -e '/^Package: linux-image-generic$/,/^$/p' | sed -n -e '/^Depends:/s/^.*linux-image-\([-.0-9]*\)-.*/\1/p' -e '/^Version:/s/^Version: //p'
5.4.0.92.96
5.4.0-92

相关内容