Jun 042012
 

Seems this time vmware didn’t give problems, instead it was virtualbox.

It seems do_mmap was removed in this commit (and related ones)

causing this:

/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c: In function ‘rtR0MemObjLinuxDoMmap’:
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1150:9: error: implicit declaration of function ‘do_mmap’
make[2]: *** [/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.o] Error 1

Adding this piece of code at the top of the file with the error (it can be found in /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/memobj-r0drv-linux.c) after the other if LINUX_VERSION_CODE block:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
#define do_mmap vm_mmap
#endif

Unfortunately this isn’t enough due to this error appearing upon modprobe:

vboxdrv: Unknown symbol do_munmap (err 0)

It seems this symbol was unexported, so it’s equally not accessible.

To fix this the patch goes in the-linux-kernel.h file. This is what’s there:

#ifndef MY_DO_MUNMAP
# define MY_DO_MUNMAP(a,b,c) do_munmap(a, b, c)
#endif

changing it to this allows everything to work:

#ifndef MY_DO_MUNMAP
# if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0)
# define MY_DO_MUNMAP(a,b,c) vm_munmap(b, c)
#else
# define MY_DO_MUNMAP(a,b,c) do_munmap(a, b, c)
#endif
#endif

Unfortunately it seems there is still some sort of deadlock and I don’t have much time to check what is it, even though the modules load correctly.

The only other weird issue I’m experiencing is that I needed to re-associate my bluetooth mouse all the time.