How to enable remote Desktop on Raspberry Pi

The Raspberry Pi is a great Multi Purpose mini Linux based computer you can use for almost anything. It can be used to create fun side projects.  The Raspberry Pi Model B+ 2 and 3 have HDMI Port to enable connecting your PI to any display which supports HDMI connectivity.

The Raspberry PI Model B+ 4 expands on this and now comes equipped with 2 × micro-HDMI ports (up to 4kp60 supported) with which you quite easily connect your Raspberry PI to dual 4k Monitors!

This is really cool, but personally I like to configure my PI’s to boot directly into CLI and make use of them as a headless server. Typically accessing them making use of SSH or by using shared folders.

In this post I will guide you through on how to configure your PI to enable you to access it making Remote Desktop Protocol (RDP). Remote Desktop Protocol is a proprietary protocol developed by Microsoft, which provides a user with a graphical interface to connect to another computer over a network connection.

The cool thing is you can still make use of RDP to connect to your PI from a Linux or Mac. Personally I predominantly use either my System 76 Darter Pro or my Viglen Desktop computer as my main software development workstations but I have a server with ProxMox with a few Windows 10 environments configured.

I have a few Raspberry Pi’s scattered around the house performing various tasks, such as a Minecraft server for the kids and a few experimental Smart Home side projects.

These Pi’s generally not connected to a display and occassionally I may need to RDP onto them to perform the add task.

Equipment used in this tutorial

Prepare Raspberry Pi for Remote Desktop

Raspbian generally comes prepackaged with with RealVNC for remote connections, the problem is that RealVNC does not really work that well in headless mode, primarily because I have found that it degrades to a very low resolution. So I prefer to make use of xrdp which automatically automatically scales to your desktop resolution and generally provides a better experience.

In order to install xrdp we will first need to install tightvncserver package, which will also subsequently uninstall RealVNC.

In order to install tightvncserver simply run the following command from a terminal window or via ssh

Shell

Once that is complete we can then install xrdp

Shell

We also need to install Samba so we can access the Raspberry Pi via a hostname. If you have previously followed the instructions on How to configure a network shared folder on raspberry pi or have previously installed Samba you can skip this step.

Shell

Connect to Raspberry PI via RDP with Ubuntu

Ubuntu typically come prepacked with Remmina, a free remote desktop client for POSIX-based computer operating systems

.The Remmina supports:

  • RDP
  • VNC
  • NX
  • XDMCP
  • SPICE
  • SSH

its really easy to connect to your Raspberry PI with Remmina, in my case I just enter the IP address of the PI use the default username and the password I configured.

I also select the custom resolution I want to use then connect

Once the PI is connected I get the Desktop and I can then use the PI as normal

Connect to Raspberry PI using RDP and windows

When using windows there is one additional step. The first is open the Remote Desktop Connection tool. You can typically find this by hitting the Windows Key and type “remote desktop connection” which will bring up the Remote Desktop Program

We can click connect, then another window will open which we will have to provide our username and password again and click OK

We will then connect to our Pi Desktop

Summary

Using this approach you no longer need keep your pi connected to your Monitor or TV. You can disconnect your PI from Monitors and Keyboards and you’re able to access via SSH or Remote Desktop whenever you need to.

Gary Woodfine

Technical Director at Denizon
Gary is Technical Director at Denizon, an independent software vendor specialising in IoT, Field Service and associated managed services,enabling customers to be efficient, productive, secure and scalable in a way which helps them address and reduce their ecological impact.

Denizon's product line successfully integrate IoT, Artificial Intelligence and Blockchain technology to enable efficient, productive, secure and scalable solutions to help organisations address increasing energy demands, ecological impact and Health & Safety concerns of their staff.

Latest posts by Gary Woodfine (see all)