Failed to find module 'vboxpci' - module missing in both meta and host-dkms packages

Hello folks!

Time to collect my portion of slaps and kicks from the community! LOL

First things first, my garuda-inxi output:

Kernel: 6.7.2-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 13.2.1
clocksource: tsc available: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=86f8e299-1c5d-4405-a98d-db97eea9b1b0 rw rootflags=subvol=@
quiet quiet rd.udev.log_priority=3 vt.global_cursor_default=0 loglevel=3
Desktop: KDE Plasma v: 5.27.10 tk: Qt v: 5.15.12 wm: kwin_x11 vt: 2
dm: SDDM Distro: Garuda Linux base: Arch Linux
Type: Desktop Mobo: Micro-Star model: X470 GAMING PRO (MS-7B79) v: 1.0
serial: <superuser required> BIOS: American Megatrends LLC. v: 1.K0
date: 07/23/2022
Info: model: AMD Ryzen 9 5950X bits: 64 type: MT MCP arch: Zen 3+ gen: 4
level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)
model-id: 0x21 (33) stepping: 2 microcode: 0xA20120A
Topology: cpus: 1x cores: 16 tpc: 2 threads: 32 smt: enabled cache:
L1: 1024 KiB desc: d-16x32 KiB; i-16x32 KiB L2: 8 MiB desc: 16x512 KiB
L3: 64 MiB desc: 2x32 MiB
Speed (MHz): avg: 3457 high: 5050 min/max: 2200/5083 boost: enabled
scaling: driver: acpi-cpufreq governor: performance cores: 1: 3400 2: 3400
3: 3400 4: 3400 5: 3400 6: 3400 7: 3400 8: 3400 9: 3400 10: 3400 11: 3400
12: 3400 13: 3400 14: 3600 15: 3400 16: 3400 17: 3400 18: 5050 19: 3400
20: 3400 21: 3400 22: 3400 23: 3400 24: 3400 25: 3400 26: 3400 27: 3400
28: 3400 29: 3400 30: 3400 31: 3400 32: 3400 bogomips: 217591
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities: <filter>
Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
vendor: Sapphire Nitro+ driver: amdgpu v: kernel arch: GCN-4
code: Arctic Islands process: GF 14nm built: 2016-20 pcie: gen: 3
speed: 8 GT/s lanes: 16 ports: active: DP-1 empty: DP-2, DVI-D-1,
HDMI-A-1, HDMI-A-2 bus-ID: 27:00.0 chip-ID: 1002:67df class-ID: 0300
temp: 52.0 C
Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.4
compositor: kwin_x11 driver: X: loaded: amdgpu unloaded: modesetting
alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
Screen-1: 0 s-res: 5120x1440 s-dpi: 96 s-size: 1354x381mm (53.31x15.00")
s-diag: 1407mm (55.38")
Monitor-1: DP-1 mapped: DisplayPort-0 model: LG (GoldStar) HDR DQHD
serial: <filter> built: 2019 res: 5120x1440 hz: 60 dpi: 108 gamma: 1.2
size: 1200x340mm (47.24x13.39") diag: 1244mm (49") modes: max: 5120x1440
min: 640x480
API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
device: 1 drv: swrast surfaceless: drv: radeonsi x11: drv: radeonsi
inactive: gbm,wayland
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 23.3.4-arch1.2
glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 590 Series (radeonsi
polaris10 LLVM 16.0.6 DRM 3.56 6.7.2-zen1-1-zen) device-ID: 1002:67df
memory: 7.81 GiB unified: no
API: Vulkan v: 1.3.276 layers: 3 device: 0 type: discrete-gpu name: AMD
Radeon RX 590 Series (RADV POLARIS10) driver: mesa radv v: 23.3.4-arch1.2
device-ID: 1002:67df surfaces: xcb,xlib device: 1 type: cpu name: llvmpipe
(LLVM 16.0.6 256 bits) driver: mesa llvmpipe v: 23.3.4-arch1.2 (LLVM
16.0.6) device-ID: 10005:0000 surfaces: xcb,xlib
Device-1: AMD Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590]
vendor: Sapphire driver: snd_hda_intel v: kernel pcie: gen: 3 speed: 8 GT/s
lanes: 16 bus-ID: 27:00.1 chip-ID: 1002:aaf0 class-ID: 0403
API: ALSA v: k6.7.2-zen1-1-zen status: kernel-api tools: N/A
Server-1: PipeWire v: 1.0.1 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet
vendor: Micro-Star MSI driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
lanes: 1 port: f000 bus-ID: 22:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp34s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Device-2: Realtek RTL88x2bu [AC1200 Techkey] driver: rtw_8822bu type: USB
rev: 2.1 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-1:2 chip-ID: 0bda:b812
class-ID: 0000 serial: <filter>
IF: wlp36s0u1 state: down mac: <filter>
IF-ID-1: docker0 state: down mac: <filter>
Local Storage: total: 3.87 TiB used: 333.72 GiB (8.4%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 970 EVO 250GB
size: 232.89 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 2B2QEXE7 temp: 35.9 C
scheme: MBR
ID-2: /dev/nvme1n1 maj-min: 259:1 vendor: Samsung model: SSD 970 EVO 1TB
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 2B2QEXE7 temp: 35.9 C
scheme: GPT
ID-3: /dev/sda maj-min: 8:0 vendor: Western Digital
model: WD30EFRX-68EUZN0 size: 2.73 TiB block-size: physical: 4096 B
logical: 512 B speed: 6.0 Gb/s tech: HDD rpm: 5400 serial: <filter>
fw-rev: 0A80 scheme: GPT
ID-1: / raw-size: 232.88 GiB size: 232.88 GiB (100.00%)
used: 63.05 GiB (27.1%) fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:2
ID-2: /home raw-size: 232.88 GiB size: 232.88 GiB (100.00%)
used: 63.05 GiB (27.1%) fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:2
ID-3: /var/log raw-size: 232.88 GiB size: 232.88 GiB (100.00%)
used: 63.05 GiB (27.1%) fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:2
ID-4: /var/tmp raw-size: 232.88 GiB size: 232.88 GiB (100.00%)
used: 63.05 GiB (27.1%) fs: btrfs dev: /dev/nvme0n1p1 maj-min: 259:2
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 62.72 GiB used: 2 MiB (0.0%) priority: 100
comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 32 dev: /dev/zram0
System Temperatures: cpu: 56.0 C mobo: N/A gpu: amdgpu temp: 51.0 C
Fan Speeds (rpm): N/A gpu: amdgpu fan: 828
Processes: 545 Uptime: 1h 45m wakeups: 0 Memory: total: 64 GiB note: est.
available: 62.72 GiB used: 9.94 GiB (15.9%) Init: systemd v: 255
default: graphical tool: systemctl Compilers: gcc: 13.2.1 Packages: 1733
pm: pacman pkgs: 1698 libs: 423 tools: octopi,pamac,paru pm: rpm pkgs: 0
pm: appimage pkgs: 0 pm: flatpak pkgs: 35 Shell: fish v: 3.7.0 default: Bash
v: 5.2.26 running-in: konsole inxi: 3.3.31
Garuda (2.6.22-1):
System install date:     2022-11-15
Last full system update: 2024-01-30
Is partially upgraded:   No
Relevant software:       snapper NetworkManager mkinitcpio
Windows dual boot:       <superuser required>
Failed units:

Coming to the issue: it all started with virtualbox freezing KDE and forcing me to shutdown the machine repeatedly.

Looking at journalctl:

 sudo journalctl -p 3 -xb
[sudo] password for alpha:
Jan 31 09:24:09 kraken systemd-modules-load[550]: Failed to find module 'vboxpci'

…the very first line mentioned a module not found by systemd-modules-load

Hence I double-checked with lsmod:

lsmod | grep vbox
vboxnetflt             40960  0
vboxnetadp             28672  0
vboxdrv               724992  2 vboxnetadp,vboxnetflt

…and triple-checked with systemctl:

systemctl status systemd-modules-load.service
● systemd-modules-load.service - Load Kernel Modules
Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
Active: active (exited) since Wed 2024-01-31 09:24:09 EST; 1h 8min ago
Docs: man:systemd-modules-load.service(8)
Process: 550 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)
Main PID: 550 (code=exited, status=0/SUCCESS)
CPU: 31ms

Jan 31 09:24:09 kraken systemd-modules-load[550]: Inserted module 'crypto_user'
Jan 31 09:24:09 kraken systemd-modules-load[550]: Inserted module 'sg'
Jan 31 09:24:09 kraken systemd-modules-load[550]: Inserted module 'i2c_dev'
Jan 31 09:24:09 kraken systemd-modules-load[550]: Inserted module 'uinput'
Jan 31 09:24:09 kraken systemd-modules-load[550]: Inserted module 'vboxdrv'
Jan 31 09:24:09 kraken systemd-modules-load[550]: Inserted module 'vboxnetadp'
Jan 31 09:24:09 kraken systemd-modules-load[550]: Inserted module 'vboxnetflt'
Jan 31 09:24:09 kraken systemd-modules-load[550]: Failed to find module 'vboxpci'
Jan 31 09:24:09 kraken systemd[1]: Finished Load Kernel Modules.
Notice: journal has been rotated since unit was started, output may be incomplete.

At that point I’ve tried to figure out which piece of vbox was invoking it and from vbox documentation I found that the module is needed by vboxdrv when VirtualBox deals with PCI components.

Fair enough, so: how come it was not there since I have installed Vbox from the meta package?

Looked in Octopi Info for that package and I read that virtualbox-host-dkms is required by the virtualbox-meta package and it seems to replace virtualbox-source, virtualbox-host-source and virtualbox-host-modules-its

Therefore, virtualbox-host-dkms must be the one assembling the modules to be passed to systemd-modules-load, right?

But when I clicked into the FIles section of the package in Octopi, the contents of /usr/src/vboxhost-7.0.14_OSE are missing vboxpci !!!

Being “Trust but verify” my motto, I’ve then checked confirmation for that inside the dkms.conf file inside the same folder: instructions for our poor vboxpci are missing…

cat dkms.conf
File: dkms.conf
## @file
# Linux DKMS config script for the VirtualBox guest kernel modules

# Copyright (C) 2006-2015 Oracle Corporation
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from This file is free software;
# you can redistribute it and/or modify it under the terms of the GNU
# General Public License (GPL) as published by the Free Software
# Foundation, in version 2 as it comes in the "COPYING" file of the
# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.





And here the plot thickens since the contents of MakeFile do include instructions to assemble and install vboxpci !!!

(Extract from Makefile inside /usr/src/vboxhost-7.0.14_OSE folder)

vboxpci: vboxdrv
+@if [ -d vboxpci ]; then \
if [ -f vboxdrv/Module.symvers ]; then \
cp vboxdrv/Module.symvers vboxpci; \
fi; \
echo "=== Building 'vboxpci' module ==="; \
$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxpci/Module.symvers) -C vbo
xpci || exit 1; \
cp vboxpci/vboxpci.ko .; \
echo; \

Conclusion: contents from

are different:

the first includes vboxpci but it does not build it because it is provided by the meta package which does not bring any MakeFile

cat /usr/lib/modules-load.d/virtualbox.conf
File: /usr/lib/modules-load.d/virtualbox.conf

the second does not include vboxpci despite it has the instructions to build it

cat /usr/lib/modules-load.d/virtualbox-host-dkms.conf
File: /usr/lib/modules-load.d/virtualbox-host-dkms.conf

My questions to you:

  • how can I force the creation and loading of the vboxpci module required by VirtualBox to work?
  • how can I streamline the related .conf situation?

Thanks and feel free to shoot me if any… LOL

If I remember correctly, the vboxpci module is not used anymore (and we should remove its reference from our package).
Try removing it from
And, if there, from
as well.
Reboot and check if the message is removed but virtualbox works fine.

1 Like

@filo : thanks for the input.
I’ve done it and re-tested VirtualBox but VMs that were previously running flawlessly now are experiencing issues (aborted instead of shutting down correctly, sluggish, etc.).
Can’t really say if it’s a Virtualbox fault or the lack of the vboxpci module though…

I see vboxpci was provided by virtualbox-host-dkms, a dependency of virtualbox, but removed from it since a long time. See e.g.
With the change above, we just avoided to try loading vboxpci. I don’t see how this can have caused issues, since vboxpci was not there anyway before…


OOOk. It makes sense. I’ll continue troubleshooting. Thanks for checking anyway @filo !

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.