The libvirt project:
- is a toolkit to manage virtualization platforms
- is accessible from C, Python, Perl, Go and more
- is licensed under open source licenses
- supports KVM, Hypervisor.framework, QEMU, Xen, Virtuozzo, VMWare ESX, LXC, BHyve and more
- targets Linux, FreeBSD, Windows and macOS
- is used by many applications

I am running some legacy OSes (Windows 10, …) inside libvirt/KVM virtual machines and since I got my new 4K displays (hello Home Office), I was annoyed that I could not full-screen them on the large displays.
So finally I took some time to investigate and quickly (to my surprise) found the solution. As if we were back in the 1990ties, I did not provide the virtual machine with enough video RAM to properly go to the higher resolutions.
About virt-manager’s supporting tools
virt-install is a command line tool which provides an easy way to provision operating systems into virtual machines.
virt-viewer is a lightweight UI interface for interacting with the graphical display of virtualized guest OS. It can display VNC or SPICE, and uses libvirt to lookup the graphical connection details.
virt-clone is a command line tool for cloning existing inactive guests. It copies the disk images, and defines a config with new name, UUID and MAC address pointing to the copied disks.
virt-xml is a command line tool for easily editing libvirt domain XML using virt-install’s command line options.
virt-convert is a command line tool for converting OVF and VMX VM configurations to run with libvirt.
virt-bootstrap is a command tool providing an easy way to setup the root file system for libvirt-based containers.
The SPICE protocol supports guests with more than one monitor. Windows guests and Linux guests behave somewhat differently, so they need to be configured in slightly different ways.
Documentation to set up a simple macOS VM in QEMU, accelerated by KVM.
By @FoxletFox, and the help of many others. Find this useful? You can donate on Coinbase or Paypal!.
New to macOS and KVM? Check the FAQs.
Just a note to myself since I searched the internet for a long time to make this work…
I needed to test a really trivial change to the scsi tape driver code, but didn’t want to reboot an actual machine that has a tape drive. So I thought, maybe QEMU can pass-through an arbitrary device?
General note concerning the use of guest agent interfaces:
"unsupported" is a higher-level error than the errors that individual commands might document. The caller should always be prepared to receive QERR_UNSUPPORTED, even if the given command doesn’t specify it, or doesn’t document any failure mode at all.
The short answer for this one is: Unless you are running an operating system museum just use -device qemu-xhci.
Any recent operating system should support xhci out-of-the box. The only OS without xhci support which is still in widespread use is Windows 7.
In case your qemu version doesn't support qemu-xhci you can use nec-usb-xhci instead.
There were a couple of QEMU / virtualization related talks at the DevConf 2017 conference that took place at the end of January already, but so far we missed to gather the links to the recordings of these talks. So here is now the list:
Over the last two years secure boot support for virtual machines was added to qemu, kvm (linux kernel) and ovmf (edk2/tianocore). This talk covers the implementation details and the issues we had to deal with along the way.
rkt (pronounced "rock-it") is a CLI for running app containers on Linux. rkt is designed to be composable, secure, and fast.
Some of rkt's key features and goals include:
- First-class integration with init systems (systemd, upstart) and cluster orchestration tools (fleet, Kubernetes)
- Compatibility with other container software (e.g. rkt can run Docker images)
- Modular and extensible architecture (network configuration plugins, swappable execution engines based on systemd or QEMU/KVM)