Thursday 11 July 2013

Headless GDM - Stop GDM From Trying to Start an XServer

So, you may have worked out that in order to load up X Clients, you need an X Server. startx is commonly used to start the X Server, however, most times you'll be using a Display Manager (xdm, gdm etc.).

Now let's say that you have a BeagleBone; which if no cape (LCD/DVI) is detected, it doesn't load up the /dev/fb0 device. I guess to save memory. Without that, the X Server fails to start;
(EE) open /dev/fb0: No such file or directory
(EE) No devices detected.
That's fine, I didn't like you anyway.

I made a new friend with Xvfb, and with x11vnc I can happily have X Clients, including GNOME and Firefox load themselves there.

So - what if I want to log in via VNC, and see the GDM graphical login screen? You'll see lots of articles about using the XDMCP (display manager control protocol) which allows the VNC server to pass requests to GDM on UDP 177; but this is related to terminal services. By that I mean, GDM needs to be happily running already at the local console, before it will start dishing out remote requests.

Since, I'm guessing version 2.30, GDM appears to have culled the ability to STOP GDM from trying to start the X Server. That means, the --no-console doesn't work, and neither does trying to mess around with the /etc/gdm/custom.conf file under the mysteriously vanished [servers] heading. So don't try adding '0=inactive' to that either.

Short answer is then; with GDM 2.32.1, you cannot get it to start up without having it try and start an X Server. Even though you have your new Xvfb friend available.

1 comment:

  1. I eventually found a solution

    In /etc/gdm/custom.conf you need to set the ShowLocalGreeter to false, so:

    [xdmcp]
    Enable=true
    Port=177
    ShowLocalGreeter=false

    of course there is no mention of this option in the documentation.

    ReplyDelete