Include all attachments?

Edit Info Other
Login
Howto/

VirtualBox

About this Howto

The goal is have a place with all information that is FAQ.

Quick install

Since F22+ we don't have pre-built kmods we need use akmods.

Please do as root:

    dnf install VirtualBox
    akmods
    systemctl restart vboxdrv
    lsmod  | grep -i vbox

result:

vboxnetadp             28672  0
vboxnetflt             32768  0
vboxdrv               557056  2 vboxnetadp,vboxnetflt

First time installation and USB passthrough

To have access to USB passthrough, you need add the user that run VirtualBox-server to vboxusers group, but just after installation of VirtualBox-server package, because VirtualBox-server creates the "vboxusers" group on installation.

As root you may do :

usermod -a -G vboxusers username ( usermod -a -G vboxusers sergiomb )

or use the GUI Users and Groups tool.

Note: USB passthrough requires read/write access to USB devices. As a result may runs some parts of its code with root privileges. Once a user is in the vboxusers group, it may have ways to get root access. Please do not add anyone who is not trustworthy to the vboxusers group!

Sign kernel modules to work with secure boot

{i} UPDATE
starting in Fedora 36 secureboot is supported by akmods please read /usr/share/doc/akmods/README.secureboot (from akmods package) for more details
also more information on ../Secure Boot

# modprobe vboxdrv

    modprobe: ERROR: could not insert 'vboxdrv': Key was rejected by service

It happens when secure boot is enable and so far we can run it with secure boot enabled because kernel modules still not signed

To sign kernel modules to make work with secure boot, this 2 posts are a good reference, I haven't test my self:

http://stackoverflow.com/questions/29480176/how-to-install-virtualbox-on-linux-secure-boot-systems-bash-script

https://askbot.fedoraproject.org/en/question/34470/virtual-box-on-fedora-19-fails-to-start-a-vm/

or google for "virtualbox fedora secure boot", we have some progresses here [3]

[3] https://bugzilla.redhat.com/show_bug.cgi?id=1454824

Install VirtualBox_Extension_Pack

1- If you don't need usb or just for testing , go to setting usb and disable usb , for that you have to have vm machine off .

2 - With firefox download Oracle_VM_VirtualBox_Extension_Pack-5.1.30.vbox-extpack for example click here : http://download.virtualbox.org/virtualbox/5.0.14/Oracle_VM_VirtualBox_Extension_Pack-5.0.14.vbox-extpack firefox should ask if you want install with vbox something , say yes

3 - After on updates check, ask to download automatically over the internet, after update VirtualBox please try file -> check for updates and should install the correct extension package

if this doesn't do nothing because you install a superior version

rm -rf /usr/lib64/virtualbox/ExtensionPacks/Oracle_VM_VirtualBox_Extension_Pack as root , and repeat items 2 and 3

anyway , you should use file -> check for updates to update extension pack

Upgrade VirtualBox version without reboot

On upgrade VirtualBox for a new release, we need remove kernel modules loaded and load new ones (for the new release).

    dnf update VirtualBox kernel-devel-$(uname -r) akmod-VirtualBox
    akmods-shutdown
    systemctl restart vboxdrv
    dmesg | grep -i vbox

if you run an upgrade version don't forget update also VirtualBox_Extension_Pack (if you have it installed) http://rpmfusion.org/Howto/VirtualBox#Install_VirtualBox_Extension_Pack

Fedora as a Virtual Machine and VBoxGuestAdditions

Since Fedora 28 you got virtualBox-guest-additions working out of the box on Fedora proper and is no need akmods anymore (in the vm), package is virtualBox-guest-additions all with lowercase, so just do dnf install virtualBox-guest-additions in a vm (guest system). For epel 7 and 8 we still have VirtualBox-guest-additions on RPM Fusion.

If you want run Fedora in a vm, you may/should install !virtualBox-guest-additions. this replaces VBoxGuestAdditions provide by Oracle

RPM Fusion doesn't provide VBoxGuestAdditions for others OS , you have to download it , you have a button for that in VirtualBox, vm manager menu.

    dnf install VirtualBox-guest-additions kernel-devel-matched
    systemctl restart vboxservice
    dmesg 

In the last lines should see something like :

[ 1907.370440] VBoxService 5.0.17_ r105877 (verbosity: 0) linux.amd64 (Apr  1 2016 05:26:22) release log
               00:00:00.000103 main     Log opened 2016-04-02T01:32:31.428335000Z
[ 1907.370508] 00:00:00.000250 main     OS Product: Linux
[ 1907.370550] 00:00:00.000291 main     OS Release: 4.5.0-0.rc7.git0.2.fc24.x86_64
[ 1907.370849] 00:00:00.000575 main     OS Version: #1 SMP Tue Mar 8 02:20:08 UTC 2016
[ 1907.371947] 00:00:00.000708 main     Executable: /usr/bin/VBoxService
               00:00:00.000711 main     Process ID: 3002
               00:00:00.001639 main     Package type: LINUX_64BITS_GENERIC (OSE)
[ 1907.374751] 00:00:00.004436 main     5.0.17_ r105877 started. Verbose level = 0

Typical error when building with a kernel-debug

ERROR: modpost: GPL-incompatible module nvidia-drm.ko uses GPL-only symbol 'mutex_lock_nested'

Looks like the kernel is trying harder to hide GPL-only symbols.

Is this a known problem? Is there a solution

yes, GPL-only symbol error only happens only when you use a debug kernel

debug kernel isn't compatible with nvidia or VirtualBox drivers, please see https://rpmfusion.org/Howto/VirtualBox#I_had_install_kernel-debug-devel_but_I_need_kernel-devel

I had install kernel-debug-devel but I need kernel-devel

When we install only VirtualBox  dnf install VirtualBox  it require one kmod so it pulls akmod-VirtualBox (we, at this moment, don't have binary kmods) and also may pulls in kernel-debug-devel instead of kernel-devel (of the running kernel) [1]. We need the kernel-devel of kernel that is running on the system but we can't workaround this problem. So we need make sure that install proper kernel-devel (usually the kernel-devel).

So

   dnf install kernel-devel-$(uname -r)
   dnf remove kernel-debug-devel

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1228897

{i} UPDATE
it seems the "kernel-devel-matched" package which is available, at least, since Fedora 35 and Centos 9 fix this issue

   mock -r fedora+rpmfusion_free-40-x86_64 install kernel VirtualBox

installs the correct kernel-devel

Selinux and VirtualBox

ATM, we don't support running VirtualBox with selinux enabled, solution is disable selinux, if selinux prevents VirtualBox to run, last time that I checked it was working ...

Uninstall official virtual-guest-additions provide by Oracle and use virtualbox-guest-additions package provide by Fedora

navigate to /run/media/<my user name>/VBoxGAs_6.0.4 issue command './VBoxLinuxAdditions.run uninstall'

issue command 'sudo dnf remove virtualbox-linux-additions akmod-VirtualBox'

issue command 'sudo dnf install VirtualBox-linux-additions akmod-VirtualBox'

issue command 'sudo akmods-shutdown'

This command built kmods for 5.0.3, 5.0.4, 5.0.5, taking a couple of minutes.

shut down the Fedora 29 Virtual Machine. (Use GUI or issue command 'sudo shutdown -h now') (I could use the -r flag, but I generally prefer when shutting down to have the machine completely shut down for 15-30 seconds before restarting.)

start the Fedora 29 Virtual Machine.

At this point, the shared folders were visible!

Install virtual-guest-additions on Centos 9 (stream)

dnf install centos-release-kmods
dnf install virtualbox-guest-additions
systemctl enable vboxservice 

this next maybe need , keep in mind this still in a very early stage

systemctl start vboxservice 
systemctl restart vboxclient

How to use kmods in EL 9: https://lists.centos.org/pipermail/centos/2022-September/715699.html

Troubleshoot :

(Fixed https://gitlab.com/CentOS/kmods/src/kmod-vbox-guest-additions/-/issues/1 ) if you got messages like:  INFO depmod: `ERROR: fstatat(6, vboxsf.ko.xz): No such file or directory 

to fix just remove the broken symlink, for example:  rm /usr/lib/modules/5.14.0-109.el9.x86_64/weak-updates/fs/vboxsf/vboxsf.ko.xz 






















CategoryHowto