How to use Virtio GPU on FreeBSD as guest OS.

From: Mario Marietto <marietto2008_at_gmail.com>
Date: Sat, 27 Apr 2024 13:08:40 UTC
Hello.

I've virtualized FreeBSD 14 on Windows 11 with qemu using the Hyper-V as a
hypervisor.

The parameters that I've used to launch the vm are the following ones :


qemu-system-x86_64w.exe -accel whpx -machine q35 \
-cpu kvm64,hv_relaxed,hv_time,hv_synic -m 8G -vga virtio \
-display gtk,gl=on -audiodev dsound,id=snd0 -device ich9-intel-hda \
-device hda-duplex,audiodev=snd0 \
-hda "I:\Backup\FreeBSD\FreeBSD-140-zfs.img" \
-drive file=\\.\PhysicalDrive8 -rtc base=localtime \
-device usb-ehci,id=usb,bus=pcie.0,addr=0x3 -device usb-tablet \
-device usb-kbd -smbios type=2 -nodefaults \
-netdev tap,id=mynet0,ifname="OpenVPN-TAP-Windows",script=no,downscript=no \
-device e1000,netdev=mynet0,mac=52:55:00:d1:55:01 \
-device ich9-ahci,id=sata \
-bios "I:\OS\qemu\FreeBSD\OSX-KVM-master\OVMF_combined.fd"


as you can see as graphic adapter I've added :


-vga virtio -display gtk,gl=on

That's because I want to use the virtio GPU instead of the VMware SVGA,but
I'm not able to make it work. On FreeBSD 14.0 guest os I did :


# lspci
00:01.0 : VGA compatible controller : Red Hat Inc. Virtio 1.0 GPU (rev. 01)


and then,I've added on /boot/loader.conf the following kernel modules :


virtio_load="YES"
virtio_pci_load="YES"
virtio_blk_load="YES"
virtio_balloon_load="YES"


I tried to load the virtio kernel modules manually :


[root@marietto /home/marietto]==> kldload virtio kldload: can't load
virtio: module
already loaded or in kernel

[root@marietto /home/marietto]==> kldload virtio_pci kldload: can't
load virtio_pci:
module already loaded or in kernel

[root@marietto /home/marietto]==> kldload virtio_blk kldload: can't
load virtio_blk:
module already loaded or in kernel

[root@marietto /home/marietto]==> kldload virtio_balloon kldload: can't load
virtio_balloon: module already loaded or in kernel


At this point,I've tried to use two different xorg.conf files to see what
happened :


nano /etc/X11/xorg.conf :

Section "Device"
Identifier "Card0"
Driver "modesetting"
BusID "PCI:0:1:0"

Xorg.1.log.modesetting : https://pastebin.ubuntu.com/p/JYbks5yNnV/


nano /etc/X11/xorg.conf :

Section "Device"
Identifier "Card0"
Driver "virtio"
BusID "PCI:0:1:0"

Xorg.1.log.virtio : https://pastebin.ubuntu.com/p/tt9Pnd5Zz4/


None of them worked. Can you give some suggestions ?


FULL thread :

https://forums.freebsd.org/threads/how-to-virtualize-freebsd-14-release-as-a-vm-on-top-of-windows-11-using-qemu-hyperv.93158/#post-652770

Mario.