Cannot install oracle virtualbox 5.1.-5.1.22_115216

I have edit the source files following the patch said. It does not work for me.
I got the same error about “vmas”.

How do you succeed to install from virtualbox rpm.

Any help is welcome

How do you succeed to install from virtualbox rpm.

Under kernel 4.12 the rpm from the Oracle Side does also not work, so I have switched to the Package from openSUSE from Kernel:stable:kmp

Its working fine.

Try the one from Virtualization Repo as wolfi323 mentioned?

Have a problem :
[CODE#### YaST2 conflicts list - generated 2017-07-13 13:19:48 ####

nothing provides ksym(default:__free_pages) = 7c095e73 needed by virtualbox-host-kmp-default-5.1.22_k4.4.74_18.20-311.3.x86_64

[ ] do not install virtualbox-host-kmp-default-5.1.22_k4.4.74_18.20-311.3.x86_64

 ] break virtualbox-host-kmp-default-5.1.22_k4.4.74_18.20-311.3.x86_64 by ignoring some of its dependencies

YaST2 conflicts list END

]

What package to install to have the same things as Oracle Virtrualbox package :

 python-virtualbox                      
 virtualbox                             
 virtualbox-devel                       
 virtualbox-guest-desktop-icons         
 virtualbox-guest-kmp-default           
 virtualbox-guest-tools                 
 virtualbox-guest-x11                   
 virtualbox-host-kmp-default            
 virtualbox-qt                          
 virtualbox-vnc                         
 virtualbox-websrv                      

Post:

zypper lr -d
uname -a
rpm -qa kerne* virtualbo*

zypper :

superjc@linux-j302:~> zypper lr -d
Repository priorities in effect:                                                                                     (See 'zypper lr -P' for details)
      60 (raised priority)  :  1 repository
      93 (raised priority)  :  1 repository
      94 (raised priority)  :  1 repository
      95 (raised priority)  :  1 repository
      96 (raised priority)  :  1 repository
      97 (raised priority)  :  1 repository
      98 (raised priority)  :  1 repository
      99 (default priority) :  1 repository

#  | Alias                     | Name                                    | Enabled | GPG Check | Refresh | Priority | Type     | URI                                                                          | Service
---+---------------------------+-----------------------------------------+---------+-----------+---------+----------+----------+------------------------------------------------------------------------------+--------
 1 | download.nvidia.com-leap  | nVidia Graphics Drivers                 | Yes     | (r ) Yes  | Yes     |   98     | rpm-md   | https://download.nvidia.com/opensuse/leap/42.3                               |        
 2 | openSUSE-Leap-42.3-0      | openSUSE-Leap-42.3-0                    | No      | ----      | ----    |  150     | yast2    | cd:///?devices=/dev/disk/by-id/ata-MATSHITABD-CMB_UJ160_WN63_051734          |        
 3 | openSUSE_Virtualization   | openSUSE_Virtualization                 | Yes     | (r ) Yes  | Yes     |   93     | rpm-md   | http://download.opensuse.org/repositories/Virtualization/openSUSE_Leap_42.3/ |        
 4 | packman.inode.at-suse     | Packman Repository                      | Yes     | (r ) Yes  | Yes     |   94     | rpm-md   | http://packman.inode.at/suse/openSUSE_Leap_42.3/                             |        
 5 | repo-debug                | openSUSE-Leap-42.3-Debug                | No      | ----      | ----    |  150     | NONE     | http://download.opensuse.org/debug/distribution/leap/42.3/repo/oss/          |        
 6 | repo-debug-non-oss        | openSUSE-Leap-42.3-Debug-Non-Oss        | No      | ----      | ----    |  150     | NONE     | http://download.opensuse.org/debug/distribution/leap/42.3/repo/non-oss/      |        
 7 | repo-debug-update         | openSUSE-Leap-42.3-Update-Debug         | No      | ----      | ----    |  150     | NONE     | http://download.opensuse.org/debug/update/leap/42.3/oss/                     |        
 8 | repo-debug-update-non-oss | openSUSE-Leap-42.3-Update-Debug-Non-Oss | No      | ----      | ----    |  150     | NONE     | http://download.opensuse.org/debug/update/leap/42.3/non-oss/                 |        
 9 | repo-non-oss              | openSUSE-Leap-42.3-Non-Oss              | Yes     | (r ) Yes  | Yes     |   99     | yast2    | http://download.opensuse.org/distribution/leap/42.3/repo/non-oss/            |        
10 | repo-oss                  | openSUSE-Leap-42.3-Oss                  | Yes     | (r ) Yes  | Yes     |   97     | yast2    | http://download.opensuse.org/distribution/leap/42.3/repo/oss/                |        
11 | repo-source               | openSUSE-Leap-42.3-Source               | No      | ----      | ----    |   99     | NONE     | http://download.opensuse.org/source/distribution/leap/42.3/repo/oss/         |        
12 | repo-source-non-oss       | openSUSE-Leap-42.3-Source-Non-Oss       | No      | ----      | ----    |   99     | NONE     | http://download.opensuse.org/source/distribution/leap/42.3/repo/non-oss/     |        
13 | repo-update               | openSUSE-Leap-42.3-Update               | Yes     | (r ) Yes  | Yes     |   95     | rpm-md   | http://download.opensuse.org/update/leap/42.3/oss/                           |        
14 | repo-update-non-oss       | openSUSE-Leap-42.3-Update-Non-Oss       | Yes     | (r ) Yes  | Yes     |   96     | rpm-md   | http://download.opensuse.org/update/leap/42.3/non-oss/                       |        
15 | zypper_local_for_install  | zypper_local_for_install                | Yes     | ( p) Yes  | Yes     |   60     | plaindir | dir:///local/000_install_from_local_for_install                              |        
superjc@linux-j302:~> 


uname :

superjc@linux-j302:~> uname -a
Linux linux-j302.suse 4.4.75-1-default #1 SMP Fri Jul 7 11:28:32 UTC 2017 (0b7a836) x86_64 x86_64 x86_64 GNU/Linux                                   
superjc@linux-j302:~>                                                                                                                                

rpm :

superjc@linux-j302:~> rpm -qa kerne* virtualbo*                                                                                                      
kernel-default-devel-4.4.74-1.1.x86_64                                                                                                               
kernel-devel-4.4.75-1.1.noarch                                                                                                                       
kernel-source-4.4.75-1.1.noarch                                                                                                                      
kernel-syms-4.4.74-1.1.x86_64
kernel-docs-html-4.4.75-1.1.noarch
kernel-default-4.4.75-1.1.x86_64
kernel-macros-4.4.75-1.1.noarch
kernel-devel-4.4.74-1.1.noarch
kernel-source-4.4.74-1.1.noarch
kernel-default-4.4.74-1.1.x86_64
kernel-firmware-20170530-9.1.noarch
kernel-default-devel-4.4.75-1.1.x86_64
kernel-syms-4.4.75-1.1.x86_64
superjc@linux-j302:~> 


You need virtualbox, virtualbox-qt and virtualbox-host-kmp-default.
But if you install virtualbox, the rest should be pulled in automatically.

And uninstall Oracle’s VirtualBox package first, or you will encounter problems.

Regarding your previous conflict: I notice that the Virtualization repo for 42.3 actually builds against 42.2:Update, so I think this is not going to work…

So better remove that repo and install the version from the standard 42.3 repo instead if there still are conflicts, it has been updated meanwhile to 5.1.22. (now 5.1.24 is the latest though, but I’m sure that will be released as update for 42.3 too)

This has been fixed yesterday though, so also the packages in that repo should work now.

I have a similar problem as OP, I recently upgraded 42.2->42.3
I have installed an older Oracle version.

If I uninstall that Oracle version of vbox and install the version in the 42.3 repo (currently shown as v5.1.24-22.1) will it pick up the existing VM settings or will I have to recreate them?

Thanks, Jon

Similar is not same.
When in doubt, always start your new thread instead of posting to an existing.

TSU

VirtualBox-5.1-5.1.26_117224_openSUSE132-1.x86_64 from virtualbox does not install on latest kernel 4.4.79-4-default. Nothing new.

I will try to install 5.1.26 from update/leap/42.3/oss/x86_64.

Yes, because the fix will only be in the next VirtualBox version.

But there’s absolutely no advantage at all in using Oracle’s package over the one included in openSUSE…

I noticed that the guest additions ISO appears to be distributed as part of the Oracle VirtualBox package (eg. the one that doesn’t build on 42.3). For those of us who’ve switched to the VB package in the 42.3 repo, is the only way to install guest drivers to manually extract that ISO from the Oracle package?

wolfi323 wrote:

> But there’s absolutely no advantage at all in using Oracle’s package
> over the one included in openSUSE…

I stay with them because in the past they get earlier (and more often) updates
as the version from oss.

Can i use the version from oss with using multiversion for the kernel? The
version from Oracle works perfect with multiple kernels.

AK

P.S. Just tested the patch for vboxhost and vboxguest modules from Oracles 5.1.22 rpm against a kernel for 42.3. Although it needs some manual tinkering (patch does not apply cleanly against vboxguest and one needs to take care of different path structure), I can confirm that this works.

Patch for vboxguest:


diff -uraN vboxguest-5.1.22.orig/vboxguest/r0drv/linux/memobj-r0drv-linux.c vboxguest-5.1.22/vboxguest/r0drv/linux/memobj-r0drv-linux.c
--- vboxguest-5.1.22.orig/vboxguest/r0drv/linux/memobj-r0drv-linux.c    2017-07-04 14:33:29.068577884 +0200
+++ vboxguest-5.1.22/vboxguest/r0drv/linux/memobj-r0drv-linux.c 2017-07-04 14:35:18.464574652 +0200
@@ -1084,18 +1084,14 @@
 # endif
                                 );
 #else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) */
-            rc = get_user_pages(pTask,                  /* Task for fault accounting. */
-                                pTask->mm,              /* Whose pages. */
-                                R3Ptr,                  /* Where from. */
+           /* The following is modified for Leap 42.3 having the
+            *  get_user_pages() API from kernel 4.10
+            */
+            rc = get_user_pages(R3Ptr,                  /* Where from. */
                                 cPages,                 /* How many pages. */
-# if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
                                 fWrite ? FOLL_WRITE |   /* Write to memory. */
                                          FOLL_FORCE     /* force write access. */
                                        : 0,             /* Write to memory. */
-# else
-                                fWrite,                 /* Write to memory. */
-                                fWrite,                 /* force write access. */
-# endif
                                 &pMemLnx->apPages[0],   /* Page array. */
                                 papVMAs);               /* vmas */
 #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) */

Patch for vboxhost:


diff -uraN vboxhost-5.1.22.orig/vboxdrv/r0drv/linux/memobj-r0drv-linux.c vboxhost-5.1.22/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
--- vboxhost-5.1.22.orig/vboxdrv/r0drv/linux/memobj-r0drv-linux.c       2017-07-04 14:41:56.640562887 +0200
+++ vboxhost-5.1.22/vboxdrv/r0drv/linux/memobj-r0drv-linux.c    2017-07-04 14:42:41.748561554 +0200
@@ -1084,18 +1084,14 @@
 # endif
                                 );
 #else /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) */
-            rc = get_user_pages(pTask,                  /* Task for fault accounting. */
-                                pTask->mm,              /* Whose pages. */
-                                R3Ptr,                  /* Where from. */
+           /* The following is modified for Leap 42.3 having the
+            *  get_user_pages() API from kernel 4.10
+            */
+            rc = get_user_pages(R3Ptr,                  /* Where from. */
                                 cPages,                 /* How many pages. */
-# if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
                                 fWrite ? FOLL_WRITE |   /* Write to memory. */
                                          FOLL_FORCE     /* force write access. */
                                        : 0,             /* Write to memory. */
-# else
-                                fWrite,                 /* Write to memory. */
-                                fWrite,                 /* force write access. */
-# endif
                                 &pMemLnx->apPages[0],   /* Page array. */
                                 papVMAs);               /* vmas */
 #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 6, 0) */

[/QUOTE]

Thanks for posting the patches, when I updated to 42.3 oracle’s virtual box actually worked with an xp guest until I updated to 5.1.26 and even more disappointment when downgrading didn’t fix the problem. Knowing that it was third party software I left it alone as I didn’t have a pressing use for it and was too busy fixing other things to have time to fix this. Had a bit of spare time and after googling found this forum thread and applying the patch to /usr/share/virtualbox/src/vboxhost/vboxdrv/r0drv/linux/memobj-r0drv-linux.c allowed the module to build again.
Thanks you’re a life saver.

No.

Just choose “Insert guest additions ISO” from the VM’s “Devices” menu, and VirtualBox will download the ISO automatically (if it hasn’t done so already) before it inserts it into the VM.

Or you can download the guest additions (any version since 4.0.0) manually here:
https://download.virtualbox.org/virtualbox

Of course you get updates earlier (I don’t think “more often” nowadays). Although you can also use the additional “Virtualization” repo to get the latest version earlier.

Can i use the version from oss with using multiversion for the kernel? The
version from Oracle works perfect with multiple kernels.

Depends on what exactly you mean with “multiplekernels”.

The precompiled kernel module is built against the standard kernels in the distribution and does not work with other ones. (it does work with all of them if you have multiple versions installed).

There is an extra package with the source code though (virtualbox-host-source), which should make it possible to use completely different kernels.
I never tried that myself though.

FYI, the “official” upstream patch (that will be in the next VirtualBox version) is this:
https://www.virtualbox.org/changeset/68217/vbox/?old=68214&old_path=%2Fvbox

It should also work with “normal” 4.4.x kernels.

wolfi323 wrote:

> Depends on what exactly you mean with “multiplekernels”.

I mean that i use this in /etc/zypp/zypp.conf:

multiversion = kernel-default kernel-default-devel kernel-devel

I don’t know how old this is but my former experience was that i can use the
kernel modul only with the last kernel. But your words show me that the version
from opensuse should work in the same way and thanks for this informations.

Hm, why did you change that?
The default “multiversion = provides:multiversion(kernel)” should achieve exactly that.

I don’t know how old this is

multiversion kernels is the default in openSUSE since years, 12.x I think, maybe even longer.

but my former experience was that i can use the
kernel modul only with the last kernel. But your words show me that the version
from opensuse should work in the same way and thanks for this informations.

This works since multiversion is default. (unless there was a bug that an incompatible update was released, that happened one time by mistake in 13.2 IIRC).

The kernel ABI is kept stable in a released openSUSE version and a script is run on every kernel update that creates symlinks to all other installed kernels if they are compatible.

So yes, this will work as long as you only use official kernels of the openSUSE release you have installed.

If you installed additional kernels (with an incompatible ABI) from somewhere else (or maybe self-compiled), pre-compiled kernel modules break of course.
But again, there’s the virtualbox-host-source package for that case now.