Oracle Virtualbox Can't get To Run

Upgraded to openSUSE 13.2 at the weekend (64 bit). Did a clean install from DVD and reformatted both root and /home drives to the new file systems. Not via Zypper!.
Am now reinstalling the packages and software back and am hitting an issue with my Oracle VM. When it runs I get the following message:

Kernel driver not installed (rc=-1908)

Have installed the DKMS from packman and run the sudo /etc/init.d/vboxdrv setup command as instructed from the Oracle error message to register the kernel but the command fails with or without DKMS. Error log below:

Uninstalling modules from DKMS  removing old DKMS module vboxhost version  4.3.20


------------------------------
Deleting module version: 4.3.20
completely from the DKMS tree.
------------------------------
Done.
Attempting to install using DKMS


Creating symlink /var/lib/dkms/vboxhost/4.3.20/source ->
                 /usr/src/vboxhost-4.3.20


DKMS: add completed.


Kernel preparation unnecessary for this kernel.  Skipping...


Building module:
cleaning build area....
make KERNELRELEASE=3.16.6-2-desktop -C /lib/modules/3.16.6-2-desktop/build M=/var/lib/dkms/vboxhost/4.3.20/build....(bad exit status: 2)
Failed to install using DKMS, attempting to install without
make KBUILD_VERBOSE=1 SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 CONFIG_MODULE_SIG= -C /lib/modules/3.16.6-2-desktop/build modules
make[1]: Entering directory `/usr/src/linux-3.16.6-2-obj/x86_64/desktop'
make -C /usr/src/linux-3.16.6-2-obj/x86_64/desktop \
KBUILD_SRC=/usr/src/linux-3.16.6-2 \
KBUILD_EXTMOD="/tmp/vbox.0" -f /usr/src/linux-3.16.6-2/Makefile \
modules
/usr/src/linux-3.16.6-2/arch/x86/Makefile:121: stack-protector enabled but compiler support broken
/usr/src/linux-3.16.6-2/arch/x86/Makefile:136: CONFIG_X86_X32 enabled but no binutils support
/usr/src/linux-3.16.6-2/Makefile:663: Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR: -fstack-protector not supported by compiler
make[3]: gcc: Command not found
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)
mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/*
make -f /usr/src/linux-3.16.6-2/scripts/Makefile.build obj=/tmp/vbox.0
  gcc -Wp,-MD,/tmp/vbox.0/linux/.SUPDrv-linux.o.d  -nostdinc -isystem  -I/usr/src/linux-3.16.6-2/arch/x86/include -Iarch/x86/include/generated  -I/usr/src/linux-3.16.6-2/include -Iinclude -I/usr/src/linux-3.16.6-2/arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I/usr/src/linux-3.16.6-2/include/uapi -Iinclude/generated/uapi -include /usr/src/linux-3.16.6-2/include/linux/kconfig.h   -I/tmp/vbox.0 -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -m64 -mno-mmx -mno-sse -mno-red-zone -mcmodel=kernel -pipe -Wno-sign-compare -O2 -fstack-protector -fasynchronous-unwind-tables -g -pg -include /tmp/vbox.0/include/VBox/SUPDrvMangling.h   -I/lib/modules/3.16.6-2-desktop/build/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/.tmp_SUPDrv-linux.o /tmp/vbox.0/linux/SUPDrv-linux.c
/bin/sh: gcc: command not found
/usr/src/linux-3.16.6-2/scripts/Makefile.build:273: recipe for target '/tmp/vbox.0/linux/SUPDrv-linux.o' failed
make[4]: *** [/tmp/vbox.0/linux/SUPDrv-linux.o] Error 127
/usr/src/linux-3.16.6-2/Makefile:1359: recipe for target '_module_/tmp/vbox.0' failed
make[3]: *** [_module_/tmp/vbox.0] Error 2
Makefile:195: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:24: recipe for target '__sub-make' failed
make[1]: *** [__sub-make] Error 2
Makefile:289: recipe for target 'vboxdrv' failed
make: *** [vboxdrv] Error 2

I have downloaded the latest version of Oracle Virtualbox from here:
https://www.virtualbox.org/wiki/Linux_Downloads.

I seem to remember in the distant past with openSUSE 12.x installing it from a repo as opposed to a download??

You don’t have a C compiler installed, therefore the kernel module cannot be built.

Install the “Kernel Development” Pattern in YaST and it should work.

I have downloaded the latest version of Oracle Virtualbox from here:
https://www.virtualbox.org/wiki/Linux_Downloads.

I seem to remember in the distant past with openSUSE 12.x installing it from a repo as opposed to a download??

That same page lists repos for some distributions including openSUSE. Just scroll down to the end.
But you’d still need a C compiler installed… :wink:

OTOH, VirtualBox is included in openSUSE, no extra repo needed. The openSUSE packages contain the kernel module in pre-compiled form so you don’t have to (and can’t) compile it yourself.
Install those 3 packages in YaST and you’re ready to go:
virtualbox, virtualbox-qt (this is the official GUI, do not install vboxgtk as this doesn’t work any more!), virtualbox-host-kmp-desktop (you need the correct one for your kernel, kernel-desktop is the default. YaST should select the right one automatically though).

Big thanks!!

Installed the Kernel Dev Pattern as advised and it all runs fine.

Big thumbs up.