Cannot install oracle virtualbox 5.1.-5.1.22_115216

Hello.
I am trying leap 42.3.
After a fresh install, I have installed the nvidia driver ( the hard way ).
Normally every things relative to compilation and kernel is setup as the nvidia driver install well.

The local repo : ‘zypper_local_for_install’ contains the virtrualbox rpm file.

I have tested on another computer running 42.2 with no problems.
I have not encountered this problem for some years.

Tell If you need more info

Any help and comments are welcomes.

Here some screen result chowing the current config :



linux-j302:~ # uname -a
Linux linux-j302.suse 4.4.73-1-default #1 SMP Fri Jun 23 18:47:07 UTC 2017 (4e6675a) x86_64 x86_64 x86_64 GNU/Linux
linux-j302:~ # 

linux-j302:~ # rpm -qa | grep -i kernel | sort
kernel-default-4.4.72-1.2.x86_64
kernel-default-4.4.73-1.1.x86_64
kernel-default-devel-4.4.72-1.2.x86_64
kernel-default-devel-4.4.73-1.1.x86_64
kernel-devel-4.4.72-1.2.noarch
kernel-devel-4.4.73-1.1.noarch
kernel-docs-html-4.4.73-1.1.noarch
kernel-firmware-20170530-1.1.noarch
kernel-macros-4.4.73-1.1.noarch
kernel-source-4.4.72-1.2.noarch
kernel-source-4.4.73-1.1.noarch
kernel-syms-4.4.72-1.2.x86_64
kernel-syms-4.4.73-1.1.x86_64
patterns-openSUSE-devel_kernel-20170518-4.1.x86_64
linux-j302:~ # 

linux-j302:~ # zypper lr -d
Repository priorities in effect:                                                                                                                                                   (See 'zypper lr -P' for details)
      60 (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 | packman.inode.at-suse     | Packman Repository                      | Yes     | (r ) Yes  | Yes     |   94     | rpm-md   | http://packman.inode.at/suse/openSUSE_Leap_42.3/                         |        
 4 | repo-debug                | openSUSE-Leap-42.3-Debug                | No      | ----      | ----    |  150     | NONE     | http://download.opensuse.org/debug/distribution/leap/42.3/repo/oss/      |        
 5 | 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/  |        
 6 | repo-debug-update         | openSUSE-Leap-42.3-Update-Debug         | No      | ----      | ----    |  150     | NONE     | http://download.opensuse.org/debug/update/leap/42.3/oss/                 |        
 7 | 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/             |        
 8 | 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/        |        
 9 | repo-oss                  | openSUSE-Leap-42.3-Oss                  | Yes     | (r ) Yes  | Yes     |   97     | yast2    | http://download.opensuse.org/distribution/leap/42.3/repo/oss/            |        
10 | repo-source               | openSUSE-Leap-42.3-Source               | No      | ----      | ----    |   99     | NONE     | http://download.opensuse.org/source/distribution/leap/42.3/repo/oss/     |        
11 | 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/ |        
12 | repo-update               | openSUSE-Leap-42.3-Update               | Yes     | (r ) Yes  | Yes     |   95     | rpm-md   | http://download.opensuse.org/update/leap/42.3/oss/                       |        
13 | 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/                   |        
14 | zypper_local_for_install  | zypper_local_for_install                | Yes     | ( p) Yes  | Yes     |   60     | plaindir | dir:///local/000_install_from_local_for_install                          |        
linux-j302:~ # 


here the command


Password: 

linux-j302:~ # zypper se VirtualBox-5.1  
Loading repository data...
Reading installed packages...

S | Name           | Summary              | Type   
--+----------------+----------------------+--------
  | VirtualBox-5.1 | Oracle VM VirtualBox | package


linux-j302:~ # zypper in VirtualBox-5.1  
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  VirtualBox-5.1

1 new package to install.
Overall download size: 62.7 MiB. Already cached: 0 B. After the operation, additional 146.5 MiB will be used.
Continue? [y/n/...? shows all options] (y): 
Retrieving package VirtualBox-5.1-5.1.22_115126_openSUSE132-1.x86_64                                                                                  (1/1),  62.7 MiB (146.5 MiB unpacked)
VirtualBox-5.1-5.1.22_115126_openSUSE132-1.x86_64.rpm:
    Header V4 DSA/SHA1 Signature, key ID 98ab5139: NOKEY
    V4 DSA/SHA1 Signature, key ID 98ab5139: NOKEY

VirtualBox-5.1-5.1.22_115126_openSUSE132-1.x86_64 (zypper_local_for_install): Signature verification failed [4-Signatures public key is not available]
Abort, retry, ignore? [a/r/i] (a): i
Checking for file conflicts: ........................................................................................................................................................[done]
(1/1) Installing: VirtualBox-5.1-5.1.22_115126_openSUSE132-1.x86_64 .................................................................................................................[done]
Additional rpm output:
warning: /var/cache/zypp/packages/zypper_local_for_install/VirtualBox-5.1-5.1.22_115126_openSUSE132-1.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 98ab5139: NOKEY

Creating group 'vboxusers'. VM users must be member of that group!

vboxdrv.sh: failed: Look at /var/log/vbox-install.log to find out what went wrong.

There were problems setting up VirtualBox.  To re-start the set-up process, run
  /sbin/vboxconfig
as root.

linux-j302:~ # 

Here head of the log file :

make KBUILD_VERBOSE=1 SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 CONFIG_MODULE_SIG= -C /lib/modules/4.4.73-1-default/build -j8 modules
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make -C /usr/src/linux-4.4.73-1-obj/x86_64/default KBUILD_SRC=/usr/src/linux-4.4.73-1 \
-f /usr/src/linux-4.4.73-1/Makefile 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)

here the full log file
http://paste.opensuse.org/21080199

https://forums.opensuse.org/showthread.php/525761-Safe-way-of-mixing-repos?p=2828720#post2828720

Congrats, you’re screwed until someone creates a patch for the “not really a 4.4.X although it calls itself one”-kernel in 42.3.

AK

You should be able to install openSUSE’s virtualbox though, as this comes with a pre-compiled kernel module.

It is included in the standard repos, though the version in 42.3 is slightly outdated, 5.1.18.
You can install it this way:

sudo zypper in virtualbox

(though you should uninstall Oracle’s VirtualBox-5.1 first)

If you need the newest one, it is available in the Virtualization repo for 42.3 too:
http://download.opensuse.org/distribution/leap/42.3/repo/oss/suse/

I suppose it will be updated in the standard repos as well at some point, as 42.2 already got 5.1.22 too as update.

PS: here’s the patch for the 42.3 kernel:
https://build.opensuse.org/package/view_file/openSUSE:Leap:42.3/virtualbox/vbox_fix_42.3_api.patch?expand=1
If you apply that change to the kernel module sources, you should be able to use Oracle’s VirtualBox too I suppose.
(although it doesn’t really have any advantage over openSUSE’s version)

I have report a bug :
http://bugzilla.opensuse.org/show_bug.cgi?id=1047215

Sorry, wrong link.

The Virtualization repo for 42.3 is here:
http://download.opensuse.org/repositories/Virtualization/openSUSE_Leap_42.3/

Well, in this case, why (and most importantly how) should openSUSE devs fix a package from a third party, especially when they fixed their own package already?

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) */

I will send a copy of yours answer to bugzilla too.
I will make a test tomorrow, and will give news.

No, don’t do that.

The openSUSE devs can (and therefor will not) fix a 3rd party package.

Your bug report will most likely be closed as “WONTFIX” for exactly that reason.

AK

Jean, I’m sorry but bugzilla is not the general escalation path for issues that failed to get fixed for a user in the forums. Having no other option or lack of knowledge is no reason for a bug, only to document a technical action to take.

Actually the package in 42.3 has been updated to 5.1.22 already too (2 days ago, didn’t notice).
So no need for adding a repo.

It should be noted that there is some confusion in this thread…

Although the OP posted that he installed “Oracle Virtualbox,” it was not downloaded from Oracle.
It was always the package from OSS (You can check his repo list and that he installed from his repos).

TSU

I call BS.

And if you actually have a close look, you will see you are plain wrong.

AK

linux-j302:~ # zypper se VirtualBox-5.1  
Loading repository data...
Reading installed packages...

S | Name | Summary | Type
–±---------------±---------------------±-------
| VirtualBox-5.1 | Oracle VM VirtualBox | package

linux-j302:~ # zypper in VirtualBox-5.1
Loading repository data…
Reading installed packages…
Resolving package dependencies…

As mentioned, the Naming Scheme is different to the virtualbox (!) Package from openSUSE…

So the Package from the Oracle Repo/Download is broken for openSUSE Leap 42.3…

Technically, openSUSE deliberately broke the convention that one can distinguish the kernel API from knowing only the kernel version. They backported the get_user_pages() change from kernel 4.10 into kernel 4.4.X. This kind of behavior has been a “feature” of Ubuntu kernels for years. For that reason, I do not support any problems encountered on my GitHub repositories by Ubuntu users.

Due to my responsibilities as the maintainer of the VirtualBox package for openSUSE, I am required to support Leap 42.3 even though I disapprove of the decision to mess with the kernel APIs of 4.4.

Note that the current VB builds for 42.3 come from Factory., not from a 42.3-specific repo. Once 42.3 is released, it will then have an Update repo tree, and some of the problems will be reduced.

I am working hard to get the one Factory VB package to build and work with Tumbleweed and Leap 42.3. If anyone is dissatisfied with my efforts, I am very willing to transfer maintainership to you.

@lwfinger

I have not said anything against the Virtualbox-Version from openSUSE.

I have only mentioned, that the Version from the Oracle-Repo or the Download Version from Oracle does not build against the Kernel of openSUSE Leap 42.3.
And that is not the only kmp, that does not build because of the mentioned change in the kernel.

I mean the rpm Version of Virtualbox, not the Source.

To be complete, I install every things ‘special’ ( that is not existing in any opensuse repos for any reason ( version, … )) by downloading the rpm, then copy the stuff to a local repos that zypper known as ‘zypper_local’ or ‘zypper_local_for_install’ depending what I am doing.
In my thread #1 the info given by ‘zypper se -s’ come from my local repos.

**After applying today update which contains kernel 4.4.74-1, I can install Virtualbox without problem.
**
Thank you every body for helping.

http://bugzilla.opensuse.org/show_bug.cgi?id=1047215

Bug report has been updated

In fact does not work.
The gui opened but the vbox services does not run.