xRDP – Easy install xRDP on Ubuntu 16.04,18.04,19.10 & 20.04 (Script Version 1.2)

  The script hereafter is outdated and has been replaced by a newer version.  Please Check the Download page for latest version. 

Hello World, 

As announced recently, we have been working hard to update and release the new version of our famous xrdp installation script (i.e. xrdp-installer-1.2.sh).  This script replaces all previous versions and is mainly adding support for Ubuntu 20.04.   Some minor issues have been detected in the previous version (i.e. version 1.1) and the latest version is tackling and fixing these really minor bugs.

So, let’s go ! 

Overview

The xrdp-installer-1.2.sh script ease the installation and post-configuration actions of xRDP on top of Ubuntu Operating System.  This version is the latest iteration of the script which include support for Ubuntu 20.04 (recently released in April 2020).  Some minor issues have been fixed as well and have been included in this release.   Since its initial release, the script has reached a mature status and is becoming more and more stable. 

Script version & Supported Ubuntu Version

The script version will be set to 1.2. The xrdp-installer-1.2.sh script will support the following Ubuntu operating system version 

  • Ubuntu 16.04.x 
  • Ubuntu 18.04.x
  • Ubuntu 19.10 (End of Support in July 2020)
  • Ubuntu 20.04

Prerequisites and assumptions  

The following conditions should be met in order to have the best results while using the script

  • We assume that your machine is connected to internet while performing the installation.  This is needed as additional packages and software needs to be downloaded and installed on your Ubuntu machine
  • The script runs against a supported Operating system (Ubuntu 16.04.x, Ubuntu 18.04.x,Ubuntu 19.10, Ubuntu 20.04)
  • The Official Ubuntu distribution needs to be used (we do not support other Ubuntu flavors – so far !!) 
  • No additional Desktop interface is used ( xRDP session will be showing Ubuntu Gnome Desktop with the Dock menu or Unity if running Ubuntu 16.04)
  • Sound functionality is present on the computers if you sound feature is available as well

What’s new in this release ?

As mentioned, the script has not changed much and only a few minor bugs have been fixed which are listed hereafter

  • Adding support to Ubuntu 20.04
  • Removing support for Ubuntu 19.04 (end of support)
  • Stricter check for hwe package (thanks to Andrej Gantvorg)
  • Changed code in the custom login screen function in order to know where to copy the custom logo image
  • Fixing a bug in checking SSL group membership
  • Updating background color code for the custom xrdp login screen
  • Updating versions when using the checkinstall command and the build process
  • Updating code for Sound redirection (in order to have it working on Ubuntu 16.04.x )

A downloadable version of the script is available at the bottom of the post

How to Use the Script

The xrdp-installer-1.2 script will work in a similar way as the previous versions. First, you will need to download the latest version of the script (here). After extracting it from the zip file, we will need to set the execute permission on the script.  Then, you will need to choose between standard and custom installation.  Finally, you would need to decide if additional options would be enabled or not…   So, let’s see how this would be working…. 

Disclaimer

The script is provided AS IS.  Use it at your own risk !!! 

Step 1 – Set Execute Right on the script

Download the xrdp-installer-1.2.sh script to your system, extract content and mark it as executable . To do this, perform the following action in a terminal console

chmod +x  ~/Downloads/xrdp-installer-1.2.sh

Note : Adjust the path where the xrdp-Installer-1.2.sh script to reflect your environment

Step 2 – Run as normal user 

The script needs to be run as a normal user.  The script will start running and will prompt you for password when sudo actions are initiated.  If you run the script as root or using sudo command, the Download folder does not exist for the root user and the script fails to run as expected.   To overcome this situation, the script also check which user is executing the script. If the script is run under sudo or root accounts, a warning message will be displayed and the script will not execute

Step 3 – Switches and parameters 

The xrdp-installer-1.2.sh script can be executed as is (with no parameters or switches). This will perform a standard (and basic) installation of xRDP.  No sound or custom xrdp login script will be made available.  However, remote desktop, drive redirection and clipboard redirection would be available with this installation mode.  

The xrdp-installer-1.2.sh script accept also some additional parameters that will help customize the xrdp installation and enable additional features.  The script provides the following parameters 

--help or -h          => will display a basic help menu
--sound or -s         => will enable sound redirection 
--loginscreen or -l   => will customize the xRDP login screen 
--remove or -r        => will remove the xrdp package 
--custom or -c        => will perform a custom installation (i.e. compiled from sources)

Step 4 – Perform xRDP installation using the script 

The following sections will provide some examples and scenario on how you can use the script….. 

Standard Installation – No Parameter

As mentioned above, you can decide to use the default xrdp package available in the Ubuntu repository and perform a basic installation which will provide you remote desktop capability and will also customize the remote sesssion.  The script will ensure that the same look n’ feel will be maintained when the user logs on locally or remotely. 

To perform a standard installation, you execute the script with no parameters.  Open a Terminal console, browse to the location where the script has been downloaded and issue the following command 

 ./xrdp-installer-1.2.sh

When the xrdp installation package will start, you be requested to enter your password. Provide the password and proceed with the installation. Wait for completion of the script.  The machine will not reboot automatically when done so you can review the actions performed by the script….

Important Notes

If you are running the script on Ubuntu 16.04.x, the custom installation will always be performed even if you have not specified any parameters.  This is because Ubuntu 16.04.x ships with a really old xrdp package (version 0.6) and does not provides all needed features. The custom installation provide drive redirection,clipboard and access to Unity Desktop

Standard Installation with Parameters

The script can be used to perform a standard installation and still passes some parameters to get the most of the xRDP packages and their features.  For all the Ubuntu versions, we could use the following combination of parameters 

./xrdp-installer-1.2.sh -s      (this would enable the sound redirection) 
./xrdp-installer-1.2.sh -l      (this would customize the xrdp login screen -see here)

Obviously, you can combine the switches (any order) to have more features enabled  

./xrdp-installer-1.2.sh -s -l      (this would enable the sound redirection and customize the xrdp login screen)

Important Notes

The script can be run multiple times on the same machine.  If you have run initially the script with no parameters but you decide afterward to enable additional features, the script can be re-executed and the additional features will be enabled.  

Custom Installation – Default Installation 

Custom installation script is really flexible and help avoiding issues like we have encountered in Ubuntu 18.04.x (see here,here and here).  Custom installation means that the script will compile the xrdp package from the source binaries. The custom installation script always uses the latest xrdp package version available 

To perform a custom installation, you will need at minimum to pass one parameter.  The following command line shows you how to perform a custom installation  

./xrdp-installer-1.2.sh -c     (this would perform a custom installation but will not enabled adv features like sound redirection or custom login screen)

Important Notes

If you are running the script on Ubuntu 16.04.x, the -c switch will be ignored and a custom installation process will be performed. This is because Ubuntu 16.04.x ships with a really old xrdp package (version 0.6) and does not provides all needed features. The custom installation provide drive redirection,clipboard and access to Unity Desktop

Custom Installation – Additional Options  

If a user wants to enable additional features, you will pass some additional parameters as shown in the following examples 

./xrdp-installer-1.2.sh -c -s     (this would perform a custom install and enable sound redirection)
./xrdp-installer-1.2.sh -c -l     (this would perform a custom install and customize xrdp login screen)
./xrdp-installer-1.2.sh -c -l -s  (this would perform a custom install, enable sound and customize login screen)

Important Notes

The script can be run multiple times on the same machine.  If you have run initially the script with no parameters but you decide afterward to enable additional features, the script can be re-executed and the additional features will be enabled.  

Remove Installation option

This version of the script also ship with the option to remove xRDP package.  The removal option should be only used  if you have uses this version of this script to perform the installation.  To remove the xrdp package, you would simply execute the following command  

./xrdp-installer-1.2.sh -r     (to remove the xrdp packages)

Step 5 – Test your configuration 

After the script has run and after the reboot/shutdown and start process, it’s time to test and see if you can indeed perform a smooth remote connection to your Ubuntu machine.  Remember that a user can either be logged on locally or logged on remotely on the machine when working with xRDP solution.  If the user, performing the remote connection, is logged into the system locally the remote connection will start but will be terminated immediately.  This is the way it works nowadays. 

So, ensure that the user performing the test is not locally logged on, start your favorite remote desktop client and perform your connection.  Based on your options, you will be presented either with the green xrdp login screen or with the custom login screen (purple background). Simply enter your credentials and start testing your installation.  If everything is ok, you will see a similar Desktop interface where Gnome Desktop is used and the Dock is visible. 

Known issues and limitations 

Known Issues 

Sound redirection Issue

If the Sound redirection option has been selected, rebooting the Ubuntu system is not enough and the sound redirection might not work.  if the sound redirection option has been selected, you will have to shutdown your Ubuntu machine and then start it again in order to ensure that the sound redirection feature would work as expected. 

Sound redirection is not working as expected on Ubuntu 19.10 and Ubuntu 20.04.  The modules are created and copied to the correct location. However, the xrdp sink modules are never loaded in the remote session or randomly loaded in the remote session.   To fix this, you simply need to execute the following command within your remote session and the sound will start working 

pulseaudio -k

For detailed information, see post below

xRDP – Sound not always working on Ubuntu 19.10 – Quick Fix

Drive Redirection  

To redirect your drives to your xrdp remote session, you have to ensure that the only option selected in the local resources tab are the Clipboard option and the drive option. Check the screenshot below and ensure that you have the same settings.

Click on picture for better resolution

Click on picture for better resolution

When these settings have been set accordingly, you should see the thin client folder populated with redirected drives coming from your Windows machine.

Limitations

One session per user limitation

Only one session is allowed per user.  This means that if a user is logged on locally on the Ubuntu machine, the user will not be able to perform a remote session (the xRDP connection will initiate but will end up immediately).  If a user is logged on remotely on the system, it will not be able to login locally (if the user tries to login locally, the login screen will loop and the login screen will be presented again to the user) 

Switch between standard and Custom install

This version of the script can be run multiple times on the same machine.  However, because of this new behavior, you cannot perform a standard installation and then decide to perform the custom installation.  Once you have selected your installation mode, you will have to stick to it.  This is kind of checked by the script.  

So, if you have performed a standard installation but afterwards you might want to use the custom installation option, the script will ignore the request.  If you want to move from standard install mode to custom mode (or vice versa), the correct process is 

  • remove xrdp (using the xrdp-installer-1.2.sh -r option) 
  • perform a new installation using your selected installation mode (standard or custom install mode) 

Download the Script 

The script can be download at this location  :    xrdp-installer-1.2.zip 

Note : All the xrdp scripts can be found at https://www.c-nergy.be/products.html

Final Notes

This is it for this post ! 

Please if you have time or want to help us in creating the best xrdp installer script, download the script and provide constructive feedback.  If you find a bug or an issue with the script, let us know as well so we can try to fix it.    We will probably post additional information about the script, Ubuntu 20.04 and xRDP in the coming weeks…

Stay tuned

Till next time 

See ya

39 thoughts on “xRDP – Easy install xRDP on Ubuntu 16.04,18.04,19.10 & 20.04 (Script Version 1.2)

  1. Hi – Many thanks for the script. Do you think this would work on lubuntu 20.04 running the LXQT desktop manager?

    Many thanks

  2. I’ve been using your script for years to get xrdp running smoothly on Ubuntu. It’s always worked very well, but I recently migrated from VirtualBox to Parallels (host is macOS). I’ve found that installing Parallels Tools breaks xrdp support in Ubuntu. Someone else mentioned this on a previous blog post (http://c-nergy.be/blog/?p=13933#comment-4220), but there was no resolution.

    Is there any way to examine what’s happening that’s causing the issue? I’m afraid the issue is beyond my technical capabilities, but I would be more than happy to send logs, do tests etc if that would help to identify the problem.

    Many thanks for any help you can provide!

  3. @Chris,

    The script is originally designed to run only on Ubuntu 20.04 and no other flavors…
    So, in theory, running the script AS IS might work or not… The script would need to be tweaked a little bit in order to run properly on Lubuntu 20.04 and LXQT
    We are planning to cover more distributions with the script but we would need a little bit time and select which flavor could be added

    If time permit, we could perform a quick test on Lubuntu 20.04 and possibly provide you feedback…..

    Hope this help
    Till next time

  4. @Jason,

    We are not working a lot with MacOs….We would need to have a look into this and we would need to setup a lab infra…..
    It should be working as we found a thread on xRDP Github repository (https://github.com/neutrinolabs/xrdp/issues/439)
    Have you tried to play with the color depth, disable audio…. -> is this changing something….

    which version of MacOs are you running ? We will first do some tests here and then we will come back to you….So we can try to test and validate together a possible working configuration…
    BTW, The problem does not seems to be xrdp per se but more a parallel issue..
    No guarantee of a working solution…

    Hope this help
    Till next time

  5. @Griffon,

    Thanks for the reply. Host OS is macOS 10.5.4 running Parallels 15.1.4.

    I’ve tried multiple settings when trying to connect over RDP (resolution, colour depth, disabling audio/clipboard/folder redirect, etc), and there is no change. When connecting, I get the login screen but then nothing. After a few minutes it gives a message saying ‘some problem’.

    It’s definitely an issue with Parallels Tools. If I uninstall the tools, RDP works again. Though this isn’t a solution since they are needed for host integration.

    Here is the xrdp-sesman.log:
    [20200514-16:27:43] [INFO ] A connection received from ::1 port 45140
    [20200514-16:27:43] [INFO ] ++ created session (access granted): username jhecker, ip ::ffff:192.168.1.20:58068 – socket: 12
    [20200514-16:27:43] [INFO ] starting Xorg session…
    [20200514-16:27:43] [DEBUG] Closed socket 9 (AF_INET6 :: port 5910)
    [20200514-16:27:43] [DEBUG] Closed socket 9 (AF_INET6 :: port 6010)
    [20200514-16:27:43] [DEBUG] Closed socket 9 (AF_INET6 :: port 6210)
    [20200514-16:27:43] [DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
    [20200514-16:27:43] [INFO ] calling auth_start_session from pid 13695
    [20200514-16:27:43] [DEBUG] Closed socket 7 (AF_INET6 ::1 port 3350)
    [20200514-16:27:43] [DEBUG] Closed socket 8 (AF_INET6 ::1 port 3350)
    [20200514-16:27:43] [INFO ] /usr/lib/xorg/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp -logfile .xorgxrdp.%s.log
    [20200514-16:27:53] [ERROR] X server for display 10 startup timeout
    [20200514-16:27:53] [CORE ] waiting for window manager (pid 13708) to exit
    [20200514-16:27:53] [ERROR] X server for display 10 startup timeout
    [20200514-16:27:53] [ERROR] another Xserver might already be active on display 10 – see log
    [20200514-16:27:53] [DEBUG] aborting connection…
    [20200514-16:27:53] [CORE ] window manager (pid 13708) did exit, cleaning up session
    [20200514-16:27:53] [INFO ] calling auth_stop_session and auth_end from pid 13695
    [20200514-16:27:53] [DEBUG] cleanup_sockets:
    [20200514-16:27:53] [DEBUG] cleanup_sockets: deleting /var/run/xrdp/sockdir/xrdp_chansrv_socket_10
    [20200514-16:27:53] [DEBUG] cleanup_sockets: deleting /var/run/xrdp/sockdir/xrdpapi_10
    [20200514-16:27:53] [DEBUG] cleanup_sockets: failed to delete /var/run/xrdp/sockdir/xrdpapi_10
    [20200514-16:27:53] [INFO ] ++ terminated session: username jhecker, display :10.0, session_pid 13695, ip ::ffff:192.168.1.20:58068 – socket: 12

    And here is the xrdp.log:
    [20200514-16:27:43] [INFO ] Socket 12: AF_INET6 connection received from ::ffff:192.168.1.20 port 58067
    [20200514-16:27:43] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:192.168.1.23 port 3389)
    [20200514-16:27:43] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
    [20200514-16:27:43] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
    [20200514-16:27:43] [ERROR] Cannot read certificate file /etc/xrdp/cert.pem: No such file or directory
    [20200514-16:27:43] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
    [20200514-16:27:43] [ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied
    [20200514-16:27:43] [DEBUG] TLSv1.2 enabled
    [20200514-16:27:43] [DEBUG] TLSv1.1 enabled
    [20200514-16:27:43] [DEBUG] TLSv1 enabled
    [20200514-16:27:43] [DEBUG] Security layer: requested 11, selected 0
    [20200514-16:27:43] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:192.168.1.23 port 3389)
    [20200514-16:27:43] [INFO ] Socket 12: AF_INET6 connection received from ::ffff:192.168.1.20 port 58068
    [20200514-16:27:43] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:192.168.1.23 port 3389)
    [20200514-16:27:43] [DEBUG] Closed socket 11 (AF_INET6 :: port 3389)
    [20200514-16:27:43] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
    [20200514-16:27:43] [ERROR] Cannot read certificate file /etc/xrdp/cert.pem: No such file or directory
    [20200514-16:27:43] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
    [20200514-16:27:43] [ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied
    [20200514-16:27:43] [DEBUG] TLSv1.2 enabled
    [20200514-16:27:43] [DEBUG] TLSv1.1 enabled
    [20200514-16:27:43] [DEBUG] TLSv1 enabled
    [20200514-16:27:43] [DEBUG] Security layer: requested 0, selected 0
    [20200514-16:27:43] [INFO ] connected client computer name: mini-3
    [20200514-16:27:43] [INFO ] Non-TLS connection established from ::ffff:192.168.1.20 port 58068: encrypted with standard RDP security
    [20200514-16:27:43] [DEBUG] xrdp_0000357b_wm_login_mode_event_00000001
    [20200514-16:27:43] [INFO ] Loading keymap file /etc/xrdp/km-00000809.ini
    [20200514-16:27:43] [WARN ] local keymap file for 0x00000809 found and doesn’t match built in keymap, using local keymap file
    [20200514-16:27:43] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0.1 port 3350
    [20200514-16:27:43] [INFO ] xrdp_wm_log_msg: sesman connect ok
    [20200514-16:27:43] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait…
    [20200514-16:27:43] [DEBUG] return value from xrdp_mm_connect 0
    [20200514-16:27:43] [INFO ] xrdp_wm_log_msg: login successful for display 10
    [20200514-16:27:43] [DEBUG] xrdp_wm_log_msg: started connecting
    [20200514-16:27:47] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:27:50] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:27:54] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:27:57] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:01] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:04] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:08] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:11] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:15] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:18] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:22] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:25] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:29] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:32] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:36] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:39] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:43] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:46] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:50] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:53] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:28:57] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:00] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:04] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:07] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:11] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:14] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:18] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:21] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:25] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:28] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:32] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:35] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:39] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:42] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:46] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:49] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:53] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:29:57] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:00] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:04] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:07] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:11] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:14] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:18] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:21] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:25] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:28] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:32] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:35] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:39] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:42] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:46] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:49] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:53] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:30:56] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:31:00] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:31:03] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:31:07] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:31:10] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:31:13] [DEBUG] xrdp_wm_log_msg: connection problem, giving up
    [20200514-16:31:13] [DEBUG] Closed socket 17 (AF_UNIX)
    [20200514-16:31:13] [DEBUG] xrdp_wm_log_msg: some problem
    [20200514-16:31:13] [DEBUG] xrdp_mm_module_cleanup
    [20200514-16:31:13] [DEBUG] Closed socket 16 (AF_INET6 ::1 port 45140)
    [20200514-16:31:29] [DEBUG] Closed socket 12 (AF_INET6 ::ffff:192.168.1.23 port 3389)
    [20200514-16:31:29] [DEBUG] xrdp_mm_module_cleanup

  6. Thanks very much for script. I tried it after trying other manual methods. But I still have the same error, from the remote desktop client, I am trying to log in and I get the green screen for at least a meeting with an error code at the end “Giving UP” error. In the log I get the following:

    May 18 13:05:07 AlphaX xrdp[12786]: (12786)(140511675082560)[WARN ] local keymap file for 0x00000809 found and doesn’t match built in keymap, using local keymap file
    May 18 13:05:31 AlphaX xrdp[12786]: (12786)(140511675082560)[DEBUG] xrdp_wm_log_msg: connecting to sesman ip 127.0.0.1 port 3350
    May 18 13:05:31 AlphaX xrdp[12786]: (12786)(140511675082560)[INFO ] xrdp_wm_log_msg: sesman connect ok
    May 18 13:05:31 AlphaX xrdp[12786]: (12786)(140511675082560)[DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait…
    May 18 13:05:31 AlphaX xrdp[12786]: (12786)(140511675082560)[DEBUG] return value from xrdp_mm_connect 0
    May 18 13:05:31 AlphaX xrdp[12786]: (12786)(140511675082560)[INFO ] xrdp_wm_log_msg: login successful for display 10
    May 18 13:05:31 AlphaX xrdp[12786]: (12786)(140511675082560)[DEBUG] xrdp_wm_log_msg: started connecting
    May 18 13:05:35 AlphaX xrdp[12786]: (12786)(140511675082560)[DEBUG] Closed socket 21 (AF_UNIX)
    May 18 13:05:38 AlphaX xrdp[12786]: (12786)(140511675082560)[DEBUG] Closed socket 21 (AF_UNIX)
    May 18 13:05:42 AlphaX xrdp[12786]: (12786)(140511675082560)[DEBUG] Closed socket 21 (AF_UNIX)

  7. @Uzi,
    Which version of Ubuntu are you running ? 18.04, 20.04 ?
    The green screen can be because of multiple reasons…..
    Can you check that the /etc/X11/Xwrapper.config has the following line set allowed_users=anybody (and should be replacing allowed_users=console)
    Ensure that the xorgxrdp package is correctly installed (try to install it manually sudo apt-get install xorgxrdp)
    If possible, try also to perform a clean install (as you have apparently performed multiple manual install)

    Hope this help
    Till next time
    See ya

  8. Thanks very much for script.
    Sound on ubuntu 20.04 (xrdp) glitches, skips or crackling.

  9. On ubuntu 20.04, keyboard layout switching stops working if you shut down rdp without ending the user session. That is, when you first connect, switching layouts works, close the rdp window, connect again, and that’s it, the input only works in one language. Switching the layout with the mouse does not help. If you end the session and reconnect via rdp, you can switch the keyboard layout again. But this is inconvenient((

  10. @Michael,

    Thank you for the visit and for sharing the information….. We have encountered this issue as well and we have not found or got time to look into an acceptable solution…..
    We will see if we can try to improve this

    Till next time
    See ya

  11. Thanks for the nice script. i’ve been using it since 16.04.
    I’m am aware, that the same login cannot login on console and remote.
    I encoutered a slightly different problem:
    After boot, the first user is always able to login. Every following user only get a black screen. No matter if the first is still logged in or not. The first user can after failed login attempt of the other users login without problem.
    Any suggestions how to debug?

  12. @Andres,

    Hmmm…. this is an interesting issue…Never had that before 🙂
    So, Some questions first

    > Which Version of Ubuntu are you running 16.xx/18.xx/20.xx ?
    > Standard or Custom Installation Option used ?

    To get more info, you should check on your ubuntu machine the following location to see if we can narrow down the problem
    > /var/log/xrdp.log
    > /var/log/xrdp-sesman.log

    Then, log in locally with one of the user having the problem and look for these logs in the user profile
    > ~/.xsession-errors
    > ~/.xorgxrdp.log

    Check that the ~/.xsessionrc file exists and it’s populated
    Check also the /etc/xrdp/sesman.in [Security] Section and check that the settings are set accordingly

    Hope this can help
    Till next time
    See ya

  13. I use Ubuntu 20.04 .
    After apt purge xrdp xorgxrdp and -r your script and reinstall with your script everything works fine.
    The black screen came from the screensaver. The problem was that after login the keyboard and mouse were blocked and therefore no chance. From 10 servers i installed about three had this issue from blocking keyboard and mouse after login, even on the console, only entering tty worked. There are differences if you install first ubuntu-server and then ubuntu-desktop or the other way round.
    Thanks again for helping to use xrdp on ubuntu.
    Andres

  14. Hello, thanks for the very useful script and articles regarding xrdp.

    By the way, I prefer traditional GNOME Fallback desktop.
    Following .xsession/.xsessionrcs support many desktops.
    Multiple users can execute different desktops simultaneously.
    Local user can select desktop from GDM menu.

    Following steps are enough.
    – Skip fix_theme() in xrdp-installer-1.2.sh (copy /etc/xrdp/startwm.sh.griffonl to /etc/xrdp/startwm.sh).
    – Put following .xsession/.xsessionrc in user’s home directory.

    GNOME Flashback works on 20.04, 18.04 and 16.04.
    Ubuntu desktop works on 20.04 and 18.04.
    Unity desktop works on 16.04, though there is an issue.

    ==================================================================
    .xsession common to all
    —————-
    EXEC=`cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e /^Exec=/p | sed -e ‘s/Exec=//’`
    if [ -n “${EXEC}” ] ; then
    sleep 1
    exec ${EXEC}
    fi
    —————-

    ==================================================================
    .xsessionrc for GNOME Flashback(metacity)
    —————-
    if [ -z “$DESKTOP_SESSION” ] ; then
    export DESKTOP_SESSION=gnome-flashback-metacity
    export GDMSESSION=$DESKTOP_SESSION
    export GNOME_SHELL_SESSION_MODE=ubuntu
    export XDG_SESSION_DESKTOP=$DESKTOP_SESSION
    export XDG_CURRENT_DESKTOP=`cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e /^DesktopNames=/p | sed -e ‘s/DesktopNames=//’ -e ‘s/;/:/g’`
    fi
    —————-

    ==================================================================
    .xsessionrc for Ubuntu desktop
    —————-
    if [ -z “$DESKTOP_SESSION” ] ; then
    export DESKTOP_SESSION=ubuntu
    export GDMSESSION=$DESKTOP_SESSION
    export GNOME_SHELL_SESSION_MODE=ubuntu
    export XDG_SESSION_DESKTOP=$DESKTOP_SESSION
    export XDG_SESSION_TYPE=x11
    export XDG_CURRENT_DESKTOP=`cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e /^DesktopNames=/p | sed -e ‘s/DesktopNames=//’ -e ‘s/;/:/g’`
    fi
    —————-

    Following .xsessionrc can start Unity on 16.04.
    However logout does not disconnect xrdp. The cause is not clear at this moment.
    ==================================================================
    .xsessionrc for Unity desktop on 16.04
    —————-
    if [ -z “$DESKTOP_SESSION” ] ; then
    export DESKTOP_SESSION=ubuntu
    export GDMSESSION=$DESKTOP_SESSION
    export XDG_SESSION_DESKTOP=$DESKTOP_SESSION
    export XDG_SESSION_TYPE=”x11″
    export XDG_CURRENT_DESKTOP=`cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e /^DesktopNames=/p | sed -e ‘s/DesktopNames=//’ -e ‘s/;/:/g’`
    export XDG_CONFIG_DIRS=”/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg”
    export SESSIONTYPE=”gnome-session”
    UPSTART=`ps -ef | grep “/sbin/upstart \-\-user” | grep “$USER”`
    if [ -z “$UPSTART” ] ; then
    /sbin/upstart –user &
    sleep 2
    fi
    fi
    —————-

    I tried following .xsessionrc on 20.04. They work.

    ==================================================================
    .xsessionrc for LXQt
    —————-
    if [ -z “$DESKTOP_SESSION” ] ; then
    export DESKTOP_SESSION=lxqt
    export GDMSESSION=$DESKTOP_SESSION
    export XDG_SESSION_DESKTOP=$DESKTOP_SESSION
    export XDG_CURRENT_DESKTOP=LXQt
    fi
    —————-

    ==================================================================
    .xsessionrc for MATE
    —————-
    if [ -z “$DESKTOP_SESSION” ] ; then
    export DESKTOP_SESSION=mate
    export GDMSESSION=$DESKTOP_SESSION
    export XDG_SESSION_DESKTOP=$DESKTOP_SESSION
    export XDG_CURRENT_DESKTOP=`cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e /^DesktopNames=/p | sed -e ‘s/DesktopNames=//’ -e ‘s/;/:/g’`
    fi
    —————-

    ==================================================================
    .xsessionrc for vanilla GNOME desktop
    —————-
    if [ -z “$DESKTOP_SESSION” ] ; then
    export DESKTOP_SESSION=gnome
    export GDMSESSION=$DESKTOP_SESSION
    export GNOME_SHELL_SESSION_MODE=gnome
    export XDG_SESSION_DESKTOP=$DESKTOP_SESSION
    export XDG_CURRENT_DESKTOP=`cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e /^DesktopNames=/p | sed -e ‘s/DesktopNames=//’ -e ‘s/;/:/g’`
    fi
    —————-

    ==================================================================
    .xsessionrc GNOME Classic
    —————-
    if [ -z “$DESKTOP_SESSION” ] ; then
    export DESKTOP_SESSION=gnome-classic
    export GDMSESSION=$DESKTOP_SESSION
    export GNOME_SHELL_SESSION_MODE=classic
    export XDG_SESSION_DESKTOP=$DESKTOP_SESSION
    export XDG_CURRENT_DESKTOP=`cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e /^DesktopNames=/p | sed -e ‘s/DesktopNames=//’ -e ‘s/;/:/g’`
    fi
    —————-

  15. Great script.
    I’m using it with an Ubuntu Vagrant Box for an open source project, with no problems.
    Is there any way I can get notified when a new version of the script comes out?

  16. @hiero,
    There is no automated ways yet to get notified automatically..if you want to, i can send u an email when new release will be available…later on we might implement a proper solution….

    Till next time
    See ya

  17. @Hiero,

    Thank you for shari g the info..we used to provide guides for different ubuntu flavors..but nowadays we lack time and we focus only o stantard ubuntu…if ok with you, we might use the info you have provided to create a post about xrdp and others DE…

    Thanks and till next time
    See ya

  18. Hello.

    It is OK to share .xsession/.xsessionrc and selectxrdpsession.sh in the guides.
    I am happy this will be help to users who want to use various desktops.

    I reviewed all the .xsessionrcs and unified them, and wrote a simple shell script which users can switch desktops easily.
    Following single .xsession/.xsessionrc support many desktops.
    Only Unity on 16.04 requires special treatment.
    If it is OK to exclude Unity on 16.04, .xsession/.xsessionrc can be less than half size…

    The value of DESKTOP_SESSION in .xsessionrc specifies executing desktop.
    It is enough to change it to select desktop.
    I wrote a simple shell script (selectxrdpsession.sh) which users can switch desktops easily.

    Following steps are enough.
    – Skip fix_theme() in xrdp-installer-1.2.sh (copy /etc/xrdp/startwm.sh.griffonl to /etc/xrdp/startwm.sh).
    – Put following .xsession/.xsessionrc in user’s home directory.
    – Execute selectxrdpsession.sh to select preferred desktop.

    I tried many desktops including:
    20.04: Ubuntu, GNOME Flashback, GNOME, GNOME Classic, LXQt, Xfce, MATE, Budgie and Kubuntu.
    18.04: Ubuntu, GNOME Flashback
    16.04: Unity, GNOME Flashback
    All worked.

    ==================================================================
    .xsession
    —————-
    EXEC=`cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e /^Exec=/p | sed -e ‘s/Exec=//’`
    if [ -n “${EXEC}” ] ; then
    sleep 1
    if [ “$XDG_CURRENT_DESKTOP” != “Unity” -o “`lsb_release -sr`” != “16.04” ] ; then
    exec ${EXEC}
    else
    exec ${EXEC} &
    while :
    do
    sleep 2
    UPSTARTDEFUNCTPS=`ps -ef|grep $USER|grep upstart|grep defunct|grep -v grep`
    UPSTARTPS=`ps -ef|grep $USER|grep upstart|grep -v grep`
    if [ -z “$UPSTARTPS” -o -n “$UPSTARTDEFUNCTPS” ] ; then
    #sleep 2
    break
    fi
    done
    fi
    fi
    —————-

    ==================================================================
    .xsessionrc
    —————-
    if [ -z “$DESKTOP_SESSION” ] ; then
    export DESKTOP_SESSION=ubuntu
    export GDMSESSION=$DESKTOP_SESSION
    export XDG_SESSION_DESKTOP=$DESKTOP_SESSION
    export XDG_SESSION_TYPE=”x11″
    export XDG_CURRENT_DESKTOP=`cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e /^DesktopNames=/p | sed -e ‘s/DesktopNames=//’ -e ‘s/;/:/g’`
    if [ “$XDG_CURRENT_DESKTOP” = “Unity” -a “`lsb_release -sr`” = “16.04” ] ; then
    export XDG_DATA_DIRS=”/usr/share/ubuntu:/usr/share/gnome:/usr/local/share:/usr/share:/var/lib/snapd/desktop”
    export SESSIONTYPE=”gnome-session”
    export XDG_CONFIG_DIRS=”/etc/xdg/xdg-ubuntu:/usr/share/upstart/xdg:/etc/xdg”
    export XAUTHORITY=$PWD/.Xauthority
    UPSTARTPS=`ps -ef|grep $USER | grep “/sbin/upstart” | grep user`
    if [ -z “$UPSTARTPS” ] ; then
    /sbin/upstart –user &
    fi
    fi
    fi
    —————-

    ==================================================================
    selectxrdpsession.sh
    —————-
    #!/bin/bash

    CURENT_SESSION=`cat $HOME/.xsessionrc | grep DESKTOP_SESSION= | cut -d= -f2`
    CURRENT_SESSION_NAME=`cat /usr/share/xsessions/${CURENT_SESSION}.desktop 2>/dev/null | sed -n -e ‘s/^Name=//p’`
    echo current setting : ${CURRENT_SESSION_NAME} – ${CURENT_SESSION}

    NAME_LEN_MAX=0
    for xsession in `ls -1 /usr/share/xsessions | sed -e ‘s/\.desktop//’`
    do
    if [ -n “`echo $xsession | grep -E ‘compiz|snap’`” ] ; then continue; fi
    xsessions+=(“$xsession”)
    session_name=”`cat /usr/share/xsessions/${xsession}.desktop | sed -n -e ‘s/^Name=//p’`”
    session_names+=(“$session_name”)
    if [ `expr length “$session_name”` -gt $NAME_LEN_MAX ] ; then NAME_LEN_MAX=`expr length “$session_name”`; fi
    done
    ITEM_NUM=${#xsessions[*]}
    for i in `seq 0 $(expr $ITEM_NUM – 1)`
    do
    echo `expr $i + 1`: ${session_names[$i]}”`printf ‘%*c’ $(expr $NAME_LEN_MAX – length “${session_names[$i]}” + 1) ‘ ‘`”- ${xsessions[$i]}
    done
    read -p “select number 1 – $ITEM_NUM (Enter to leave current setting): ” key
    key=`expr “$key” – 1 2>/dev/null`
    if [ $? -ge 2 ] ; then key=-1; fi
    if [ $key -lt 0 -o $key -ge $ITEM_NUM ] ; then
    echo not changed
    exit
    fi
    echo `expr $key + 1`: ${session_names[$key]} – ${xsessions[$key]} is selected
    sed -r -i $HOME/.xsessionrc -e “s/DESKTOP_SESSION=.*/DESKTOP_SESSION=${xsessions[$key]}/”
    —————-

  19. Process for 16.04 could be much simpler.
    Following .xsession/.xsessionr works well.
    By the way, ASCII single/double quotation characters and minus character are converted other codes in this comment box.
    Therefore it is necessary to convert these characters to ASCII manually, if get these scripts in copy/past way.

    ==================================================================
    .xsession
    —————-
    if [ “x$(lsb_release -sr)” = “x16.04″ ] ; then
    export XAUTHORITY=${HOME}/.Xauthority
    export SESSIONTYPE=”gnome-session”
    exec /sbin/upstart –user
    fi
    EXEC=$(cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -n -e ‘s/^Exec=//p’)
    if [ -n “${EXEC}” ] ; then
    sleep 1
    exec ${EXEC}
    fi
    —————-

    ==================================================================
    .xsessionrc
    —————-
    if [ -z “$DESKTOP_SESSION” ] ; then
    export DESKTOP_SESSION=gnome-flashback-metacity
    export GDMSESSION=$DESKTOP_SESSION
    export XDG_SESSION_DESKTOP=$DESKTOP_SESSION
    export XDG_SESSION_TYPE=”x11″
    export XDG_CURRENT_DESKTOP=$(cat /usr/share/xsessions/${DESKTOP_SESSION}.desktop | sed -e ‘s/;/:/g’ -n -e ‘s/^DesktopNames=//p’)
    fi
    —————-

  20. connecting to sesman ip 127.0.0.1 port 3350
    sesman connect ok
    sending login info to session manager, please wait…
    login failed for display 0

    This doesn’t seem to work for domain users on an AD joined machine. or I missed something. Any idea? I’m willing to accept “no soup for you” as answer.

  21. @Shawn,

    We are looking into adding more distribution into the script…We already received some support for our readers which provided us some technical information. Given the workload we have at the moment, we are not planning to add these additional distribution this year. Starting next year, you could expect that additional flavors might be supported.

    Till next time
    See ya

  22. @Bob,

    Which software are you using to integrate your linux with Active Directory ? Based on the software used, you will probably need to perform some additional configuration.
    As far as I know, xRDP should be working with Active directory but if you are using sssd software for example, additional configuration is needed….
    If you provide more information about your setup, we might have some time to setup a similar infrastructure and perform some tests and come back to you with a possible solution

    Till next time
    See ya

  23. Hi,
    in case I log in through remote desktop, nautilus open as admin doesn’t work, the authentication dialog doesn’t appear.
    Do you have any idea how to fix that?

    Thanks and Best Regards
    Thomas

  24. @Thomas,

    This is a known issue with XRDP… If you execute the command sudo nautilus (from terminal console), you will have no access to the nautilus as root….
    The easiest workaround would be to first execute from terminal console the command xhost + which will loose the security on your system and you will be able to open nautilus…
    USE IT AT YOUR OWN RISK !!!!!

    To revert the configuration issue the command xhost –

    Hope this help
    Till next time
    See ya

  25. Thanks for the great work you’re doing, always a refreshing resource.
    I’ll be trying this out on Lubuntu 20.04 . I will be glad to post an update when I get it all set up and working.

  26. Hello,
    May I ask for clarification on Hiero’s process to have different sessions use different desktop environments pretty please? I am confused when he says:
    Following steps are enough.
    – Skip fix_theme() in xrdp-installer-1.2.sh (copy /etc/xrdp/startwm.sh.griffonl to /etc/xrdp/startwm.sh).
    ***This has to do with the script, I know that much. Is Hiero commenting out the whole function, or is he asking to look up that particular copy instruction ans comment it out? Which by the way is backwards as to
    “to” and “from” if you look at the script. Please look at lines 309 and 313 or there about.

    – Put following .xsession/.xsessionrc in user’s home directory.
    ***Total nub here. I thought .xsession was a file. Hiero makes it look like a folder with the .xsessionrc file inside. What to do here? Create a folder .xsession and within create a file .xsessionrc and place his script in it? If so what parts of what he pastes?

    – Execute selectxrdpsession.sh to select preferred desktop.
    ***I assume that after one has installed the proper desktop environments one has t run this.

    Please help. Thank you.

  27. Hello _ jav

    There are multiple ways to achieve the same results but let’s look at what Hiero is proposing
    step 1 – Run the xrdp-installer-1.2.sh script as usual, no changes needed within the script
    Step 2 – Replace the startwm.sh with the startwm.sh.griffon (so, execute sudo mv /etc/xrdp/startwm.sh.griffon /etc/xrdp/startwm.sh)
    Step 3 – .xession and .xsessionrc are both files that can be used to execute action at user logon time…
    If you are using Ubuntu 16.04x, we will use the .xsession file
    if you are using Ubuntu 18.04.x or later, you will use .xsessionrc file
    Step 4 – So choose one of the file option above (.xsession or .xsessionrc), populate with the code provided by Hiero
    Step 5 – Finally; you can then use the selectxrdpsession script if you want to

    Hope this help
    Till next time
    See ya

  28. Hello _jav and Griffon,

    Sorry for the hard to understand explanation.
    Both .xsession and .xsessionrc are used for all the versions of Ubuntu.
    Replace Step 3, 4 and Step 5 in Griffon’s post on November 8 with following Steps.
    Step 3. Create a text file named .xsessionrc in home directory and copy/paste .xsessionrc script in August 20 post.
    Step 4. Create a text file named .xsession in home directory and copy/paste .xsession script in August 20 post.
    Step 5. Create a text file named selectxrdpsession.sh in home directory and copy/paste selectxrdpsession.sh script in August 16 post.
    Step 6. chmod +x selectxrdpsession.sh
    Step 7. ./selectxrdpsession.sh to select your preferred Desktop.
    And need to logout before login via xrdp.

    Note:
    As a result of copy/paste from this page, ASCII single/double quotation characters and minus character may be converted to non-ASCII characters.
    Re-write these characters by hand using text editor.

    ====
    Following page explains how .xsessionrc and .xsession are used.
    https://wiki.debian.org/Xsession
    In this case(session is executed from xrdp), 1. and 3. are selected.
    1. If the user has a ~/.xsessionrc file, read it.
    3. Otherwise, if the user has a ~/.xsession or ~/.Xsession file, run it.
    .xsessionrc is used to set up environment variables and .xsession launches desktop environment(DE).

    Thanks

  29. @Andy,

    Thank you for visiting our blog and for the positive comments. good to see that our small contribution can be helpful to other people

    Till next time
    See ya

  30. There is any way to get login of same user nomater remotely or licaly to connect to same session of this user logged in before ?

  31. @Lg,

    as far as we know, there is no way to connect to the console session from xrdp and xorgxrdp package. if you want to achieve this; you would install vnc on your target machine and you should still be able to use xrdp software to login at the console session to the target machine. There is more work and configuration to be performed but that would be possible (as starting point, you could check the following post (https://c-nergy.be/blog/?p=5956)

    Hope this help
    Till next time
    See ya

  32. Hi,
    @Hiero. Thank you Hierro. I am wandering if I can get a little help. Im am trying to get gnome-classic (megacity) through the XRDP, but I only get a black background with 2 bard (up and down), and an X for the pointer. Im on 20.04. Thanks.

  33. Hello _jav,

    I would like to confirm some items.
    – Which do you try “gnome-classic” or “GNOME Fallback” ?
    – In case of “gnome-classic”, have you already installed “gnome-session” first then installed “vanilla-gnome-desktop” ?
    – In case of “GNOME Fallback”, have you already installed “gnome-session-flashback” ?
    – Is the desktop works from local(normal GUI) log in ?

    Thanks,
    Hiero

  34. @CK,
    Thank you for visiting our blog and providing feedback. We are happy to see that our script can be useful to others… 🙂

    Till next time
    See ya

  35. Hello,
    I’ve run your script. It completed without errors.
    Using RCP on Windows, I get the login screen, click OK and then nothing happens.

    Any suggestions?

  36. @Dan,

    Thank you for visiting our blog. You do not provide enough information in order for us to help you…
    Can you tell us which version of Ubuntu you are running ?
    are you running Ubuntu or other ubuntu flavors like Kubuntu, Xubuntu, Mint… ?
    are you login locally on the machine when trying to perform the remote connection ? a unique user can be only connected locally or remotely
    can you check the logs to see if there are any hints that could help us (/var/log/xrdp.log and /var/log/xrdp-sesman.log)

    Hope this help
    till next time
    See ya

Leave a Reply