Tilbage til blog

CachyOS-kernen, virtuelle maskiner og 3D acceleration

·Anders da Silva Rytter Hansen

Sådan får du 3D acceleration til at virke i virtuelle maskiner på AlmaLinux 10 med CachyOS-kernen ved hjælp af QEMU og Distrobox.

CachyOS-kernen, virtuelle maskiner og 3D acceleration

CachyOS-kernen, virtuelle maskiner og 3D acceleration

Jeg har haft nogle udfordringer med at få 3D acceleration til at virke på AlmaLinux 10 med CachyOS-kernen. Det virkede fint med standard AlmaLinux-kernen, men ikke med CachyOS-kernen.

Jeg testede her i går med ELRepos mainline kerne, og det virkede heller ikke. Jeg ved ikke, hvad det er, at AlmaLinux-teamet gør for at få det til at virke fejlfrit med deres kerne, for jeg har prøvet at sammenligne config-parametrene for alle kernerne og dem, som jeg syntes, virkede relevante havde de samme værdier i alle kernerne.

Som CachyOS-kerne maintainer var det et ret frustrerende scenarie, fordi jeg gerne vil bruge mit eget produkt ("spise min egen hundemad om man så må sige"). Det fik mig til at gå tilbage til AlmaLinux-kernen, men min nye laptop (en ASUS TUF Gaming F16 FX608JHR) er for ny til at bruge denne 6.12-kerne - der var forskellige ting, der ikke virkede ordentligt: f.eks. når jeg tænder computeren igen, efter den har været i dvale, så var mit trådløse netkort helt slukket og kunne ikke engang ses i lspci-output.

Så jeg var tvunget til at få det til at virke på en anden og nyere kerne.

Heldigvis fandt jeg løsningen. Problemet er, at det ikke virker i Gnome Boxes og Virt-Manager, men det virker i QEMU direkte.

Jeg vil sige tak til @Head_on_a_Stick på Arch Linux' forum for at komme med en løsning, der virkede.

Næste problem: QEMU på AlmaLinux

Eftersom AlmaLinux ikke understøtter qemu-system-x86_64-kommandoen direkte, fandt jeg ud af, at jeg kunne få denne kommando ind på mit system via en CachyOS Distrobox-container.

Start med at installere Distrobox:

sudo dnf install distrobox

Så kan du oprette en CachyOS-container:

distrobox create --image cachyos/cachyos-v3 --name cachyos

Tilføj --nvidia til ovenstående kommando, hvis du har et Nvidia-kort og vil have adgang til det fra containeren.

Du kan så køre QEMU i denne container:

distrobox enter cachyos

QEMU-pakkerne kan sikkert installeres individuelt, men jeg installerede Gnome Boxes, fordi det er et nemt interface til at oprette og installere den virtuelle maskine og så derefter åbne den manuelt i QEMU.

sudo pacman -Syu gnome-boxes

Du kan nu køre Gnome Boxes ved at køre kommandoen "gnome-boxes" og oprette og installere en virtuel maskine uden 3D acceleration aktiveret (som er standardindstillingen).

Når du har installeret maskinen, kan du åbne den i QEMU med følgende kommando:

cd ~/.local/share/gnome-boxes/images
qemu-system-x86_64 \
                                   -enable-kvm \
                                   -m 4G \
                                   -cpu host \
                                   -smp $(nproc) \
                                   -device virtio-vga-gl \
                                   -device intel-hda \
                                   -device hda-duplex \
                                   -display gtk,gl=on \
                                   -device virtio-net-pci,netdev=net0 \
                                   -netdev user,id=net0 \
                                   -drive file={filnavn på VM},format=qcow2,cache=none,if=virtio

Erstat {filnavn på VM} (inklusiv Tuborg-klammerne) med navnet på din VM-fil. Den virtuelle maskine er sat til at have 4GB RAM og alle kerner på din CPU. Du kan ændre dette ved at redigere -m og -smp parameterne.

Efter dette skulle din VM starte op. Hvis det er en Linux-VM, så kan du teste, om du har 3D acceleration i VM'en med kommandoerne:

glxinfo | grep "OpenGL renderer:"
vainfo

Hvis glxinfo siger virgl og vainfo ikke melder fejl, så virker 3D acceleration i din VM.

Her kan du se et screenshot fra min Fedora MATE VM:

Fedora MATE VM med 3D acceleration

#linux#cachyos#almalinux#qemu#virt-manager#3d-acceleration#virtual-machine#distrobox#gnome-boxes#guide