[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

virtualbox fails to compile module on 3.10



I have the following in my /etc/apt/sources.list:

deb http://ftp.us.debian.org/debian/ unstable main
deb http://ftp.us.debian.org/debian/ testing main

deb http://ftp.us.debian.org/debian/ stable main
deb-src http://ftp.us.debian.org/debian/ stable main

deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main

# squeeze-updates, previously known as 'volatile'
deb http://ftp.us.debian.org/debian/ stable-updates main
deb-src http://ftp.us.debian.org/debian/ stable-updates main


I'm running ...

westk@westek:~$ uname -a
Linux westek 3.10-3-amd64 #1 SMP Debian 3.10.11-1 (2013-09-10) x86_64 GNU/Linux

When I try to install virtualbox (more specifically, virtualbox-dkms), it fails to compile the module, with this error:

Error! Bad return status for module build on kernel: 3.10-3-amd64 (x86_64)
Consult /var/lib/dkms/virtualbox/4.1.18/build/make.log for more information.

That log file says:
westk@westek:~$ cat /var/lib/dkms/virtualbox/4.1.18/build/make.log
DKMS make.log for virtualbox-4.1.18 for kernel 3.10-3-amd64 (x86_64)
Mon Sep 30 09:42:05 CDT 2013
make: Entering directory `/usr/src/linux-headers-3.10-3-amd64'
  LD      /var/lib/dkms/virtualbox/4.1.18/build/built-in.o
  LD      /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/built-in.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/linux/SUPDrv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/SUPDrv.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/SUPDrvSem.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/alloc-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/initterm-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/memobj-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/mpnotification-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/powernotification-r0drv.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/assert-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/alloc-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/initterm-r0drv-linux.o
  CC [M]  /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o
/var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c: In function ‘rtR0MemObjNativeMapUser’:
/var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:1451:38: error: ‘VM_RESERVED’ undeclared (first use in this function)
/var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.c:1451:38: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [/var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/r0drv/linux/memobj-r0drv-linux.o] Error 1
make[3]: *** [/var/lib/dkms/virtualbox/4.1.18/build/vboxdrv] Error 2
make[2]: *** [_module_/var/lib/dkms/virtualbox/4.1.18/build] Error 2
make[1]: *** [sub-make] Error 2
make: *** [all] Error 2
make: Leaving directory `/usr/src/linux-headers-3.10-3-amd64'

I found a forum wherein a certain lwfinger offered a fix. Following his example, I edited /var/lib/dkms/virtualbox/4.1.18/source/vboxdrv/r0drv/linux/memobj-r0drv-linux.c, and starting at line 68, I added the following four lines:

/* fix for 3.7+ kernels. The problem is that the symbol VM_RESERVED was removed from kernel 3.7. */
#ifndef VM_RESERVED
#define VM_RESERVED (VM_DONTEXPAND | VM_DONTDUMP)
#endif

But I don't know how to tell the system to try to recompile the module; I tried
aptitude reinstall virtualbox-dkms
but when that failed, I realized that I had overwritten my changes with the resintall. So I changed the file again and tried the command "make", but that produced a different result than what I'd been seeing, including new error messages about MAX_PRIO and MAX_RT_PRIO being undeclared. So I added similar code segments for these two variables that after considerable googling I found in

/usr/src/linux-headers-3.10-3-common/include/linux/sched/rt.h

#define MAX_USER_RT_PRIO        100
#define MAX_RT_PRIO             MAX_USER_RT_PRIO

#define MAX_PRIO                (MAX_RT_PRIO + 40)
#define DEFAULT_PRIO            (MAX_RT_PRIO + 20)

But then whenever I tried "make" from several of the directories in the /var/lib/dkms... tree, alI I ever go was "no targets specified" or similar.

Yes, I absolutely don't know what I'm doing, but as you can probably tell, I'm not terribly afraid to pull the trigger just to see what gets shot. Unfortunately, I haven't found the right combination yet to allow me to run virtualbox on my 3.10 kernel.

Any suggestions?

Thanks!


--
Kent West                    <")))><
Westing Peacefully - http://kentwest.blogspot.com

Reply to: