xRDP – Easy install xRDP on Ubuntu 20.04,22.04,23.XX (Script Version 1.4.8)

Hello World, 

Since Ubuntu 23.10 has been released recently, it’s time for us to publish an update of our famous xrdp-installer script.  There are some noticeable changes that have been introduced in Ubuntu 23.10 that slightly affect the xRDP installation process… 

Today, we are releasing the version 1.4.8 of the xrdp-installer script.  This is more a maintenance release that will mainly include Ubuntu 23.10 support.  However, some other changes have been integrated into this version. 

So, let’s see what has changed in this release… ! 

Overview

By now, you should know that the xrdp-installer script aim to ease installation and post-configuration actions of xRDP on top of Ubuntu Operating system.  xRDP is a piece of software that enable remote desktop services on Linux.   This means that windows users can use their Remote desktop client (mstsc) and perform a remote connection to Ubuntu Computer.   

Initially, the script was supporting only Ubuntu with Gnome Desktop interface. However,  recent version of script tries to detect the Desktop interface in use and try to perform the post-configuration actions as required.  Recent version of the script also can run against Debian Operating system as well.  Please note that supporting other Flavors is based on a Best effort approach.

What’s new in this release (Version 1.4.8) ?

Adding Support for Ubuntu 23.10

As requested by our readers, we have updated the script in order to support the latest version of Ubuntu (i.e. 23.10).  The script should be able to correctly detect Ubuntu 23.10 as a supported OS and the script will execute accordingly 

Removing Support for Ubuntu 18.04   

Since Ubuntu 18.04 has reach standard end of support, this Ubuntu version has been removed from the supported list and the script will normally not execute against Ubuntu 18.04.  Some people might say that Ubuntu 18.04 is still under support through the Extended Support solution.  This is correct.  So, if you are still using Ubuntu 18.04, we would recommend you to use previous version of the script (i.e 1.4.7) which still include support of such operating system. 

Removing Support for Ubuntu 22.10

Since Ubuntu 22.10 has reached end of life, we have decided to remove support for this Ubuntu Version.  Ubuntu 22.10 was a short term release and we are expecting that all users have upgraded their Ubuntu distribution to a more recent one or to a long Term support edition.

Fixing Versioning when performing custom installation 

This release of the script should fix a “minor” issue.  Previous versions of the script, when using the custom install option, would generate xrdp and xorgxrdp packages and during the compilation process, package version was provided. We have noticed that when performing some update of our Ubuntu installation, the package version was not correct and that update process was complaining about that.  xrdp-installer-1.4.8 should fix this issue.  After performing the custom installation, the xrdp package version installed should match the stable branch of the xRDP repository. 

Adding Sound redirection with Pipewire Sound Server 

This is one of the most requested feature we have received

Previous version of the script would enable sound redirection only if Pulseaudio Sound server was  detected.  This is because xRDP package was specifically expecting Pulseaudio server in order to compile sound redirection modules.  However, since Ubuntu 22.10 and later editions are shipping with Pipewire as default sound server, it was about time that xRDP would provide support also for Pipewire sound server. 

If you remember, we have provided already, in the past, some info about Pipewire support in xRDP in the post xRDP – Testing Initial Pipewire Sound Rediretion Support in Ubuntu 22.10 (Early Stage)   Using Hiero code and approach, it was possible to provide Pipewire support.    This was really early stage process and some tests and validations activities were needed.  

Recently, xRDP Team has provided a new repository where the necessary source code to compile Pipewire sound modules for xrdp can be found.  If you look at xRDP – Sound Redirection Support for Pipewire Module, you will find all the necessary information about the new repo and how to perform the compilation when using Pipewire Sound Server.  

To take into account all these changes, the xrdp-installer script version 1.4.8 has been updated accordingly.  The version 1.4.8 will try to detect which Sound server is in used.  Based on this, the script will compile the correct sound module (Pulseaudio or Pipewire) and sound redirection should be available for you 

Some bug fixing (specifically for Debian Distribution)

Some users have reported that the custom installation was not working on Debian OS. The error was caused by the checkinstall package that is used to compile xrdp and xorgxrdp software solution.   This error was first mentioned by Hiero when xrdp-installer-1.4.6 was released.   We have performed multiple installation and some times it works some times it fails.  After some investigations, it seems that there is indeed a known issue with Checkinstall package available with Debian distributions.  

In order to fix the issue, we simply needed to pass an additional parameter to the checkinstall command line (i.e. – – trans) which will proceed with the installation process. 

New switch available (Testing only !) 

We have added an additional switch  to the script.   The new switch will download the xrdp and xorgxrdp packages from the dev branch.  This switch should be used only for people will to test the latest unstable version of xRDP package.  We have added this switch because time to time we are installing the latest version of the software and try to spot new features or new problems.  This option will probably not be used by a lot of people… but some other people might want to also test the unstable version of xRDP package software… 

How to Use the Script

The xrdp-installer-1.4.8 script will work in a similar way as the previous versions. The following section will explain how to download, extract, set executable mode and perform the installation using the script.  The script provides some switches that can be used to customize the installation process.  

So, let’s see how this would be working…. 

Disclaimer

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

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

Script version & Supported Ubuntu Version

The xrdp-installer-1.4.8.sh script will support the following Ubuntu operating system version assuming that Gnome Desktop is the default Desktop interface

  • Ubuntu 20.04.x
  • Ubuntu 22.04.x
  • Ubuntu 23.04.x
  • Ubuntu 23.10.x
  • Debian 10 
  • Debian 11 (only if you select custom mode installation !!!) 
  • Debian 12 

The xrdp-installer-1.4.8.sh script can be run against the following Ubuntu flavors but we cannot guarantee that everything will work as expected (best effort)

  • Kubuntu (20.04 and later)
  • Ubuntu Budgie (20.04 and later)
  • Ubuntu Mate (20.04 and later)
  • Xubuntu (20.04 and later)
  • Lubuntu (20.04 and later)  
  • Linux Mint (Experimental at this stage) 
  • Pop!_OS  22.04 

Note :  If you are running any of these distributions and you want to help us improving the support on those, please download and test the script.  Do no hesitate to share your findings so we can try to incorporate them in the next release 

Step 1 – Download the script

To download the script, you have multiple options.   You can from a Terminal issue the following command 

wget https://www.c-nergy.be/downloads/xRDP/xrdp-installer-1.4.8.zip

You can also simply use your browser and click on the link to download the script :  

Step 2 – unzip the file 

After downloading the zip package containing the file, you will need to unzip it first. To unzip the package, you can use the Terminal console and issue the following command 

unzip xrdp-installer-1.4.8.zip 

You can also use the GUI and the Nautilus file manager to select the downloaded package, right-click on it and select the option Extract Here

Step 2 – Set Execute Right on the script

Download the xrdp-installer-1.4.8.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.4.8.sh

Note : Adjust the path where the xrdp-Installer-1.4.8.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.4.8.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.4.8.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)
--dev or -d           => will perform a custom installation using dev branch (unstable version)

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.4.8.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….

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.4.8.sh -s      (this would enable the sound redirection) 
./xrdp-installer-1.4.8.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.4.8.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. 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.4.8.sh -c     (this would perform a custom installation but will not enabled adv features like sound redirection or custom login screen)

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.4.8.sh -c -s     (this would perform a custom install and enable sound redirection)
./xrdp-installer-1.4.8.sh -c -l     (this would perform a custom install and customize xrdp login screen)
./xrdp-installer-1.4.8.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.4.8.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.  Start your favorite rdp client and 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. 

Limitations

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.4.8.sh -r option) 
  • perform a new installation using your selected installation mode (standard or custom install mode) 

Known issues, Fixed Issues and limitations 

Known Issues 

Black Screen or disconnected immediately after connecting

As mentioned and explained multiple times,  this situation will happen (or can happen) when the same user account is used concurrently locally and remotely.  In other words,  the problem is related to the fact that the same user account is already logged in locally and a remote connection is attempted at the same time.  With xRDP software solution, a specific user account can be logged on either locally or remotely but not both….  

In the past, we have provided some workarounds that could be used to allow multiple connections for the same user.  However, in Ubuntu 22.04, we have encountered some additional issues and again we strongly recommend not using these workarounds…..

Some workarounds (provided as is) to try to fix the issues are available. We do not recommend to use them ! Use at your own risk !!!

Final Notes

This is it for this post !   

The script version has not been tested extensively but it should work in most cases.  The script should be seen as a maintenance release in order to maintain usability.  Please if you have time or want to help us in creating the best xRDP installer script, download the script, test it 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 are waiting to see what’s coming with Ubuntu 24.04 and see if a new script release will be needed or not…

Till next time 

See ya  

17 thoughts on “xRDP – Easy install xRDP on Ubuntu 20.04,22.04,23.XX (Script Version 1.4.8)

  1. Hello,

    I’m getting this error on Ubuntu 20.04 after running with the -r option, rebooting, then running with the -c option.

    configure: error: Package requirements (xrdp >= 0.9.16) were not met:

    No package ‘xrdp’ found

    Consider adjusting the PKG_CONFIG_PATH environment variable if you
    installed software in a non-standard prefix.

    Alternatively, you may set the environment variables XRDP_CFLAGS
    and XRDP_LIBS to avoid the need to call pkg-config.
    See the pkg-config man page for more details.
    make: *** No targets specified and no makefile found. Stop.

  2. Hitting a brick wall with xrdp showing login failure from a W11 RDP client. Latest script ran OK without issue and xrdp services are up. Remain logged out of the account as suggested however same issue . Any assistance would be appreciated.

  3. @Ldogg123,

    Thank you for visiting our blog and providing valuable feedback. So, we have not checked this one yet in our lab but we would guess that one of the pre-requisites does not get installed. We have seen it happening time to time. Even do, the library is defined in the script, the installation does not seem to go through…
    To try to identify the issue, can you try to get full output log when running the script. You can try to use this command, it should normally create a log file… (not sure, never tried it 🙂 )

    xrdp-installer-1.4.x.sh -c |& tee -a installxrdp.log

    We can then have a look at it and see what’s causing the issue

    waiting for your feedback
    Till next time
    See ya

  4. @PKax,

    Thank you for visiting our blog and sharing your experience. So, we need a little bit more information here…. Which Ubuntu version are you running (22.04, 23.xx…), Which Desktop interface are your running ?
    can you check the logs /var/log/xrdp-sesman.log and /var/log/xrdp.log
    Login failed could be because of wrong password…Can you check that the password is correct and that the keyboard layout is also correct. User the username field to type in your password and assess if keyboard layout is ok
    Hope this help

    Waiting for your feedback
    Till next time
    See ya

  5. Not working with LMDE6 (which is based on debian 12) :

    Your system is not running on a support version !

    $ uname -a
    Linux lmde1 6.1.0-13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.55-1 (2023-09-29) x86_64 GNU/Linux

  6. @Snowy,

    Thank you for visiting our blog and providing feedback. Indeed, LMDE is not supported by the current version of the script. Please read the post and information provided. the script supports
    Ubuntu 20.04.x
    Ubuntu 22.04.x
    Ubuntu 23.04.x
    Ubuntu 23.10.x
    Debian 10
    Debian 11 (only if you select custom mode installation !!!)
    Debian 12
    Kubuntu (20.04 and later)
    Ubuntu Budgie (20.04 and later)
    Ubuntu Mate (20.04 and later)
    Xubuntu (20.04 and later)
    Lubuntu (20.04 and later)
    Linux Mint (Experimental at this stage)
    Pop!_OS 22.04

    LMDE is not listed so it means not supported yet.. We are looking into adding this Distribution as supported one… probably in version 1.4.9 or 1.5

    Till next time
    See ya

  7. @Pkax;

    Ah good to hear… Thank you for providing feedback… Now, you can enjoy your xRDP software solution 🙂

    Till next time
    See ya

  8. @Griffon

    I was actually able to figure it out, somehow I missed the checkinstall error stating permission denied when trying to execute installscript.sh inside /var/tmp. I had /var/tmp mounted with noexec, so once I remounted with exec the script worked flawlessly. Is there a way to make checkinstall use something other than /var/tmp to execute that script?

  9. Hey Griffon, you are a legend! I’ve spent hours trying to get sound working on my hyper-v ubuntu instance. Followed lots of other guides and nothing worked until I was directed here. You are doing awesome work for the community, thanks!

  10. @Ldogg123,

    Thank you for sharing your findings about this issue… At the moment, do not know how we could do that… need to check if feasible…

    Till next time
    See ya

  11. @Andrew,

    Thank you for sharing your feedback. Happy to see that our small contribution can help people around
    Till next time
    See ya

  12. This worked on xubuntu 23.04.3 bhyve vm. Much thanks! I notice xrdp-chansrv always has one core at 100% usage?

  13. I had tried your script in past on a different system with Ubuntu 20 and it worked very weel. I have setup a new system with Ubuntu 23.04. the Xrdp was working fine until i added GeForce g610 graphics card. After that when i try to connect to rdp it gives this error all the time and exits. I ran your script yesterday but still same problem. Please suggest.

    Connection Log
    connecting to sesman on 127.0.0.1:3350
    sesman connect ok
    sending login info to session manager. Please wait… login successful for user faiza on display 10 started connecting
    connection problem, giving up some problem
    Error connecting to user session

  14. hi

    trying to run your script

    got this error, tried to resolve it by inserting what it required, made no dent in fixing, so removed the fi

    xrdp-installer-1.4.8.sh: 171: Syntax error: “(” unexpected (expecting “fi”)
    what can this be?

    im on 23.10 ubuntu amd64

  15. @Ansari,

    Thank you for visiting our blog and providing some feedback.. So the script is not dealing with special video cards and especially nvidia cards… So, there might be additional settings for nvidia cards to make it work with xRDP. You can try to remove the nvidia card drivers and fallback to X.org nouveau drivers (using the gnome search type Additional Drivers). If this is not an option for you, there might be a script available that could be used to configure nvidia cards with xRDP…

    Hope this help
    Till next time

  16. @Desmond,

    Thank you for visiting our blog and providing some feedback. ok, this one is a weird one… So, I have download the script from the internet, unzip it and it run with no error and no complains…. Can you provide either a screenshot of the error so I can see more or less where it fails… Can you provide me the code you see between line 150 and 180 to see which code your system is complaining

    Hope this help
    Till next time
    See ya

Leave a Reply