I started a thread one up in Software about 'missing autoconf.h in vbox install log' because the vboxdrv.ko module wasn't compiling.
However the autoconf.h as an "error" was a red herring. The actual errors were later in the log.
Briefly, I have all the requirements for VirtualBox - kernel source, headers, syms, qt, sdl, gcc, make. The various kernel "config" files in /boot /usr/src/linux-2.6.31.12 /usr/src/linux-2.xxx-obj all match doing cmp or diff on them
I'm using a shell script install - VirtualBox-xxx.run
It goes through and although it says at the end "successful" it says couldn't compile the module.
Further on with the errors in the log.
Code:
In file included from /tmp/vbox.0/linux/SUPDrv-linux.c:35:
/tmp/vbox.0/SUPDRV.h:99:30: error: asm/semaphore.h: No such file or directory
/tmp/vbox.0/linux/SUPDrv-linux.c: In function 'VBoxDrvLinuxCreate':
/tmp/vbox.0/linux/SUPDrv-linux.c:772: error: 'struct task_struct' has no member named 'euid'
/tmp/vbox.0/linux/SUPDrv-linux.c:773: error: 'struct task_struct' has no member named 'egid'
/tmp/vbox.0/linux/SUPDrv-linux.c: In function 'supdrvOSGipResume':
/tmp/vbox.0/linux/SUPDrv-linux.c:1331 error: too many arguments to function 'smp_call_function'
make[4]: *** [/tmp/vbox.0/linux/SUPDrv-linux.o] Error 1
make[3]: *** [_module_/tmp/vbox.o] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory 'usr/src/linux-2.6.31.12-0.2-obj/i386/default'
make: *** 'vboxdrv] Error 2
End of output from the Linux kernel build system
Starting VirtualBox host networking..done
Installation successful
Well, the success is _only_ about all the working files being put in their correct places (in /usr/bin /etc/vbox) and a GUI menu entry. The problem is the vboxdrv.ko module can't be compiled.
I did have a look at those "SUPDrv" files and the line numbers -772,773/1331- and I can find the phrases 'task_struct' 'smp_call_function' etc in other source *.c *.h files but I have no idea.
Just to be sure about all files being present I uninstalled vbox and did the "make oldconfig && make prepare". There was a file generated at the same time beside the .config in /usr/src/linux-2.xxx called 'missing-syscalls.d' which has:
Code:
-: include/linux/autoconf.h include/asm/types.h \
include/asm-generic/int-ll64.h include/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h include/asm/uninstd.h \
include/asm/uninstd_32.h
Again, all those files are present so what does it mean and could it be a clue?