This patch adds initial user-virtualization support for the DRM (type 'd') IOCTLs in linux. With it and a corresponding architecture chroot (say aarch64), I am able to successfully run a few 2D and 3D applications with native graphics acceleration. Some notes/caveats are:
1. It will only work with open drivers as their IOCTLs are documented. 2. i965+ is only supported. That is any haswell, ivybridge, etc. GPU will work. 3. X doesn't start yet, though this patch eliminates all the visible unsupported DRM IOCTL calls as observed by setting QEMU_STRACE=1. 4. Intel open drivers components except for Beignet are architecture independent AFAICT and compile cleanly in foreign architecture environments. 5. The DRM table provided is current as of linux-3.17-rc2, however, compiling it with older kernel headers might require conditional guards that this patch doesn't provide yet. 6. syscalls.c now includes <drm/*.h> files, which should be available in any valid linux-user build environment. Using a Debian aarch64 chroot on ubuntu amd64, I have successfully run nexuiz and compiled and run qemu-system-i386 with SDL emulation (+ patch for forcing OpenGL). Aaditya Chandrasekhar Azad (1): Add support for DRM IOCTLs to QEMU user mode virtualization. linux-user/ioctls.h | 137 ++++++++++ linux-user/syscall.c | 2 + linux-user/syscall_defs.h | 139 ++++++++++ linux-user/syscall_types.h | 651 +++++++++++++++++++++++++++++++++++++++++++++ thunk.c | 2 +- 5 files changed, 930 insertions(+), 1 deletion(-) -- 2.1.0.60.g85f0837