RDP Black Screen

Hi all, I know this has been asked before and I’ve tried loads of different “solutions” but I’m still experiencing an issue.

So I’ve got dietpi 6.30 installed on a Pi3b+ and it’s usually managed via SSH however for some reason I can’t get RDP to work. I know VNC has been mentioned but I manage multiple machines and use RDP for all of them so I’d like to do the same with my Pi.

From dietpi-software I installed XRDP which subsequently installs LXDE and TigerVNC as part of the process.
When I try to connect to the Pi using the official RDP client for Mac it opens with a black screen and if I leave it for a few minutes the attached message is displayed.

Does anyone know how to fix this?
Screenshot 2020-06-03 at 15.35.58.png

Hi,

many thanks for your report. What did you select on the login screen for session? Do you use Xvnc? Looks like you are using Xorg.

Hi Joulinar,

Thanks for getting back to me.

So you know all the steps… I initiate the RDP connection and I instantly hit an all black screen, then after a few mins I get the aforementioned message in the screenshot. If I click OK on the message it takes me to the XRDP login page where I can select different session options.

If I select the default “Xorg” and input my login credentials I just get a blank teal colour and after a few minutes I get the same message screenshot in the OP.

My other session options are;

  • Xvnc
  • vnc-any
  • neutrinordp-any

If I select Xvnc I get message attached.

In dietpi-config > AutoStart Options it’s current set to number 2 (Desktops - automatic login), does this need to adjusted to anything else? Before tinkering with RDP it was set to 0 (Local Terminal - Manual Login) as I only accessed via SSH.
Screenshot 2020-06-03 at 17.37.44.png

Autostart option can be set to 0 : Manual login (default) . No need to have it set to something else. Even on my test it was not switched and still set to 0. Furthermore VNC is running on a different port than xrdp expects. Let’s check

cat /boot/dietpi.txt | grep SOFTWARE_VNCSERVER_DISPLAY_INDEX
cat /etc/xrdp/sesman.ini | grep X11DisplayOffset=

Thanks for confirming, I’ve set the auto start option back to 0.

As for the other checks.

SOFTWARE_VNCSERVER_DISPLAY_INDEX=1
X11DisplayOffset=10

Anything else I can check?

ok let’s try to pin xrdp to use correct vnc port

nano /etc/xrdp/xrdp.ini

down, close to the bottom you will find [Xvnc] section. change port=-1 to port=5901. Once done safe the file and restart xrdp

systemctl restart xrdp.service

Hi Joulinar, I’ve completed these steps however I’m still experiencing the same symptoms. :frowning:

are you able to get the selection menu where you can choose xvnc?

Apologies, I’d not removed the “-” from the port number so it stated “=-5901”. I’ve since rectified this and I was able to see the desktop using the Xvnc option from the Xrdp login page.

I still have the black screen issue after the initial connection and I seemingly have to wait for the default connection method to time out (which is about 5 minutes) before I can see the Xrdp login page.

Please can you advise how to adjust the default connection method so I don’t have the black screen issue, and out of curiosity why does the Xorg option not work?

Edit,

After running through the recreation steps once more, I now cannot access via Xvnc when I could only a few minutes ago. I’ve changed no settings in that time and the password is 100% correct. See screenshot.

Your time is appreciated.

Thanks.

Hi,

ok let’s try to sort the topics

  1. You need to use Xvnc because you are trying to connect to a VNC server (TigerVNC) :wink:
  2. You are not able to reconnect because you are hit by a Debian Bug
  3. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=932499
  4. https://github.com/TigerVNC/tigervnc/issues/800
  5. As far as I have seen some bugfix was created 2 days ago. But I don’t know how log it will take before reaching the Debian software package
  6. However there is a workaround described on the Debian Bug tracker
nano /usr/local/bin/vncserver

Adjust following line by adding LD_PRELOAD=/lib/arm-linux-gnueabihf/libgcc_s.so.1

$BINARY_FP :${DISPLAY:-1} -geometry ${WIDTH:-1280}'x'${HEIGHT:-720} -depth ${DEPTH:-16} || exit 1

like this

LD_PRELOAD=/lib/arm-linux-gnueabihf/libgcc_s.so.1 $BINARY_FP :${DISPLAY:-1} -geometry ${WIDTH:-1280}'x'${HEIGHT:-720} -depth ${DEPTH:-16} || exit 1

save the file and restart the VNC server

systemctl restart vncserver.service
  1. currently I don’t know why you a running into the initial 5 minutes timeout. For me it looks like that your xrdp is trying to connect right from the beginning to a Xorg session. But usually it should display the selection screen first. :thinking: Even on my test I was not able to replicate this behaviour.

Thanks for the workaround and your time helping.

The black screen is obviously frustrating so do you think it’s worth me flashing a clean dietpi img to a spare micro sd card and starting from scratch? If you can’t replicate the 5 min black screen I obviously have an incorrect setting somewhere and it could be difficult to locate.

With regards to the other machines I manage, they run Lubuntu with Xrdp installed and when I connect to them from MS RD client it simply logs me in with the stored credentials and displays the desktop. How come I can’t replicate this with dietpi?

Thanks.

ok now I can imagine what happen with the 5 Minutes. You already enter login information into the Win RDP Client? Correct? Because I did not do that. I just open RDP Client and enter the IP Address. User credentials I just specify once xrdp was started. Can you remove login information from RDP client and try again pls.

Ahhhhh, yes it displays the xrdp login page straight away and I’m able to log in. I was under the impression that RD credentials were mandatory. Thanks

As for my other question, how is it I can’t have the credentials stored in the RD client and it auto login like I do with the Lununtu machines? Is there anything I can change to achieve this?

-Dan

yep I found a way around. It looks like xrdp is using the first option Xorg if you enter credentials right from the beginning. Therefore you would need to bring Xvnc in top if the list.

nano /etc/xrdp/xrdp.ini

hash # all entries for [Xorg] like this (near same location where you changed the port.

#[Xorg]
#name=Xorg
#lib=libxup.so
#username=ask
#password=ask
#ip=127.0.0.1
#port=-1
#code=20

save the file and restart xrdp service

systemctl restart xrdp.service

now you should be able to login directly using credentials stored on RDP client.

That’s it, you’ve cracked it.

Thanks for helping me out.