Hello World,
A few weeks ago, we have released the latest version of our famous xrdp-installer script in order to include support for Ubuntu 24.04. The xrdp-installer-1.5 has introduced a certain number of changes in order to take into account changes in the new xRDP release package software. So far, the xrdp-installer-1.5 was set as a pre-release version since we were expecting some issues and behavior changes.
In this post, we are releasing xrdp-installer version 1.5.1. This version includes some small improvements and tackle issues, findings and comments provided by our readers. The main discovery here is that xRDP and the Gnome remote login feature (available in Gnome 46 – shipping with Ubuntu 24.04) might create some conflicts and cause some issues when trying to reconnect to the xrdp session.
We are still maintaining the xrdp-installer script even if Gnome Remote login feature is available and provide basic RDP support. Gnome 47 will introduce more features in the Gnome Remote login feature. In the mean time, our xrdp script can be used to overcome the existing limitation and can be used by people either preferring xrdp software and for people using distribution not gnome based.
so, let’s see what’s new 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.5.1) ?
Adding Support for Zorin OS (Best effort)
Some users have been requesting to add support for Zorin OS in our xrdp-installer script. In order to meet this request, we have decided to install and test the Zorin OS distribution. Since the distribution is Debian based, we are expecting that no major issues would show up. So, we have performed some basic tests with xrdp-installer and Zorin OS. We have not performed extensive tests but the results we obtained are good.
Based on these results, we have added support for Zorin OS in the script 1.5.1. So, yes, version 1.5.1 of the script can run against Zorin OS !
If you are a Zorin OS user, you can test the script and provide feedback but please note that we will provide support only on best effort model and we might not be able to provide immediate support or solution to possible issues you are encountering…
Cleanup script code
Fixing Custom Login screen Look’n feel (Quick Fix)
Disabling Gnome Remote Login & Changing Ports (Hiero’s Contribution)
Hiero (our number one contributor) has found out that xrdp and gnome remote login might conflict with each other and could generate some unexpected issues such as not being able to reconnect to your xRDP Session. To avoid this situation, the script will try to check if gnome remote login functionality is present or not. If it’s present, the script will change the ports used by the Gnome Remote login and Gnome Desktop Sharing. More specifically, the script will set these ports values when using the xrdp-installer script.
- Gnome Remote login Port : 3390
- Gnome Desktop Sharing Port : 3391
When you remove the xrdp package through the script using the -r switch, the default ports for Gnome Remote Login and Desktop Sharing are reset to default.
Change download location for sound redirection compilation (Pulse Server)
Quick Fix for Debian when xfce/mate/cinnamon desktop selected
Fixing rare black screen situation when using Ubuntu 24.04 and xRDP (Quick and Dirty fix)
Credits & Contributions
How to Use the Script
The xrdp-installer-1.5.1 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
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.5.1.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.10.x
- Ubuntu 24.04.x
- Debian 10
- Debian 11 (only if you select custom mode installation !!!)
- Debian 12
- Zorin OS
The xrdp-installer-1.5.1.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)
- LMDE (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.5.1.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.5.1.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.5.1.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.5.1.sh
Note : Adjust the path where the xrdp-Installer-1.5.1.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.5.1.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.5.1.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.5.1.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.5.1.sh -s (this would enable the sound redirection) ./xrdp-installer-1.5.1.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.5.1.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.5.1.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.5.1.sh -c -s (this would perform a custom install and enable sound redirection) ./xrdp-installer-1.5.1.sh -c -l (this would perform a custom install and customize xrdp login screen) ./xrdp-installer-1.5.1.sh -c -l -s (this would perform a custom install, enable sound and customize login screen) ./xrdp-installer-1.5.1.sh -c -d (this would perform a custom install, using unstable/dev version of xrdp packages -xrdp 0.10.80)
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.5.1.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.5.1.sh -r option)
- Reboot
- perform a new installation using your selected installation mode (standard or custom install mode)
- Reboot
Known issues, Fixed Issues and limitations, New Behavior
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….
Ubuntu 24.04 seems to have introduced a small change when such situation would happen. If the user is remotely logged on via xRDP software and if the same user tries to login locally, he will be presented with the following popup (see screenshot)
Click on Picture for better Resolution
The only problem is that if you click Force Stop button, it seems not to work. The remote session is not killed. We have not tried this on older Ubuntu releases but I think this is because of the gnome-remote-login addition in Gnome 46.
If a user is logged on locally and if the same user tries to perform a remote connection to the machine, the user will get informed about an existing session already running as shown in the screenshot below
Click on Picture for better Resolution
Again, here there is no way to stop the existing session. You will need to logout locally from the session or you will need to find other ways (such as ssh or another user account) that can be used to disconnect the existing session.
Clipboard bug in xRDP 0.9.24.x and later
It has been confirmed that there is a small bug in the xrdp clipboard feature in xrdp version 0.9.24.x and later. In a nutshell, when you try to copy an image from windows to your xRDP remote session in Libre Office application, nothing is inserted. The xRDP Team is looking into this issue right now and we have to wait for a fix that will be shipped in the next release or possibly in the dev branch version.
The problem is not related to the xrdp-installer script but we wanted to raise awareness about this issue
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 latest stable release version. 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.
Till next time
See ya
Dear Griffon,
I’d like to thank you for such an elegant, convenient, incredibly useful piece of software! I’ve started with v. 1.4.2 on a Pop!_OS 22.04 LTS machine, then updated to 1.4.7 and finally 1.5.1. It works like a charm, though I haven’t yet tested sound because I don’t need it.
Cheers,
Andrea
Cia Andrea,
Thank you for visiting our blog and providing useful feedback. We are still trying to improve the script and include more and more OS or feature in it. Happy to see that the script is working as expected for you
Till next time
See ya
Any plans to do a version for RHEL 8/9?
Works great in linux mint (Wilma). PulseAudio (on PipeWire 1.0.5)
Would be great if yo can add KDE NEON to the list of supported OS’es
(neofetch )OS: KDE neon 6.0 x86_64
(host -V) host 9.18.28-0ubuntu0.22.04.1-Ubuntu
kind regards,
Henk
Oh to add to the testing I did install xrdp with this script also on Debian 12 arm64 on my raspberry pi’s. But I think sound is a bit too much for the processor? The left channnel gives a bit of crackling noise. On one it is running the 0.10.0 version. (host -V) host 9.18.28-1~deb12u2-Debian.
Been using your stuff for years. It actually helped me 4 years ago identify to the XRDP community a group permissions inheritance problem. When you logged into SSH and compared the results of the `id` command in an XRDP terminal they were not the same.
New issue now wondering if you have run into this. I have to add users to the video group to use Webcams over XRDP. In the release with Ubuntu 22.04 this causes the XRDP session to crash once a user logs in. We are using Xorg only because in 22.04 Xvnc has issues. I have not filed this yet with the XRDP community. Wondering if you have run into this?
Also wondering if you have found a way to get Xvnc to work in UB22.04 with XRDP? Thanks.
@Jesse,
Thank you for visiting our blog and providing some feedback. We have started looking into Fedora distribution. We do not know if or when the script would be including support for such distribution
We working on it but we are short in time for the moment…
Till next time
See ya
@Henk,
Thank you for your feedback. As more and more people are asking to support additional OS, we are looking into this one as well but it takes time. We might come up with a different approach in the next releases
Keep in touch
Till next time
See ya
@Henk;
Thank you for the feedback…we will check this one as well..Again raspberry not really in the supported flavors but we are looking into this
till next time
See ya
@Jonathan,
Thank you for visiting our blog and sharing your findings… we have never encountered this issue but we are not really using webcam in our infrastructure.
xRDP is normally using the xorgxrdp software as backend server solution and xvnc should not be used anymore. We are following the xrdp team recommendations and we moved away from xvnc
Hope this help
Till next time
See ya
Excellent work. Thank you so much for developing and maintaining this script.
Today I used it for a linux container (Incus) running Debian w/ Cinnamon installed after creation. I needed to modify the script in order to use it. In particular, the script (correctly) reads the `/usr/share/xsessions` file to return three options: 1) cinnamon2d; 2) cinnamon; and, 3) lightdm-xsession.
Unfortunately, the next section (the `case $menu in` portion) lists the cinnamon options as `cinnamon2d` and `cinnamon2`. Plain `cinnamon` isn’t an option. As a result, the script exits.
It worked as expected when I changed the `cinnamon2` option to `cinnamon`.
Just tried this version of the script on a vanilla install of Ubuntu 24.04 LTS. After the ubuntu installer finished, I downloaded your script and ran it.
However, when mstsc connects, and I enter the username and password, the session is ended abruptly.
Locally the user is not logged in.
Any help would be appreciated — if you can point me to some log file locations I’d be happy to quote it here…
@eunosm3,
Thank you for the feedback and for visiting our blog… we can confirm the issue… we will update the script in order to handle this specific situation
Again thank you for letting us know
Till next time
See ya
@Balazs,
Thank you for your feedback and visiting our blog… Ok for the logs, you can find them under /var/log/xrdp-sesman.log and /var/log/xrdp.log…
How did you performed the installation ? From the GUI or from SSH ?
HAve you restarted the machine and tried again ?
can you ensure that xorgxrdp package is indeed installed ?
When you ran the script, any error displayed on the screen ?
Hope this help
Till next time
See ya
Hallo all,
I have a fresh install of Ubuntu Mate 24.04 on my laptop.
I only added the pulseaudio sound system (Mate is still on Alsa, I guess).
Then I ran the script locally with option -s and -l.
Everything ran just fine so I connect via Win10 Remote Desktop app.
I got the black screen, after login saying that I am still logged in. Which I was …
I logged out, but still no success. Even after restarting all and everything.
I then began to investigate /etc/xrdp and found two files named
xrdp.ini.griffon and startwm.sh.griffon.
So I decided to give it a shot and made those two files the actual ones.
Reboot and did not log in but started a remote session which came up fine.
I logged out of it and logged in locally. Works fine.
So far I did not manage to transfer sound via xrdp sink and source device.
pavucontrol tells me sound is running, but I hear nothing.
Locally everything is fine.
I also tried the workarounds for login in parallel using the workaround 2 and 3 but did not succeed.
These are my findings up to now. I would say I am 90% where I wanted to be.
Pulseaudio seems to be a beast as well because it seems to stop working randomly after session
changes from local to remote and vice versa.
Thank you for your good work !
Hi! I have installed xrdp in a Kubuntu 24.04 container on Proxmox 8.2.
Is there a way to make it autologin in order to startup some GUI programs and when I connect from outside to enter that specific session?
Thank you so much!
this is possible to make resolution 2560×1440 and create second virtual display, if yes please say how
@Murrie;
thank you for visiting our blog and sharing your ideas… I have no clue is this is possible.. I think this is possible to get higher resolution when using xRDP… I have used it against DPI screens and it worked.
I do not understand the the second virtual display question… Do you have 2 monitors and you want to have xRDP presenting both of them ? is this what you are looking for ? I have never tried or tested that with xRDP…
we will need to check for this
Till next time
See ya
@Marius,
thank you for visiting our blog and providing some feedback. with xRDP, if you start a remote session and you disconnect from it, you should be able to reconnect to the same session. in the past, it was the case but some people reported that it s not always working as expected. If you are logged on locally, and you want to connect to that console session => this is not possible with xRDP.
hmm for the credentials; there was a way to pass credentials via the /etc/xrdp.ini file…maybe this can solve your issue.
xrdp.ini file has changed with time and maybe there is another option available… need to check
Hope this help
Till next time
See ya
@Frank,
thank you for the visiting our blog and providing feedback.. We will see what could be the problem for the black screen issue. some other users have reported the same behavior on Kubuntu 24.04.
The script 1.5.1 use the latest version of xrdp and they have introduced some changes. We are using a specific file now that run at startup in order to detect the desktop used…
we will start digging 🙂
till next time
see you
Hi Griffon,
I see that the xrdp-installer-1.5.1.sh script can be run against the Pop!_OS 22.04, what about Pop!_OS 24.04?
As you might know Pop!_OS 24.04 is no longer using Gnome but Cosmic (libcosmic).
Have you, or do you have any plans to look at this?
@Joachim,
Thank for visiting our blog and providing some insights. yes, we are aware that Pop!_os 24.04 will be using a brand new desktop called COSMIC. This release is still in alpha stage and we are not expecting a final release before next year. However, when time permits, we will definitely give it a try and see if xRDP is still working or not.
Hope this answer your question
Till next time
See ya
Using Ubuntu 24.04 have been having issues with single login black screen issue. Only solution that was reliable to fix was to use the “-c” option and have script build from source to take me to current release v0.10.1.
xRDP has undergone significant update in the recent past. They are only doing bug fixes to the previous edition (v0.9.x) The Ubuntu/Canonical repo version v0.9.24 appears to not play well with Ubuntu 24.04.
TL;DR – To fix black screen in 24.04 use script to build from xRDP source (“-c” option). This script ROCKS!
@Kizan,
Thank you for the feedback and visiting our blog. Indeed, a lot of changes have been introduced with the latest xrdp package. So, we are trying to catch up and keep the script up to date. We are preparing a new version of the script which will introduce some minor changes but should tackle some issues detected
Thank you
Till next time
See ya
Griffon,
I was a bit premature on my joy. With the newest version of xRDP was get the black screen LESS often. However it still happens. At the moment we are chasing down why. It appears to be related to the thinclient drivers in some way. I’ll report back if we come up with a 100% fix. At this moment it hits about 20% of the time and only during initial login. Once the user gets past the actual login process (and is just reconnecting) it’s fine.
Flawless – many thanks.
I did an in place upgrade from 22.04 LTS to 24.04 LTS upgrade and ofc rdp stopped working. A reddit user linked to the old script and thank god a new version was available..
Regards
Sjoerd
Great script, even though I had some problem.
Cause was, that xdg-user-dirs was NOT installed which led to strange error messages not finding directories.
After “apt install xdg-user-dirs” everthing works fine.
Maybe you improve the script to check for existance of this package and install it if missing or give an decent error message, that the users should install it.
I installed it in kubuntu 24.04. The strange thing is, that audio is working but no sound devices are visible in the GUI. In Ubuntu I can see the sound devices.
Environment:
Clean 24.04 server where only the following things had been run:
apt update, apt upgrade, install gnome-session and gnome-tweaks.
1.5.1 script run resulted in clean output except
[17:13:52:328] [18083:000046a3] [ERROR][com.freerdp.crypto] – [x509_utils_from_pem]: BIO_new failed for certificate
RDP server certificate is invalid.
[17:13:52:463] [18101:000046b5] [ERROR][com.freerdp.crypto] – [x509_utils_from_pem]: BIO_new failed for certificate
RDP server certificate is invalid.
Whether related or not, when I try to connect on either port 3390 (Remote) or 3391(Sharing), it never makes the connection.
UFW is not running
and
Firewall rules have been written (in Azure) to allow for connections on these ports.
Any thoughts?
Thanks!
Jon
@Carsten,
Thank you for visiting our blog and providing feedback. So, the xdg-user-dirs package should be present by default. Do not know why this is happening. Which version of Ubuntu are you running. Flavor + version number
We will try to have a look at it
Till next time
See ya
@Carsten,
Have you rebooted the machine and checked again… So, normally; you should see a xrdp-sink object in the Audio Properties.
We are not really working a lot with Kubuntu but we will have a look and investigate.. If something needs to be changed, we will. But so far, our understanding is that the functionality is working as expected
Till next time
See ya
@Jon,
Thank you for visiting our blog and providing some feedback. So, if we look at the error, it looks like that you have gnome remote desktop enabled on your system. Can you check that the gnome rdp feature is not enabled and then try again the connection ?
The script should disable that but we have found a small issue and we will provide a fix in the next release due in October 2024
waiting for your feedback
Hope this help
Till next time