Index: /trunk/src/VBox/Additions/x11/VBoxClient/display-drm.cpp
===================================================================
--- /trunk/src/VBox/Additions/x11/VBoxClient/display-drm.cpp	(revision 84583)
+++ /trunk/src/VBox/Additions/x11/VBoxClient/display-drm.cpp	(revision 84584)
@@ -46,5 +46,7 @@
 #include <iprt/err.h>
 #include <iprt/string.h>
-
+#include <iprt/initterm.h>
+#include <iprt/message.h>
+#include <unistd.h>
 #include <stdio.h>
 
@@ -160,4 +162,10 @@
                          unsigned cHeads)
 {
+    uid_t guid = getuid();
+    if (setuid(0) == -1)
+    {
+        perror("setuid failed during drm ioctl.");
+    }
+
     int rc;
     struct DRMVMWUPDATELAYOUT ioctlLayout;
@@ -171,11 +179,25 @@
     if (RT_FAILURE(rc) && rc != VERR_INVALID_PARAMETER)
         VBClLogFatalError("Failure updating layout, rc=%Rrc\n", rc);
+    setuid(guid);
 }
 
-int main()
-{
+int main(int argc, char *argv[])
+{
+    uid_t guid = getuid();
+    if (setuid(0) == -1)
+    {
+        perror("setuid failed during init.");
+    }
+
+    int rc = RTR3InitExe(argc, &argv, 0);
+    if (RT_FAILURE(rc))
+        return RTMsgInitFailure(rc);
+    rc = VbglR3InitUser();
+    if (RT_FAILURE(rc))
+        VBClLogFatalError("VbglR3InitUser failed: %Rrc", rc);
+
     struct DRMCONTEXT drmContext = { NIL_RTFILE };
     static struct VMMDevDisplayDef aMonitors[VMW_MAX_HEADS];
-    int rc;
+
     unsigned cEnabledMonitors;
     /* Do not acknowledge the first event we query for to pick up old events,
@@ -201,4 +223,5 @@
         return VERR_INVALID_HANDLE;
     }
+    setuid(guid);
     for (;;)
     {
Index: /trunk/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp
===================================================================
--- /trunk/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp	(revision 84583)
+++ /trunk/src/VBox/Additions/x11/VBoxClient/display-svga-x11.cpp	(revision 84584)
@@ -685,5 +685,5 @@
 static bool init()
 {
-    if (isXwayland())
+    if (1 || isXwayland())
     {
         VBClLogInfo("The parent session seems to be running on Wayland. Starting DRM client\n");
