[OpenSuse 13.1] virtualbox : problem to recompile vbox kernel

Hi,

this morning I want to boot my virtual machine into virtualbox. But I obtained an error message :

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

‘/etc/init.d/vboxdrv setup’

as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.

I’ve tried to execute the command (as root) vboxdrv, but it failed…

/etc/init.d/vboxdrv setup
Stopping VirtualBox kernel modules done
Recompiling VirtualBox kernel modules failed
(Look at /var/log/vbox-install.log to find out what went wrong

The log file contains :


Makefile:186: Warning: using /usr/src/linux as the source directory of your Linux kernel. If this is not correct, specify KERN_DIR=<directory> and run Make again.
make KBUILD_VERBOSE=1 SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 CONFIG_MODULE_SIG= -C /usr/src/linux modules
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (                \
echo >&2;                                                       \
echo >&2 "  ERROR: Kernel configuration is invalid.";           \
echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix it.";      \
echo >&2 ;                                                      \
/bin/false)

  ERROR: Kernel configuration is invalid.
         include/generated/autoconf.h or include/config/auto.conf are missing.
         Run 'make oldconfig && make prepare' on kernel src to fix it.

mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/*

  WARNING: Symbol version dump /usr/src/linux-3.11.10-21/Module.symvers
           is missing; modules will have no dependencies and modversions.

make -f scripts/Makefile.build obj=/tmp/vbox.0
/tmp/vbox.0/Makefile:186: Warning: using /usr/src/linux as the source directory of your Linux kernel. If this is not correct, specify KERN_DIR=<directory> and run Make again.
  gcc -Wp,-MD,/tmp/vbox.0/linux/.SUPDrv-linux.o.d  -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.8/include -I/usr/src/linux-3.11.10-21/arch/x86/include -Iarch/x86/include/generated  -Iinclude -I/usr/src/linux-3.11.10-21/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/usr/src/linux-3.11.10-21/include/uapi -Iinclude/generated/uapi -include /usr/src/linux-3.11.10-21/include/linux/kconfig.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -m64 -mno-sse -mpreferred-stack-boundary=3 -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -include /tmp/vbox.0/include/VBox/SUPDrvMangling.h -I/usr/src/linux/include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -I/tmp/vbox.0/vboxdrv/ -I/tmp/vbox.0/vboxdrv/include -I/tmp/vbox.0/vboxdrv/r0drv/linux -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -Wno-declaration-after-statement -DCONFIG_VBOXDRV_AS_MISC -DRT_ARCH_AMD64 -DVBOX_WITH_64_BITS_GUESTS  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(SUPDrv_linux)"  -D"KBUILD_MODNAME=KBUILD_STR(vboxdrv)" -c -o /tmp/vbox.0/linux/SUPDrv-linux.o /tmp/vbox.0/linux/SUPDrv-linux.c
In file included from <command-line>:0:0:
/usr/src/linux-3.11.10-21/include/linux/kconfig.h:4:32: fatal error: generated/autoconf.h: No such file or directory
 #include <generated/autoconf.h>
                                ^
compilation terminated.
make[2]: *** [/tmp/vbox.0/linux/SUPDrv-linux.o] Error 1
make[1]: *** [_module_/tmp/vbox.0] Error 2
make: *** [vboxdrv] Error 2


my openSuse current version is

openSUSE 13.1 (x86_64)
VERSION = 13.1
CODENAME = Bottle

/etc/SuSE-release is deprecated and will be removed in the future, use /etc/os-release instead

and my kernel :

Linux linux-tns1 3.11.10-21-desktop #1 SMP PREEMPT Mon Jul 21 15:28:46 UTC 2014 (9a9565d) x86_64 x86_64 x86_64 GNU/Linux

How can I resolve the problem ?

So it worked before?

Apparently you miss some kernel development packages, at least for the kernel you are using.
Please post the list of packages you have installed:

rpm -qa kernel*

Yes before it worked

Here is the list :

fabian@linux-tns1:~> rpm -qa kernel*
kernel-desktop-3.11.10-21.1.x86_64
kernel-desktop-devel-3.11.10-21.1.x86_64
kernel-syms-3.11.10-21.1.x86_64
kernel-desktop-devel-3.11.10-17.2.x86_64
kernel-xen-devel-3.11.10-17.2.x86_64
kernel-default-devel-3.11.10-17.2.x86_64
kernel-desktop-3.11.10-17.2.x86_64
kernel-devel-3.11.10-21.1.noarch
kernel-devel-3.11.10-17.2.noarch
kernel-default-devel-3.11.10-21.1.x86_64
kernel-source-3.11.10-17.2.noarch
kernel-syms-3.11.10-17.1.x86_64
kernel-source-3.11.10-21.1.noarch
kernel-xen-devel-3.11.10-21.1.x86_64

But, before reading your message, I’ve updated my system. The vboxdrv has worked… but… ** the problem has changed (??)**

Now I’ve a new error message :

Failed to open a session for the virtual machine vm__20111027.

VT-x is disabled in the BIOS. (VERR_VMX_MSR_VMXON_DISABLED).

Details :

| Result Code:
|
| NS_ERROR_FAILURE (0x80004005)
|
| Component:
| Console

|
| Interface:
| IConsole {8ab7c520-2442-4b66-8d74-4ff1e195d2b6}
|

And I don’t understand what’s the problem here…

I’ve disabled VT-x option previously selected… it works, but I’m not sure that’s a good solution…

Probably you installed the corresponding versions for your kernel now…

Now I’ve a new error message :


VT-x is disabled in the BIOS. (VERR_VMX_MSR_VMXON_DISABLED).

And I don’t understand what’s the problem here…

Well, the message is quite clear, I’d say.
You have hardware virtualization support (VT-x) disabled in the BIOS.
So enter your BIOS settings and enable it.

Strange that it would have worked before though.
Maybe you have a weak CMOS battery?

After two reboots it works… I’ll check the battery.

Thanks a lot for your help

Did you change the BIOS setting now?
If not, it’s probably not caused by the battery… :wink:
The only influence that the battery could have here is that the setting might be forgotten and set back to the default (which might be OFF) if the battery is weak/empty.

In any case, you should enable Hardware Virtualization (VT-x) in the BIOS if it isn’t, it should make Virtualization faster, and enables you to use 64bit guests.

Although VirtualBox should work without it, I do seem to remember people reporting strange problems when they had turned it off although their CPU supported it.