kernel 3.4 and virtualbox

On my dell latitude E6510 with suse tumbleweed, kde 4.8.3, I installed the new 3.4.0-25-desktop kernel, luckily and successfully installed the latest NVIDIA-Linux-x86_64-295.53.run, (thanks to lnvhw :slight_smile: joe and swerdna).
I installed this new kernel becouse the other 3.3 has problem with virtualization becouse is necessary to use the intel_iommu=off option in grub that disable virtualization features.
Now I tried to use virtualbox 4.1.6, it says me to do /etc/init.d/vboxdrv setup as superuser, and this should be normal, I made an result this error:

linux-2fe4:/home/pla # /etc/init.d/vboxdrv setup WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/. Stopping VirtualBox kernel modules done Uninstalling old VirtualBox DKMS kernel modules done Removing old VirtualBox netadp kernel module done Removing old VirtualBox netflt kernel module done Removing old VirtualBox kernel module done Trying to register the VirtualBox kernel modules using DKMS failed (Failed, trying without DKMS) Recompiling VirtualBox kernel modules failed (Look at /var/log/vbox-install.log to find out what went wrong)

I investigated in /var/log/vbox-install.log, and the only thing I understood is is in this section and is: Run ‘make oldconfig && make prepare’ on kernel src to fix it."

tmp/vbox.0/vboxnetadp.mod.o
make KBUILD_VERBOSE=1 SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -C /lib/modules/3.4.0-25-desktop/build modules
make -C /usr/src/linux-3.4.0-25-obj/x86_64/desktop \
KBUILD_SRC=/usr/src/linux-3.4.0-25 \
KBUILD_EXTMOD="/tmp/vbox.0" -f /usr/src/linux-3.4.0-25/Makefile \
modules
/usr/src/linux-3.4.0-25/arch/x86/Makefile:96: CONFIG_X86_X32 enabled but no binutils support
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;                                \
/bin/false)
mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/*
make -f /usr/src/linux-3.4.0-25/scripts/Makefile.build obj=/tmp/vbox.0
  gcc -Wp,-MD,/tmp/vbox.0/linux/.VBoxPci-linux.o.d  -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.6/include -I/usr/src/linux-3.4.0-25/arch/x86/include -Iarch/x86/include/generated -Iinclude  -I/usr/src/linux-3.4.0-25/include -include /usr/src/linux-3.4.0-25/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 -fno-delete-null-pointer-checks -O2 -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -pipe -Wno-sign-compare -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -Wframe-larger-than=2048 -fno-stack-protector -Wno-unused-but-set-variable -fomit-frame-pointer -fasynchronous-unwind-tables -g -fno-inline-functions-called-once -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -include /tmp/vbox.0/include/VBox/SUPDrvMangling.h   -I/lib/modules/3.4.0-25-desktop/build/include   -I/tmp/vbox.0/   -I/tmp/vbox.0/include   -I/tmp/vbox.0/r0drv/linux   -I/tmp/vbox.0/vboxpci/   -I/tmp/vbox.0/vboxpci/include   -I/tmp/vbox.0/vboxpci/r0drv/linux -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -DRT_ARCH_AMD64 -DVBOX_WITH_64_BITS_GUESTS  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(VBoxPci_linux)"  -D"KBUILD_MODNAME=KBUILD_STR(vboxpci)" -c -o /tmp/vbox.0/linux/.tmp_VBoxPci-linux.o /tmp/vbox.0/linux/VBoxPci-linux.c
/tmp/vbox.0/linux/VBoxPci-linux.c: In function ‘VBoxPciLinuxInit’:
/tmp/vbox.0/linux/VBoxPci-linux.c:149:5: error: implicit declaration of function ‘iommu_found’ -Werror=implicit-function-declaration]
/tmp/vbox.0/linux/VBoxPci-linux.c: In function ‘vboxPciOsInitVm’:
/tmp/vbox.0/linux/VBoxPci-linux.c:989:9: error: too few arguments to function ‘iommu_domain_alloc’
/usr/src/linux-3.4.0-25/include/linux/iommu.h:83:29: note: declared here
cc1: some warnings being treated as errors

make[4]: *** [/tmp/vbox.0/linux/VBoxPci-linux.o] Error 1
make[3]: *** [_module_/tmp/vbox.0] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make: *** [vboxpci] Error 2 

after a googling session I made this as superuser:

linux-2fe4:/home/pla # cd /usr/src/linux-3.4.0-25/
linux-2fe4:/usr/src/linux-3.4.0-25 # make oldconfig && make prepare

checked my grub config in /boot/boot/grub/menu.lst to verify the intel_iommu=off option be absent,

###Don't change this comment - YaST2 identifier: Original name: linux###
title Desktop -- openSUSE 12.1 - 3.4.0-25
    root (hd0,5)
    kernel /boot/vmlinuz-3.4.0-25-desktop root=/dev/disk/by-id/ata-Hitachi_HTS725050A9A362_100226PCL400VLGNXB0J-part6 resume=/dev/disk/by-id/ata-Hitachi_HTS725050A9A362_100226PCL400VLGNXB0J-part9 splash=silent quiet showopts vga=0x314
    initrd /boot/initrd-3.4.0-25-desktop

rebooted and tried again twice, with no success, now, how to have my virtualbox working???
ciao Pier

May I suggest you try a couple of things. First, open up YaST Software Manager and search on dkms. If you have added in Packman for openSUSE 12.1 you should be able to find and install dkms. Next, visit my blog on the subject here:

DKMS, systemd & Virtual Box - How to get Dynamic Kernel Module Support to work in openSUSE 12.1 - Blogs - openSUSE Forums

This article tells you how to get dkms really working properly in openSUSE 12.1 and once complete, reboot and see if dkms does not properly install VirtualBox into kernel 3.4. If this does not work, you can compile your own kernel into openSUSE using this bash script:

S.A.K.C. - SUSE Automated Kernel Compiler - Version 2.71 - Blogs - openSUSE Forums

Check this out and see if it helps.

Thank you,

It worked, thank you verymuch I followed your instructions, rebooted, and virtualbox started to work fine without any other procedure. only one doubt in the blog here: “If you have followed my previous dkms procedure, you need to remove it as the above method works much better. Please open up a terminal session and run the two following commands:” at first glance the “previous” seems the above procedure, but probably may be is my bad english :slight_smile: manythanks again ciao pier.

Yes, at this point I should remove that verbage as its has been a while since my first attempt at getting dkms to work as the latest version works great and the “previous” not so much, but very likely now forgotten. In any event, happy to hear it is working for you. Basically VirtualBox supports dkms for update of its kernel models anytime the kernel is updated. openSUSE 12.1 switched to systemd which for some reason does not work properly with dksm as supplied by Packman. This same dkms version works just fine with openSUSE 11.4, without any modifications. I have no idea what we will get when openSUSE 12.2 comes out later this year.

Thank You,