This tutorial creates a Raspberry Pi, a low cost single board computer, which can be used as a thin client that works with RDP, VMWare View, Citrix, OpenNX, and Spice. The base image for the OS is based on Debian.
Part I: Installation
This section will outline steps on how to install the RPi Thin Client image to a microSD card from which the Raspberry Pi will boot.
- At least 2GB MicroSD card
- Raspberry Pi 2 B+ or newer model
- Monitor with HDMI port, USB keyboard and mouse
- From you PC, download the RPiTC debian image from the official website.
Download page here: http://rpitc.blogspot.com/p/download.html
Base image used here is: http://dl.armtc.net/RPi-TC/RPiTCv3_1.12.img.zip
- Unzip this archive so you’ll be left with the file named RPiTCv3_1.12.img.
- If you are using windows PC, you’ll need Win32Disk imager utility to write this image to the SD card.
Download here: http://sourceforge.net/projects/win32diskimager/files/latest/download
Usage here: http://www.raspberry-projects.com/pi/pi-operating-systems/win32diskimager
- If you are using Linux, you can use the “dd” utility to write the image to the SD card. Use the following command: (assume /dev/sdb is the microSD card device).
# dd if=/path/to/RPiTCv3_1.12.img of=/dev/sdb bs=1M status=progress
- After writing the image to the SD card, insert the SD card to the Raspberry Pi and plug in the power supply.
- You should be presented with the RPiTC desktop and the RPiTC Builder utility on startup.
Part II: Basic setup as RDP Client
Once the OS is booted up, this section will setup the RDP client for the Raspberry Pi. On startup, you will be presented with the RPiTC Builder in which you will choose the packages/services you want to start.
- On the Main TC Packages tab, uncheck everything (to remove the firefox browser).
**Note: if you want to setup the thin client with other services, you may check them here.
- On the RDP Packages tab, check RDesktop, uncheck all others.
- On the Other TC Packages tab, check X2Go Client, uncheck others.
- On the OS services, check VNC Server and SSH Server, uncheck all others.
- Leave the other tabs as default.
- Click “Bash Me!” to open a terminal that will open a window to show you your bash commands.
- Now Click Open Xterm button to open the terminal on /opt. On this path, run ./bashme.sh command script to apply your changes. Wait for it to finish before closing the terminal.
- Reboot (use Alt+F4 to show the buttons) the Raspberry Pi to save the changes. Now you should see the desktop again and the RPiTC builder.
- To disable RPiTC Builder on startup, right-click on the desktop > Session and Startup. Go to Application Autostart tab and uncheck the RPiTC entry to disable it.
- Next, we need to add X2Go Client on the startup, so click Add and input
Description: x2goclient on startup
Command: /usr/bin/x2goclient –maximize
- Click OK to save changes and be sure that the new entry is checked. Close the Session and Startup window.
- You can reboot the Pi again now.
Part III: Lockdown settings
We need to lockdown the interface so that only the RDP client is open at any given time and we’ll disable the desktop click to prevent terminal access.
- To improve performance we need to disable window compositor. Right-click on the desktop and select Settings > Window Manager Tweaks.
- On the Compositor Tab, uncheck “Enable display compositing”. Close the window afterwards.
- To remove the window buttons, go to Settings > Window Manager. On the Style tab, you’ll see the button layout. Drag all the buttons (maximize, close etc.) to the “Hidden” Section. You can close this dialog box afterwards.
- Next we need to make remove keyboard shortcuts exposed to the system. Go to Settings > Keyboard. On the Application Shortcuts tab, remove all entries except the Alt+F2, Alt+F3 and Super+P shortcuts.
- Add a new Shortcut for shutdown/reboot/logout menu. Click Add, and input xfce4-session-logout on the Command box. Click OK and you will be asked to bind a key shortcut. Press Ctrl+Alt+S to bind the key combination. Close the window afterwards.
- Next we need to make sure that X2Go Client starts even when the user force closes it. We can write a script for this. Right-click on the Desktop and open a terminal. On the /home/rpitc folder, run the following to create an x2go.sh script:
cat << EOF >> x2go.sh #!/bin/bash while true; do if ps -ef | grep x2goclient$; then sleep 1 else /usr/bin/x2goclient --maximize fi; done EOF
- Mark the script as executable: chmod +x x2go.sh
- Next we need to add this script on startup, so Right Click on the desktop > Settings > Session and Startup. On the Application Autostart tab, click Add.
- Add the details for the script:
Description: x2goclient respawn
- Click OK and make sure the entry is checked. Close the window to save it. Reboot and try to test it. **If you experience multiple x2go windows on startup, try to disable the startup entry you made on the previous section.
**NOTE: The last part is disabling the Right-click Menu. Be sure that your other changes are working as expected. You won’t be able to access the right-click menu after this.
- Right-click on the desktop, Settings > Desktop. On the Menus tab, uncheck the “Include applications menu on desktop right click”.
- Click on the Icons tab, select “Minimized application icons” on the Icon Type section. Close the window afterwards.
- Reboot and you should now see x2goclient on startup and process re-spawns when closed. There should also no options on right-click on the desktop.
- You will be able to choose shutdown and reboot the system using the key combination Ctrl+Alt+S.
4 thoughts on “Raspberry Pi Thin Client”
Very nice article and solution! Just one thing:
“Add a new Shortcut for shutdown/reboot/logout menu. Click Add, and input xfce4-session-logout on the Command box. Click OK and you will be asked to bind a key shortcut. Press Ctrl+Alt+S to bind the key combination. Close the window afterwards.”
where to “Add” this? I don’t see an “add” button on the window keyboard shortcuts
There is a plus (+) sign that acts as Add button.
Is this RDP or is it thin client?
Raspberry Pi acts as a thin client, uses the RDP protocol to connect to remote windows PC.