Hello World ,
It has been some time since our latest posts. We are quite busy with some heavy projects and we couldn’t release as many posts as we wanted. But fear not, we are still active. As you probably know, Canonical has announced that Ubuntu 24.10 has been released and can be downloaded. Ubuntu 24.10 has been released on October 10, 2024. Since we are trying to follow the Ubuntu releases cycle, it is time for us to publish an updated version of our famous xrdp script.
In this post, we are releasing xrdp-installer version 1.5.2. This version includes some small improvements and tackle issues, findings and comments provided by our readers. We are still maintaining the xrdp-installer script even if Gnome Remote login feature is available and provide basic RDP support. 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.2) ?
Change Code to Check OS
We have modified the code that we use to detect the Operating System of the machine where the script is to be run. This change should be totally transparent for the users. However, since this is a code change, unexpected side effect might occur. So, if the code change is generating too many issues, we can still revert back to the old way. The new code help us maintaining the script more easily.
Adding -p switch as parameter
Adding -u switch as parameter
Fixing Linux Mint 22 detection session over ssh issue
Backward compatibility with xsessionrc to support “upgrade”
Pop!_OS 24.04 not supported (yet)
Removed Support Ubuntu 23.10
How to Use the Script
The xrdp-installer-1.5.2 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.2.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 24.04.x
- Ubuntu 24.10.x
- Debian 10
- Debian 11 (only if you select custom mode installation !!!)
- Debian 12
- Zorin OS
The xrdp-installer-1.5.2.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.2.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.2.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.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.5.2.sh
Note : Adjust the path where the xrdp-Installer-1.5.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.5.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.5.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) --dev or -d => will perform a custom installation using dev branch (unstable version) --unsupported or -u => will bypass the Check os and will run against unsupported os (use it at your own risk!!) --perm or -p => fix permissions on xrdp files (uncommon situation)
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.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….
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.2.sh -s (this would enable the sound redirection) ./xrdp-installer-1.5.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.5.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. 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.2.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.2.sh -c -s (this would perform a custom install and enable sound redirection) ./xrdp-installer-1.5.2.sh -c -l (this would perform a custom install and customize xrdp login screen) ./xrdp-installer-1.5.2.sh -c -l -s (this would perform a custom install, enable sound and customize login screen) ./xrdp-installer-1.5.2.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.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. 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.2.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.
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
Olá do Brasil.
Tem um erro na linha 363 onde
if [[ $codename = *”bullseye”* ]] && [[ -z “$adv” ]] then
#custom install performed – we can handle additional options
deve ser:
if [[ $codename = *”bullseye”* ]] && [[ -z “$adv” ]]
then
#custom install performed – we can handle additional options
@Marcos,
Thank you for visiting our blog and providing feedback. Indeed there was a mistake in the script. we have updated the script and the error should be corrected…
Obrigado 🙂
Till next time
See ya
Hey, got it to work with Elementary OS 7.1 Horus with a few minor tweaks. It’s working so far, so feel free to add this to the next version: https://gitlab.com/-/snippets/3760100
Hello,
Many thanks for this script, very useful and well done !
Is it normal that the port 3389 is not opened by your script ? I had to do it manually after running the script, because no connection was possible, but i saw some people say they were able just after running your script, so i do not know if there is an issue somewhere or nobody mention they have done that. Could be misleading to some people and worth mentioning it ?
@tetebueno
Thank you for visiting our blog and participating in the xrdp-installer script. When time permit, we will release a new version of the script including support for Elementary OS. Thank you for spending time in testing the script against another Distro flavor
Till next time
See ya
@Sam,
Thank you for visiting our blog and providing feedback. So, the firewall configuration is specific to each machine/usage. By default, Ubuntu ships with firewall disabled (sudo ufw status => answer should be inactive)
If Firewall has been enabled, then yes, indeed, you will need to configure the firewall and allow port 3389 (which is default). If the user has change the port for rdp, the newly configured port needs to be allowed as well in the firewall.
So we will see if we will include this check in the next release of the script
Till next time
See ya
Debian 12.7 Cinnamon not supported? 🙁
this script installs 0.9.17?, how do i install 0.10.2?
@matt,
Thank you for visiting our blog and providing some feedback. Based on your comment, we are assuming that you have performed a standard installation with the script. IF you want to have the latest version of xrdp installed, you have to perform the custom installation mode with the script. You have to pass the parameter -c (i.e. ./xrdp-installer-1.5.2.sh -c )
Hope this help
Till next time
See ya
@lonesomeWalker,
Thank you for visiting our blog and providing some feedback. Not sure if this is a question or a statement. So the script should support Debian operating system. The script is also detecting the Desktop interface in use. Since we are supporting Linux Mint, Cinnamon desktop should be fine as well..
We will give it a try with Debian 12.7 and Cinnamon and confirmt that the combination is working as expected
Hope this help
Till next time
See ya
@LoneSome Walker
Xrdp-isntaller-1.5.2 support debian 12.7 with cinnamon. We have double checked that and working fine
Till next time
See ya