xRDP+TigerVNC = VNC connection error on ARMv6+buster

I have decided to migrate my wheezy (!) build to the latest and greatest dietpi version (buster). I have spent my whole weekend on getting xrdp+vnc to work. This is because xorg module (vnc less) is not working (#3022 - no mouse and keyboard even if you install full xorg).

What I did to get it work:

  1. clean install of buster on SD card and upgrade to the lastest build (6.26.3) on my Raspberry Pi 1B (I know it is old but enough for my needs :slight_smile:. Reboot.
  2. Installed tigerVNC, reboot, checked I can connect with vncviewer on port 5901
  3. Installed xRDP, reboot
  4. Connect from Windows 10 machine with mstsc.exe: module Xvnc, user=root, pwd=dietpi. The result is:

“VNC error - problem connecting, some problem”

Checked all the logs it seems the XVNC server is there but not able to connect:

xrdp.log:
[20191117-21:47:34] [DEBUG] xrdp_wm_log_msg: VNC tcp connected
[20191117-21:47:34] [DEBUG] xrdp_wm_log_msg: VNC security level is 2 (1 = none, 2 = standard)
[20191117-21:47:34] [DEBUG] VNC error before sending share flag
[20191117-21:47:34] [DEBUG] VNC error before receiving server init
[20191117-21:47:34] [DEBUG] VNC error before receiving pixel format
[20191117-21:47:34] [DEBUG] VNC error before receiving name length
[20191117-21:47:34] [DEBUG] VNC error before receiving name
[20191117-21:47:34] [DEBUG] xrdp_wm_log_msg: VNC error - problem connecting

xrdp-sesman.log:
[20191117-21:47:32] [INFO ] starting Xvnc session…
[20191117-21:47:32] [DEBUG] Closed socket 9 (AF_INET6 :: port 5910)
[20191117-21:47:32] [DEBUG] Closed socket 9 (AF_INET6 :: port 6010)
[20191117-21:47:32] [DEBUG] Closed socket 9 (AF_INET6 :: port 6210)
[20191117-21:47:32] [DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
[20191117-21:47:32] [INFO ] calling auth_start_session from pid 954
[20191117-21:47:32] [DEBUG] Closed socket 7 (AF_INET6 ::1 port 3350)
[20191117-21:47:32] [DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
[20191117-21:47:32] [INFO ] Xvnc :10 -auth .Xauthority -geometry 800x600 -depth 32 -rfbauth /root/.vnc/sesman_passwd-root@DietPi:10 -bs -nolisten tcp -localhost -dpi 96
[20191117-21:47:33] [CORE ] waiting for window manager (pid 957) to exit
[20191117-21:47:35] [CORE ] window manager (pid 957) did exit, cleaning up session

.xsession-errors:
Xsession: X session started for root at Sun 17 Nov 21:47:33 GMT 2019
xrdb: Resource temporarily unavailable
xrdb: Can’t open display ‘:10.0’
xrdb: Connection refused
xrdb: Can’t open display ‘:10.0’
xhost: unable to open display “:10.0”
gpgconf: WARNING: standard input reopened
gpgconf: WARNING: standard input reopened
dbus-update-activation-environment: error: unable to connect to D-Bus: Failed to connect to socket /tmp/dbus-aPASqQd1OU: Connection refused
** Message: 21:47:35.257: main.vala:101: Session is LXDE
** Message: 21:47:35.258: main.vala:102: DE is LXDE
(lxsession:957): Gtk-WARNING **: 21:47:35.290: cannot open display: :10.0

Can someone point me to the right direction?

Fix:

Add LD_PRELOAD=/lib/arm-linux-gnueabihf/libgcc_s.so.1 to the [SessionVariables] section of /etc/xrdp/sesman.ini. Reboot or restart xrdp service.

Why?

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=932499

Same symthomps, totally different solution:

In /etc/xrdp.ini, enable (uncomment) xserverbpp line in [xvnc] section and change value (24) to 16 (or whatever version works for you). For me, Xvnc was crashing with a color depth of 15. This tigervnc is really a p… of s…