libkmod error

Started by harley-peter, 2025/05/21, 10:19:28

Previous topic - Next topic

harley-peter

Hallo,
ein heutiges du ergibt bei mir folgende Fehlermeldung:
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-6.14.7-1-siduction-amd64
libkmod: ERROR: conf_files_filter_out: Directories inside directories are not supported: /etc/modprobe.d/virtualbox-dkms.conf


Allerdings scheint alles zu funktionieren, auch Virtualbox.

Teriarch

#1
> Allerdings scheint alles zu funktionieren, auch Virtualbox.

Das ist die Frage. Ein

$ dpkg -L virtualbox-dkms |grep etc

ergibt:

/etc/modprobe.d/virtualbox-dkms.conf
/etc/modprobe.d/virtualbox-dkms.conf/virtualbox-dkms.modprobe.conf

Und das Konfigurationsverzeichnis /etc/modprobe.d von modprobe erlaubt keine Unterverzeichnisse.
Beim Laden des Moduls kvm.ko, welches für die Hardware Virtualisierung verantwortlich ist, wird neuerdings
kvm.ko bereits beim Laden als Hypervisor eingesetzt. Und die Konfigurationsdatei
"virtualbox-dkms.modprobe.conf" mit Inhalt

options kvm     enable_virt_at_load=0

soll das verhindern. Dazu kommt es alledings nicht, weil sie sich aufgrund eines Bugs in virtualbox-dkms
in einem Unterverzeichnis befindet. Ob kvm wirklich als Hypervisor geladen wird, kannst Du mit

$ cat /sys/module/kvm/parameters/enable_virt_at_load

überprüfen. Falls das Ergebnis "Y" ist, wird zwar "$ virtualbox" ausgeführt, aber kein OS gestartet, weil kvm
die für Virtualbox notwendige Virtualisierung blockiert. Die vorläufige Lösung bis zur Beseitigung des Bugs:

$ sudo mv /etc/modprobe.d/virtualbox-dkms.conf/virtualbox-dkms.modprobe.conf /etc/modprobe.d
$ sudo rmdir /etc/modprobe.d/virtualbox-dkms.conf

HTH

PS.: So wie der Treiber kvm.ko für qemu die Virtualisierung veranlasst, ist der Treiber vboxdrv.ko für virtualbox
       zuständig, aber nur einer von ihnen kann zu jedem Zeitpunkt als Hypervisor aktiv sein.

harley-peter

Ein "cat /sys/module/kvm/parameters/enable_virt_at_load" ergibt bei mir ein "N" und es funktioniert auch das OS (Windows 10) anstandslos. Also werde ich vorerst mal nichts unternehmen.  :)

Teriarch

Das ist interessant: Selbst wenn "virtualbox-dkms.modprobe.conf"
im Verzeichnis /etc/modprobe.d/virtualbox-dkms.conf vorhaden ist,
sie aber aus besagten Gründen beim Laden durch modprobe
keine Berücksichtigung findet, dann wird kvm.ko mit dem Parameter
enable_virt_at_load=Y geladen. Du findest aber "N".
Und die Frage ist: Warum?

Kannst Du vielleicht zur Klärung nachsehen, ob irgendeine andere
Konfigurationsdatei in /etc/modprobe.d dafür verantwortlich ist?
Rein aus Interesse...

der_bud

#4
Vor einiger Zeit ging hier hinsichtlich "kvm gleich beim starten aktiv. stört VBox" was durchs Forum (ich find es grad nicht). Da wurde als Workaround ein Bootparameter genannt, den sicherlich einige Leute gesetzt haben, ich zum Beispiel: "kvm.enable_virt_at_load=0" auf der Kernelzeile. Vielleicht hat harley-peter den auch in der grub.cfg, ein 'cat /proc/cmdline' gibt Aufschluss. ;)

---
Edit - doch gefunden:
=> https://forum.siduction.org/index.php?topic=9623.msg76604#msg76604
=> https://forum.siduction.org/index.php?topic=9598.msg76345#msg76345
=> https://forum.siduction.org/index.php?topic=9530.msg76168#msg76168
Du lachst? Wieso lachst du? Das ist doch oft so, Leute lachen erst und dann sind sie tot.

harley-peter

@Teriarch:
Bei mir ist das gleich mehrere Male eingetragen:
grep -i -r enable_virt /etc
/etc/default/grub.ucf-dist:GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.show_status=1 kvm.enable_virt_at_load=0"
/etc/default/grub:GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.show_status=1 kvm.enable_virt_at_load=0"
/etc/modprobe.d/virtualbox-dkms.conf/virtualbox-dkms.modprobe.conf:options kvm     enable_virt_at_load=0


Den Eintrag in /etc/default/grub hatte ich selbst vorgenommen auf Grund des Hinweises in https://forum.siduction.org/index.php?topic=9530.msg76168#msg76168

Teriarch

O.k. Damit hat der_bud mit seiner Vermutung recht, und das ist auch der Grund, weswegen
der Parameter enable_virt_at_load auf "N" gesetzt ist. Bei der Installation eines neuen
Kernels wird durch /etc/kernel/postinst.d/initramfs-tools der Prozess update-initramfs auf-
gerufen, der seinerseits die zugehorige initrd baut. Dabei wird durch modprobe zunächst
überprüft, ob die dazu notwendigen Module auch geladen werden können, und aufgrund
der fehlerhaften Anwesenheit  des Unterverzeichnisses  /etc/modprobe.d/virtualbox-dkms.conf
führt das schließlich zur Fehlermeldung.

Diese hat zwar keine weiteren Konsequenzen, aber durch Entfernen des Unterverzeichnisses
würde sie verschwinden. Eine korrigierte Version von virtualbox-dkms wird das Problem in
naher Zukunft ohnehin beseitigen.