Bug#820260: nvidia-kernel-source: Module does not build with make-kpkg (kernel-package)

Luca Boccassi luca.boccassi at gmail.com
Thu Apr 7 23:51:33 UTC 2016


On Wed, 2016-04-06 at 20:40 -0700, Kevin Locke wrote:
> Package: nvidia-kernel-source
> Version: 352.79-5
> Severity: normal
> 
> Dear Maintainer,
> 
> Starting in version 352.79-2 I am unable to build the nvidia kernel
> module for custom kernels using make-kpkg (part of the kernel-package
> package).  I have confirmed that the issue is present in both 352.79-5
> and 355.11-2.  The error which occurs is:
> 
> $ make-kpkg -j4 --rootcmd fakeroot --append_to_version +kevinoid1 --revision 4.5+1 --added_modules nvidia-kernel modules_image
> [...]
> make[2]: Entering directory '/usr/src/modules/nvidia-kernel'
> /usr/bin/make  KBUILD_VERBOSE=1 -C /lib/modules/4.5.0+kevinoid1/build M=/usr/src/modules/nvidia-kernel ARCH=x86_64 NV_KERNEL_SOURCES=/lib/modules/4.5.0+kevinoid1/build NV_KERNEL_OUTPUT=/lib/modules/4.5.0+kevinoid1/build NV_KERNEL_MODULES="nvidia nvidia-uvm" INSTALL_MOD_DIR=kernel/drivers/video Q= modules
> make[3]: Entering directory '/usr/src/modules/nvidia-kernel'
> make[3]: *** /lib/modules/4.5.0+kevinoid1/build: No such file or directory.  Stop.
> make[3]: Leaving directory '/usr/src/modules/nvidia-kernel'
> Makefile:81: recipe for target 'modules' failed
> make[2]: *** [modules] Error 2
> 
> I have attached both a successful build log (with version 352.79-1) and
> an unsuccessful one (with version 352.79-2) using the same command as
> above.
> 
> I believe this is due to debian/rules not passing KSRC (/usr/src/linux
> in my case) to the nVidia Makefile, which attempts to deduce it from the
> version information.  This fails if the kernel is not yet installed,
> which is always the case when building the module with the kernel using
> make-kpkg.  I think this behavior was introduced in r6121.[1]

Hello Kevin,

Sorry for the problem you are facing, it's a corner case that I don't
usually test.

I didn't have time to fully reproduce your environment, but could you
please try with the attached patch (for the debian/rules in the 352.79-5
kernel-source)? It should allow one to pass an arbitrary KSRC directory
if the one derived from the version does not exist, which allows the
current behaviour to continue. I'll try and find the time to fully test
it myself as well in the following days.

Andreas,

Was there any specific reason to prefer letting the module derive the
kernel source path from the version?

Kind regards,
Luca Boccassi

--- debian/rules
+++ debian/rules
@@ -22,7 +22,14 @@
 ifndef KPKG_DEST_DIR
     KPKG_DEST_DIR = ..
 endif
+ifndef KVERS
 KVERS := $(shell perl debian/kernel-version $(KSRC))
+endif
+ifeq ($(wildcard /lib/modules/$(KVERS)/build),)
+    SYSSRC=SYSSRC=$(KSRC)
+else
+    SYSSRC=
+endif
 export KVERS
 export KPKG_DEST_DIR
 
@@ -42,8 +49,8 @@
 build-stamp: configure-stamp
 	dh_prep
 	dh_quilt_patch
-	unset ARCH; $(MAKE) module KERNEL_UNAME=$(KVERS)
-	unset ARCH; $(MAKE) -C uvm module KERNEL_UNAME=$(KVERS) KBUILD_EXTMOD=$(CURDIR)/uvm
+	unset ARCH; $(MAKE) module KERNEL_UNAME=$(KVERS) $(SYSSRC)
+	unset ARCH; $(MAKE) -C uvm module KERNEL_UNAME=$(KVERS) $(SYSSRC) KBUILD_EXTMOD=$(CURDIR)/uvm
 	test "nvidia-current" = "nvidia" || mv nvidia.ko nvidia-current.ko
 	test "nvidia-current" = "nvidia" || mv uvm/nvidia-uvm.ko uvm/nvidia-current-uvm.ko
 	touch $@
@@ -76,8 +83,8 @@
 	test -f debian/control || cp debian/control.template debian/control
 	dh_testdir
 	dh_testroot
-	$(MAKE) clean KERNEL_UNAME=$(KVERS) $(KPKG_EXTRAV_ARG)
-	$(MAKE) -C uvm clean KERNEL_UNAME=$(KVERS) $(KPKG_EXTRAV_ARG)
+	$(MAKE) clean KERNEL_UNAME=$(KVERS) $(SYSSRC) $(KPKG_EXTRAV_ARG)
+	$(MAKE) -C uvm clean KERNEL_UNAME=$(KVERS) $(SYSSRC) $(KPKG_EXTRAV_ARG)
 	dh_quilt_unpatch || quilt --quiltrc /dev/null pop -af
 	dh_clean debian/control debian/install
 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/pkg-nvidia-devel/attachments/20160408/2bc29f4f/attachment.sig>


More information about the pkg-nvidia-devel mailing list