Control: tags -1 moreinfo On Mon, 2016-03-21 at 09:26 +0500, Alex Volkov wrote: > Package: nvidia-kernel-dkms > Version: 352.79-5 > Severity: normal > > --- Please enter the report below this line. --- > > I use a custom kernel built from linux-source-4.4 (config is attached), and > the module fails to build (make.log is attached). How the hell you guys > managed to build it for linux-image-4.4.0-1 in the first place?
Hi, The module builds fine on the 4.4.0-1 kernel that is in Sid, so I assume it must be a problem with your config/package. The diff between your config and Debian's is quite big: 1 file changed, 727 insertions(+), 2134 deletions(-) So unfortunately I can't guarantee I'll be able to figure it out without some help. First of all, how did you build your kernel? Did you build a .deb package? Are all the headers available? And finally, how did you run the module build? You could try doing a source build if you did a dkms build. Install the nvidia-kernel-source package, then: cd /usr/src tar xJvf nvidia-kernel.tar.xz -C /tmp cd /tmp/modules/nvidia-kernel export KSRC=/usr/src/linux-headers-4.4.6-custom0-amd64 debian/rules binary_modules And see if it still fails in the same way. From your log there are a few config tests that fail: #error kmem_cache_create() conftest failed! #error on_each_cpu() conftest failed! #error smp_call_function() conftest failed! #error acpi_walk_namespace() conftest failed! #error pci_dma_mapping_error() conftest failed! I would suggest looking into the /usr/src/nvidia-current-352.79/conftest.sh file. What conftest.sh does, in a nutshell, is trying to compile a minimal generated source file against in-kernel APIs, and if it fails/succeeds it sets a variable. That's NVIDIA's way of supporting multiple kernel versions in their out-of-tree shim module, by figuring out before building the module what's there and what's missing. For each of those failed tests, you can see exactly what they are trying to build in the script. Either a header is not available/visible, or one of the changes in the config is disabling an API that is mandatory to build the module. Given it cannot find kmem_cache_create, I'd guess it's the former. It's defined in include/linux/slab.h. Is it available in the sources path of your custom build that was used by the nvidia module build: /usr/src/linux-headers-4.4.6-custom0-amd64 ? Kind regards, Luca Boccassi
signature.asc
Description: This is a digitally signed message part