assuming the host is up and running already
grab the latest release ISO image
mkdir -p /data/ISO-IMAGES/freebsd130/
cd /data/ISO-IMAGES/freebsd130/
mirror=...
wget $mirror/releases/ISO-IMAGES/13.0/FreeBSD-13.0-RELEASE-amd64-disc1.iso.xz
unxz FreeBSD-13.0-RELEASE-amd64-disc1.iso.xz
ln -sf FreeBSD-13.0-RELEASE-amd64-disc1.iso disc1.iso
mkdir -p /data/guests/freebsd/
cd /data/guests/freebsd/
virt-install \
--name freebsd \
--vcpus 3 \
--ram 7168 \
--disk path=/data/guests/freebsd/freebsd.qcow2,size=26,bus=virtio \
--cdrom /data/ISO-IMAGES/freebsd130/disc1.iso \
--network bridge=virbr0,model=virtio \
--os-type generic \
--os-variant generic \
--graphics vnc,port=5900 \
--console pty,target_type=serial \
--autoconsole
on the VNC console, press some key to get to the OK prompt
set console=comconsole
virsh console freebsd
autoboot
virsh destroy freebsd virsh undefine freebsd rm -rf /data/guests/freebsd/
https://www.cyberciti.biz/faq/linux-kvm-redirecting-freebsd-virtual-machines-console-to-aserialport/