QEMU is a generic and open source machine emulator and virtualizer. When used as a machine emulator, QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performances. qemu (with kvm enabled) achieves near native performances by leveraging the kvm-kmod modules and executing the guest code directly on the host CPU. Slackware provides pre-built 32/64 bit x86 kvm-kmod modules or you can build different versions with the kvm-kmod package. By default, this script builds only the x86 and arm emulation targets for qemu; if you prefer to build all supported targets, do this: TARGETS=all ./qemu.SlackBuild Add optional vnc support via: ENABLE_VNC=yes ./qemu.SlackBuild We patch the installed udev rules to require membership in "users" group instead of a custom "kvm" group to uses /dev/kvm. If you prefer something different, then run the build script like this: KVMGROUP=group ./qemu.SlackBuild Don't forget to load the 'kvm-intel' or 'kvm-amd' module (depending on your processor) prior to launching qemu-system-ARCH with kvm enabled. For older/unmaintained qemu frontends, this build also creates a symlink to qemu-system-ARCH at /usr/bin/qemu-kvm. spice, usbredir, and device-tree-compiler are optional dependencies. If you wish to emulate ARM, you will want device-tree-compiler. NOTES: This version breaks some backward compatibility with earlier versions. Consult the official changelogs for details. To enable USB passthrough, you will need libusb >= 1.0.13