I am failing to build VirtualBox driver for Linux 2.6.38
autoconf.h
moved from include/linux
to include/generated
in Linux 2.6.33. Authors of third-party modules must adapt their code; this has already been done upstream for VirtualBox. In the meantime, you can either patch the module source or create a symbolic link as a workaround.
As for the NMI-related errors, the NMI watchdog has changed a lot between 2.6.37 and 2.6.38. This looks like it requires a nontrivial porting effort on the module source code. In the meantime, you might have some luck just patching out the offending code. The purpose of the NMI watchdog is to debug kernel lockups, so it's something you can live without.
tshepang
I do software development for a living and as a hobby. My favorite language is Rust, and I've used Python much in the past. My OS of choice is Debian.
Updated on September 18, 2022Comments
-
tshepang over 1 year
I am running Debian 6, and decided to install 2.6.38 kernel from Unstable. I also installed the headers so that I can later on :
sudo apt-get install --target-release=unstable linux-image-2.6.38-2-686-bigmem linux-headers-2.6.38-2-686-bigmem
I then re-installed
virtualbox-ose-dkms
to that the VirtualBox drivers for 2.6.38 can be rebuilt (so that I can use VirtualBox under 2.6.38), but I get this error:Building initial module for 2.6.38-2-686-bigmem Error! Bad return status for module build on kernel: 2.6.38-2-686-bigmem (i686) Consult the make.log in the build directory /var/lib/dkms/virtualbox-ose/3.2.10/build/ for more information. dpkg: error processing virtualbox-ose-dkms (--configure): subprocess installed post-installation script returned error exit status 10 configured to not write apport reports Errors were encountered while processing: virtualbox-ose-dkms E: Sub-process /usr/bin/dpkg returned an error code (1)
Here's the contents of the file they asked me to look at:
$ cat /var/lib/dkms/virtualbox-ose/3.2.10/build/make.log DKMS make.log for virtualbox-ose-3.2.10 for kernel 2.6.38-2-686-bigmem (i686) Sat Apr 9 14:11:57 SAST 2011 make: Entering directory `/usr/src/linux-headers-2.6.38-2-686-bigmem' LD /var/lib/dkms/virtualbox-ose/3.2.10/build/built-in.o LD /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/built-in.o CC [M] /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.o In file included from /var/lib/dkms/virtualbox-ose/3.2.10/build/include/VBox/types.h:30, from /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/../SUPDrvInternal.h:35, from /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:33: /var/lib/dkms/virtualbox-ose/3.2.10/build/include/iprt/types.h:97:31: error: linux/autoconf.h: No such file or directory /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c: In function ‘VBoxDrvLinuxInit’: /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:451: error: ‘nmi_watchdog’ undeclared (first use in this function) /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:451: error: (Each undeclared identifier is reported only once /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:451: error: for each function it appears in.) /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:451: error: ‘NMI_IO_APIC’ undeclared (first use in this function) /var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.c:465: error: ‘nmi_active’ undeclared (first use in this function) make[4]: *** [/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv/linux/SUPDrv-linux.o] Error 1 make[3]: *** [/var/lib/dkms/virtualbox-ose/3.2.10/build/vboxdrv] Error 2 make[2]: *** [_module_/var/lib/dkms/virtualbox-ose/3.2.10/build] Error 2 make[1]: *** [sub-make] Error 2 make: *** [all] Error 2 make: Leaving directory `/usr/src/linux-headers-2.6.38-2-686-bigmem'
-
Gilles 'SO- stop being evil' about 13 yearsThat missing
linux/autoconf.h
looks suspicious. Does/usr/src/linux-headers-2.6.38-2-686-bigmem/include/linux/autoconf.h
exist? If it doesn't, your kernel headers are incomplete. If it does, there's a bug in a makefile somewhere that causes it not to look in the right directories. -
tshepang about 13 yearsIt's instead found in
/usr/src/linux-headers-2.6.38-2-686-bigmem/include/generated/autoconf.h
. This is in comparison to 2.6.32's/usr/src/linux-headers-2.6.32-5-686-bigmem/include/linux/autoconf.h
.
-
-
tshepang about 13 yearsYou may have missed the part where I'm using VBox 3.2.10.
-
screaming SiLENCE about 13 yearsSorry, I've missed that.... I upgrade squeezy to whezzy due to this issue.. Only way I've found to solve the pb....
-
tshepang about 13 yearsThis answer helped, so am still a Squeeze user :)