[PATCH 2/2 B][l-r-m]UBUNTU: [Packaging] NVIDIA -- add support for the 435 and the 440 series
Alberto Milone
alberto.milone at canonical.com
Fri Mar 13 15:00:21 UTC 2020
Add support for multiple NVIDIA releases in the linux-restricted-modules.
BugLink: https://bugs.launchpad.net/bugs/1854485
Signed-off-by: Alberto Milone <alberto.milone at canonical.com>
---
debian/control.stub | 88 +++++++++++++++++++++++++++++
debian/dkms-versions | 2 +
debian/rules | 23 ++++++--
debian/templates/nvidia.postinst.in | 2 +-
debian/templates/nvidia.prerm.in | 2 +-
5 files changed, 110 insertions(+), 7 deletions(-)
diff --git a/debian/control.stub b/debian/control.stub
index fd27e47..f7db625 100644
--- a/debian/control.stub
+++ b/debian/control.stub
@@ -61,3 +61,91 @@ Section: kernel
Depends: ${misc:Depends}, linux-modules-nvidia-390-ABI-lowlatency (= ${binary:Version})
Description: Extra drivers for nvidia-390 for the lowlatency flavour
Install extra signed nvidia-390 modules compatible with the lowlatency flavour.
+
+Package: linux-modules-nvidia-435-ABI-generic
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Priority: optional
+Built-Using: ${linux:BuiltUsing}
+Depends: ${misc:Depends}, ${shlibs:Depends}, binutils, linux-image-ABI-generic | linux-image-unsigned-ABI-generic, nvidia-kernel-common-435
+Description: Linux kernel nvidia modules for version ABI
+ This package contains the Linux kernel nvidia modules for version ABI.
+ .
+ You likely do not want to install this package directly. Instead, install the
+ linux-image-nvidia-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-nvidia-435-ABI-lowlatency
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Priority: optional
+Built-Using: ${linux:BuiltUsing}
+Depends: ${misc:Depends}, ${shlibs:Depends}, binutils, linux-image-ABI-lowlatency | linux-image-unsigned-ABI-lowlatency, nvidia-kernel-common-435
+Description: Linux kernel nvidia modules for version ABI
+ This package contains the Linux kernel nvidia modules for version ABI.
+ .
+ You likely do not want to install this package directly. Instead, install the
+ linux-image-nvidia-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-nvidia-435-generic
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Depends: ${misc:Depends}, linux-modules-nvidia-435-ABI-generic (= ${binary:Version})
+Description: Extra drivers for nvidia-435 for the generic flavour
+ Install extra signed nvidia-435 modules compatible with the generic flavour.
+
+Package: linux-modules-nvidia-435-lowlatency
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Depends: ${misc:Depends}, linux-modules-nvidia-435-ABI-lowlatency (= ${binary:Version})
+Description: Extra drivers for nvidia-435 for the lowlatency flavour
+ Install extra signed nvidia-435 modules compatible with the lowlatency flavour.
+
+Package: linux-modules-nvidia-440-ABI-generic
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Priority: optional
+Built-Using: ${linux:BuiltUsing}
+Depends: ${misc:Depends}, ${shlibs:Depends}, binutils, linux-image-ABI-generic | linux-image-unsigned-ABI-generic, nvidia-kernel-common-440
+Description: Linux kernel nvidia modules for version ABI
+ This package contains the Linux kernel nvidia modules for version ABI.
+ .
+ You likely do not want to install this package directly. Instead, install the
+ linux-image-nvidia-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-nvidia-440-ABI-lowlatency
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Priority: optional
+Built-Using: ${linux:BuiltUsing}
+Depends: ${misc:Depends}, ${shlibs:Depends}, binutils, linux-image-ABI-lowlatency | linux-image-unsigned-ABI-lowlatency, nvidia-kernel-common-440
+Description: Linux kernel nvidia modules for version ABI
+ This package contains the Linux kernel nvidia modules for version ABI.
+ .
+ You likely do not want to install this package directly. Instead, install the
+ linux-image-nvidia-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-modules-nvidia-440-generic
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Depends: ${misc:Depends}, linux-modules-nvidia-440-ABI-generic (= ${binary:Version})
+Description: Extra drivers for nvidia-440 for the generic flavour
+ Install extra signed nvidia-440 modules compatible with the generic flavour.
+
+Package: linux-modules-nvidia-440-lowlatency
+Build-Profiles: <!stage1>
+Architecture: amd64
+Section: kernel
+Depends: ${misc:Depends}, linux-modules-nvidia-440-ABI-lowlatency (= ${binary:Version})
+Description: Extra drivers for nvidia-440 for the lowlatency flavour
+ Install extra signed nvidia-440 modules compatible with the lowlatency flavour.
diff --git a/debian/dkms-versions b/debian/dkms-versions
index 274a3bb..44e43c1 100644
--- a/debian/dkms-versions
+++ b/debian/dkms-versions
@@ -1,3 +1,5 @@
spl-linux 0.7.5-1ubuntu2
zfs-linux 0.7.5-1ubuntu16.7
nvidia-graphics-drivers-390 390.116-0ubuntu0.18.04.3
+nvidia-graphics-drivers-435 0
+nvidia-graphics-drivers-440 0
diff --git a/debian/rules b/debian/rules
index 0468f1b..61f6af2 100755
--- a/debian/rules
+++ b/debian/rules
@@ -13,7 +13,9 @@ src_fullversion = $(shell LC_ALL=C dpkg-parsechangelog | grep ^Version: | cut -d
src_abi = $(shell echo "$(src_fullversion)" | sed -ne 's/\([0-9]*\.[0-9]*\.[0-9]*\-[0-9]*\)\..*/\1/p')
src_version = $(shell echo $(src_fullversion) | sed -e 's/+[0-9][0-9]*//')
-dkms_nvidia_version=$(shell gawk '/^nvidia-graphics-drivers-/ { print $$2; }' debian/dkms-versions)
+dkms_nvidia_390_version=$(shell gawk '/^nvidia-graphics-drivers-390/ { print $$2; }' debian/dkms-versions)
+dkms_nvidia_435_version=$(shell gawk '/^nvidia-graphics-drivers-435/ { print $$2; }' debian/dkms-versions)
+dkms_nvidia_440_version=$(shell gawk '/^nvidia-graphics-drivers-440/ { print $$2; }' debian/dkms-versions)
test:
echo "$(src_fullversion) $(src_version)"
@@ -57,7 +59,7 @@ endef
dkms_dir=$(call dkms_dir_prefix,$(CURDIR))
define build_dkms =
- $(SHELL) debian/scripts/dkms-build $(dkms_dir) $(1) --lrm $(2) $(3) $(4) $(5)
+ $(SHELL) debian/scripts/dkms-build $(dkms_dir) $(1) --lrm $(2) $(3) $(4) $(5) $(6)
endef
ifeq ($(arch),ppc64el)
@@ -67,13 +69,14 @@ instfile=vmlinuz
endif
define install_control =
- for which in $(4); \
+ for which in $(5); \
do \
template="debian/templates/$(3).$$which.in"; \
script="debian/$(1).$$which"; \
sed -e 's/@abiname@/$(src_abi)/g' \
-e 's/@localversion@/-$(2)/g' \
-e 's/@image-stem@/$(instfile)/g' \
+ -e 's/@nvidia-ver@/$(4)/g' \
<"$$template" >"$$script"; \
done
endef
@@ -86,8 +89,18 @@ nvidia-%:
mkdir -p $(dkms_dir)/build $(dkms_dir)/source
install -d debian/linux-modules-nvidia-390-$(src_abi)-$*
install -d debian/linux-modules-nvidia-390-$(src_abi)-$*/usr/lib/linux/triggers
- $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-390-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-390-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, nvidia-390, pool/restricted/n/nvidia-graphics-drivers-390/nvidia-kernel-source-390_$(dkms_nvidia_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-390/nvidia-dkms-390_$(dkms_nvidia_version)_$(arch).deb)
- $(call install_control,linux-modules-nvidia-390-$(src_abi)-$*,$*,nvidia,postinst postrm prerm config templates)
+ $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-390-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-390-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, nvidia-390, pool/restricted/n/nvidia-graphics-drivers-390/nvidia-kernel-source-390_$(dkms_nvidia_390_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-390/nvidia-dkms-390_$(dkms_nvidia_390_version)_$(arch).deb)
+ $(call install_control,linux-modules-nvidia-390-$(src_abi)-$*,$*,nvidia,390,postinst postrm prerm config templates)
+
+ install -d debian/linux-modules-nvidia-435-$(src_abi)-$*
+ install -d debian/linux-modules-nvidia-435-$(src_abi)-$*/usr/lib/linux/triggers
+ $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-435-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-435-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, nvidia-435, pool/restricted/n/nvidia-graphics-drivers-435/nvidia-kernel-source-435_$(dkms_nvidia_435_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-435/nvidia-dkms-435_$(dkms_nvidia_435_version)_$(arch).deb)
+ $(call install_control,linux-modules-nvidia-435-$(src_abi)-$*,$*,nvidia,435,postinst postrm prerm config templates)
+
+ install -d debian/linux-modules-nvidia-440-$(src_abi)-$*
+ install -d debian/linux-modules-nvidia-440-$(src_abi)-$*/usr/lib/linux/triggers
+ $(call build_dkms, $(src_abi)-$*, linux-modules-nvidia-440-$(src_abi)-$*, $(CURDIR)/debian/linux-modules-nvidia-440-$(src_abi)-$*/lib/modules/$(src_abi)-$*/kernel, nvidia-440, pool/restricted/n/nvidia-graphics-drivers-440/nvidia-kernel-source-440_$(dkms_nvidia_440_version)_$(arch).deb pool/restricted/n/nvidia-graphics-drivers-440/nvidia-dkms-440_$(dkms_nvidia_440_version)_$(arch).deb)
+ $(call install_control,linux-modules-nvidia-440-$(src_abi)-$*,$*,nvidia,440,postinst postrm prerm config templates)
prepare-dkms:
mkdir -p $(dkms_dir)
diff --git a/debian/templates/nvidia.postinst.in b/debian/templates/nvidia.postinst.in
index 5564487..607d72a 100755
--- a/debian/templates/nvidia.postinst.in
+++ b/debian/templates/nvidia.postinst.in
@@ -4,7 +4,7 @@ set -e
version=@abiname@@localversion@
image_path=/boot/@image-stem at -$version
-bits=/lib/modules/$version/kernel/nvidia-390/bits
+bits=/lib/modules/$version/kernel/nvidia- at nvidia-ver@/bits
if [ "$1" != configure ]; then
exit 0
diff --git a/debian/templates/nvidia.prerm.in b/debian/templates/nvidia.prerm.in
index 2855651..f8b8e3e 100755
--- a/debian/templates/nvidia.prerm.in
+++ b/debian/templates/nvidia.prerm.in
@@ -3,7 +3,7 @@ set -e
version=@abiname@@localversion@
-bits=/lib/modules/$version/kernel/nvidia-390/bits
+bits=/lib/modules/$version/kernel/nvidia- at nvidia-ver@/bits
if [ "$1" != remove ]; then
exit 0
--
2.20.1
More information about the kernel-team
mailing list