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 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
Disable vnc support via:
VNC_ENABLE=no ./qemu.SlackBuild
Audio drivers support defaults to "pa,alsa,oss,sdl" and can be adusted
by running the build script like this:
AUDIODRIVERS="pa,alsa,oss" ./qemu.SlackBuild
We patch the installed udev rules to require membership in "users"
group instead of a custom "kvm" group to use /dev/kvm. If you prefer
something different, then run the build script like this:
KVMGROUP=group ./qemu.SlackBuild
To have the qemu-bridge-helper installed setuid root, allowing regular
users to use extended networking capabilities, do this:
BRIDGE_HELPER_SETUID=yes ./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.
libiscsi, libcacard, spice, usbredir, virglrenderer,
device-tree-compiler, libnfs, snappy, glusterfs and vde2 are optional
dependencies.
NOTE:
To compile with virglrenderer, you will need to upgrade to
mesa-12.0.0 or higher.
Sphinx is optional but required in order for any of the documentation to be
built.
libseccomp (to use libvirt) and libiscsi (to access iSCSI targets
directly) are optional dependencies, and will be picked up, if
present, during the compilation.
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.
SDL 1.2 support is deprecated, SDL 2.0 should be used instead.
Python 3.x can be used to build QEMU.