How to use Virtio GPU on FreeBSD as guest OS.

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

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

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 :


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 :

nano /etc/X11/xorg.conf :

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

Xorg.1.log.virtio :

None of them worked. Can you give some suggestions ?

FULL thread :