Can't install Virtualbox Guest Additions on opensuse 12.1 [Windows 7 host]


I’m desperately trying to install the guest additions on a 12.1 guest. I had the same problem exposed in the topic:

So I followed the solution explained there (install Base Dev, Linux Kernel Dev and C/C++ Dev) but I still have the same problem:

 sudo /media/VBOXADDITIONS_4.1.12_77245/
root's password:
Verifying archive integrity... All good.
Uncompressing VirtualBox 4.1.12 Guest Additions for Linux.........
VirtualBox Guest Additions installer
Removing installed version 4.1.12 of VirtualBox Guest Additions...
Removing existing VirtualBox DKMS kernel modules                                                done
Removing existing VirtualBox non-DKMS kernel modules                                            done
Building the VirtualBox Guest Additions kernel modules
The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
zypper install kernel-default-devel-3.1.0-1.2

Building the main Guest Additions module                                                        failed
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions                                                   done
Installing the Window System drivers
Installing X.Org Server 1.10 modules                                                            done
Setting up the Window System to use the Guest Additions                                         done
You may need to restart the hal service and the Window System (or just restart
the guest system) to enable the Guest Additions.

Installing graphics libraries and desktop services components                                   done

It still can’t build the main Guest Additions module…

Here is the vboxadd-install.log:

cat /var/log/vboxadd-install.log
/tmp/vbox.0/Makefile.include.header:100: 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.
grep: /usr/src/linux/include/linux/version.h: No such file or directory
make KBUILD_VERBOSE=1 CONFIG_MODULE_SIG= -C /usr/src/linux SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 modules
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (                \
echo;                                                           \
echo "  ERROR: Kernel configuration is invalid.";               \
echo "         include/generated/autoconf.h or include/config/auto.conf are missing.";\
echo "         Run 'make oldconfig && make prepare' on kernel src to fix it.";  \
echo;                                                           \

  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.1.9-1.4/Module.symvers
           is missing; modules will have no dependencies and modversions.

make -f scripts/ obj=/tmp/vbox.0
/tmp/vbox.0/Makefile.include.header:100: 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.
grep: /usr/src/linux/include/linux/version.h: Aucun fichier ou dossier de ce type
  gcc -Wp,-MD,/tmp/vbox.0/.VBoxGuest-linux.o.d  -nostdinc -isystem /usr/lib/gcc/i586-suse-linux/4.6/include -I/usr/src/linux-3.1.9-1.4/arch/x86/include -Iarch/x86/include/generated -Iinclude  -include /usr/src/linux-3.1.9-1.4/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-red-zone -mcmodel=kernel -maccumulate-outgoing-args -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -fomit-frame-pointer -DCC_HAVE_ASM_GOTO -include /tmp/vbox.0/include/VBox/VBoxGuestMangling.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/vboxguest/ -I/tmp/vbox.0/vboxguest/include -I/tmp/vbox.0/vboxguest/r0drv/linux -D__KERNEL__ -DMODULE -DVBOX -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_GUEST -DIN_GUEST_R0 -DIN_MODULE -DRT_WITH_VBOX -DVBGL_VBOXGUEST -DVBOX_WITH_HGCM -DRT_ARCH_X86  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(VBoxGuest_linux)"  -D"KBUILD_MODNAME=KBUILD_STR(vboxguest)" -c -o /tmp/vbox.0/VBoxGuest-linux.o /tmp/vbox.0/VBoxGuest-linux.c
/tmp/vbox.0/VBoxGuest-linux.c:1:0: error: code model ‘kernel’ not supported in the 32 bit mode
/tmp/vbox.0/VBoxGuest-linux.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
make[2]: *** [/tmp/vbox.0/VBoxGuest-linux.o] Erreur 1
make[1]: *** [_module_/tmp/vbox.0] Error 2
make: *** [vboxguest] Error 2
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.

I’m totally a newb so I don’t really know where to start and what to do. If someone could give me some tracks to follow I would really appreciate that.


1) Make sure to do this:

Open YaST / Software / Software Management - Select the View Button on the top left and pick Patterns. Now, you will see several Patterns listed and you want to select:


[X] Base Development
[X] Linux Kernel Development
[X] C/C++ Development

Then Press the Accept button on the bottom right and allow these applications to install.
2) Then try to do this in a terminal session:**

sudo /etc/init.d/vboxdrv setup

3) Next, to automatically load the kernel drivers for you go into:

YaST / Software / Software Management, search on **dkms** and if you  have added in the Packman repository, you find the application and then  install it.  

4) Ever so often I get a report that the VirtualBox script is not marked executable so you can try this if that is the case:

sudo chmod +x /usr/lib/virtualbox/VirtualBox

**5) When in doubt, consult this article: **

I have installed VirtualBox 4.1.12 from their site and the Extension pack for that version and all is working properly for me.

Thank You,

Thank You,

Hi. Try this:
$ sudo zypper in gcc automake kernel-source kernel-syms
$ cd /usr/src/linux
$ sudo make oldconfig && sudo make prepare && sudo make scripts

New to opensuse. I have it as a guest on an ubuntu host.
after trying all the above, afshine’s advice got me further. The module builds, but I get a “modprobe vboxguest failed”
Trying to run modprobe vboxguest as root returns a fatal error.

Is the package “kernel-devel” installed? If not, install it and try again.
Also make sure there is no mismatch between the kernel and the kernel headers:
YaST > Software Management > search “kernel-” > kernel-desktop , kernel-desktop-devel and kernel-devel should show the same version

Yep, the last line really did the trick.
However, I wonder why this is now necessary. It was not in the last 3 years.
But in fact, it does not matter. thank you very much for the hint :slight_smile: