Hi,
I realise that muvirt is an option, but I’m currently running OpenWrt 22.03.5+traverse, 852551817. I’d like to try to run HomeAssistant as a VM as the Ten64 has plenty of RAM free.
What would be the best way to run an aarch64 VM with the ability to passthrough one of the USB devices? (a Zigbee radio)
The Traverse OpenWrt 22.03 doesn’t have KVM/virtualization enabled.
However, in the new upstreamed OpenWrt (armsr) I have a pending commit to enable KVM, and once that is in the upstream OpenWrt, I will submit the rest of the stuff that goes with it (e.g vhost-user, vfio and qemu host). Hopefully these will all make it into the upcoming 23.05 stable release.
Once that is done, you will be able to run qemu-system-aarch64 on an OpenWrt image (ours or OpenWrt.org) as normal. Theoretically, you will be able to install the muvirt core package (to run VMs with an OpenWrt init script and UCI configuration) onto normal OpenWrt as well.
Update: The 23.05-rc4 release has all the bits needed for QEMU/KVM to work! Including extras like vhost-net and vfio-pci. As has the main branch for a few weeks now…
If the guest VM is EFI based, you will need a EDK or U-Boot binary for the QEMU virt machine. A workable u-boot binary can be found in the armsr/armv8/u-boot-qemu_armv8 folder on the OpenWrt archive server, or an EDK from somewhere like Unofficial EDK2 nightly build | EDK2 Nightly Build (unlike x86, there is no qemu-firmware-* package for arm64 right now)