After starting this thread ( Remote Desktop Server: Best choice from official repo or AUR on Raspberry Pi 4 (4 GB RAM)? ), I installed nomachine
from the AUR on @0n0w1c 's recommendation, and had no issues with it while I also had a monitor plugged into the Pi.
I’m presently trying to get nomachine
to work with no display plugged in. It’s supposed to run in headless mode without any issue, but it appears to be unable to start Xorg
, and therefore cannot start LightDM
.
TL;DR: nomachine
does not start its own Xorg
server as its documentation indicates it is supposed to, thus LightDM never starts, thus XFCE cannot start, so there’s no desktop to connect to.
TL;DR 2: I know I could install the xf86 dummy driver and trick the machine into thinking there’s a physical device connected to get it to start Xorg, but the nomachine
documentation indicates that should not be necessary, so I’d love to try to get it working as the developers apparently intended.
Put another way:
- The modesetting driver doesn’t load, as the system does not find any physical screens to connect to.
- Xorg does not see any displays to connect to, so it doesn’t start.
I’m using this tutorial here:
https://wiki.archlinux.org/index.php/NoMachine#Headless_server
In particular, these two bits:
Headless server
If no X server is running on the server, NoMachine starts its own X server (DISPLAY :0) and tries to run a /etc/X11/Xsession script to get the user into the default DE. This fails in Arch Linux (you get only a black screen) because an Xsession script does not exist.To resolve this issue, edit the key DefaultDesktopCommand in /usr/NX/etc/node.cfg. E.g. for MATE desktop environment:
DefaultDesktopCommand “/usr/bin/mate-session”
Separate NoMachine X session in parallel with existing X session
In default setup, the Free edition of NoMachine connects the client directly to an existing X session on the remote computer, even if it runs the X Display Manager only. This may be unwanted, because no other user may use the target computer locally at the same moment and because any person with physical access to the target computer can see on the physical display, what the remotely connected user is doing.However, it is possible to setup NoMachine to check only for a particular DISPLAY, e.g. DISPLAY :10 and it will ignore the existing X session on DISPLAY :0 (standard setup in Arch Linux) and start a new virtual session for the remotely connecting user.
To do so, edit the key PhysicalDisplays in /usr/NX/etc/node.cfg:
PhysicalDisplays :10
I followed these directions, except I used the following command to try to start XFCE.
DefaultDesktopCommand “dbus-launch --exit-with-session /usr/bin/startxfce4 &”
AvailableSessionTypes unix-remote,unix-console,unix-default,unix-application,physical-desktop,shadow,unix-xsession-default
This doesn’t work. Xorg is failing to start, so it doesn’t surprise me it can’t start XFCE. If Xorg can’t start, LightDM doesn’t start, and so there’s nothing for XFCE to sit on.
Any ideas?