RPiTC2 official documentation

0. Hardware and Software needed
1. RPiTC2 Download and Install
1a. RPiTC Builder
2. Main desktop explanation
3. Basic Settings (Network, appaerance, auto-statup, password)
4. Advanced and Very Advanced Settings
5. Create you own RPiTC2 OS
6. About

0. Hardware and Software needed
RPiTC2 (or Raspberry Pi ThinClient project 2) is based on the ARM board Raspberry Pi 2 ( This OS will work only for this board type, dont try to use in other ARM board/computer/notebook, special settings must be mede to be adapted to and for other board.
RPiTC2 specifically need:
- a Raspberry Pi 2 board :)
- a microSD with at least 1900Mb free (after format operation!)
- a (good)power supply microusb 5V 2A (a bit of overclock is made by default, a solid power supply is higly suggested)
- winrar or unrar to extract the image archive (zip archive is also available)
- dd or win32imager ( to write image on sdcard

1. RPiTC2 Download and Install
Download RPiTC2 OS from the Download! page. Download size is circa 450Mb (540Mb for zip archive). After, extract the downloaded image with RAR and write it to your microSD card with:
Linux: dd if=RPiTC2....img of=/dev/pathtosd bs=4M
Windows: with win32imager (
Mac osx:

1a. RPiTC Builder
Is a simple gui to install, remove and configure your RPiTC OS. Default OS come with: Iceweasel, SSH Server, VNC Server, Docky and Conky.

How To use the RPiTC Builder:
install/remove software/services by enabling or disabling the corrisponding checkbox. RPiTC Builder have 5 pages:
- Main TC (Citrix ICA, VMWare Horizon, NoMachine, 2X, Thinlinc, Iceweasel)
- Other TC (x2go, spice, x3270, tn5250, Xephyr)
- RDP (RDesktop, xFreeRDP, xFreeRDP GIT, dFreeRDP)
- Services (CUPS, VNCServer, SSH Server, Conky, Docky, VirtualHere USB Server, VPNc, OpenVPN, Openconnect)
- Other/custom (add/remove overclock config, add/remove apt-get commands, add new custom service/software)

after selecting the softwares/services click on Bash me! button. A new window will show with the commands needed to update/remove the selected softwares/services.

Now click on "Open Xterm" and from this window execute: ./ For more verbose output run: bash -x ./
Also you can send and execute the builded install script to a remote client with:
sshpass -p "mypassword" ssh -o StrictHostKeyChecking=no -p 22 root@remoteClient 'bash -s' < /opt/
where "mypassword" is the remote client root password, "remoteClient" is the IPaddress or the FQN of the remote client.

When the script end reboot the system.

2. Main desktop explanation
The main desktop is quite simple:

on top right you have the date/time/info plugins (->Conky)
on left the applications menu, on the right side (hidden) the settings menu (->Docky)
when you click the right mouse botton over the desktop a drop menu appears (->Main menu)

3. Basic Settings (Network, appaerance, auto-statup, password)
Almost all the settings can be made by using the right Docky menu and the Main menu:
In the Docky right menu settings you can change the:
- WiFi settings
- Network settings (with VPN/WiFi support)
- Main menu applications list
- Docky settings

In the Main menu (right click on desktop) you can find under settings various utilities:

The application startup window is the most important of all and is accessible via Settings gui:

here you can enable, disable, create or modify all the services that automatically start on boot. There is two special script we have created:
Keem me up! is useful when you need to autostart an application on boot and keep it up also if the user kill it by clicking the x icon or crashing etc
The syntax of the command is: /opt/scripts/ /path/to/script/binary.bin
For example for the Citrix Client:

Autostart is like Keep me up! but without the keep up function, so just autostart on boot
The syntax of the command is: /opt/scripts/ /usr/share/applications/XYZ.desktop (where XYZ.desktop is the desktop file descriptor for the application. Ex: /opt/scripts/ /usr/share/applications/dFreeRDP.desktop)
For example for the Citrix Client:

Default system password are:
user: rpitc/raspberry
user: root/raspberry
vnc: raspberry

4. Advanced and Very Advanced Settings
You can also specify some advanced parameters in the Main menu - > RPi-TC Config submenu:

dFreeRDP, xFreeRDP, RDesktop and Xephyr havent a Gui interface and normally you have to start it by command line (not so practical for end-user!). For this reason there is a special configuration for that.
In the menu you can edit the server config and the advanced parameter for every client (dFreeRDP, xFreeRDP, RDesktop and Xephyr). In the server config you have to write your remote server IP or name (if you leave it empty a question box will appear asking the user to insert the server ip/name), in teh advanced config you can specify some advanced command line parameters needed by the client. Refere to the relatives creator manuals to understand which advanced parameters you need (if you leave it empty a standard set of parameters will be used for every applications).

Here a list of some advanced function/setting that can be useful to change/check:
- NTP time sync: NTP server is specify in the autostart script of Conky under Settings -> Session and Startup
- config files for dFreeRDP, xFreeRDP, RDesktop and Xephyr are in the /opt/config/ folder
- all the gui like script (VNCServer password chooser, Sound output chooser, autostart, keepmeup, dfreerdp, xfreerdp, rdesktop and more) are located in /opt/scripts/ folder
- boot video intro service can be found here: /etc/systemd/system/rpitcvs.service .Boot video file is located here: /opt/graphics (in the same folder you can find the desktop wallpaper)
- hostname service can be found here: /etc/systemd/system/rpitchn.service
- application autostart folder locations: /etc/xdg/autostart/ and /home/rpitc/.config/autostart
- docky applications locations: /home/rpitc/.local/share/applications and /usr/share/applications/
- Conky settings file: /home/rpitc/.conkyrc
- Like old versions, there is also an admin mode: press shift+k while booting, when asked for a password write: LOL .Admin mode and relative passowrd/key settings can be changed by editing the /root/.bashrc file.

Please note, by default some services are enabled: ctxusbd (citrix client usb redirection service), vmwareusbd (vmware client usb redirection service) and openvpn. If you dont need it, disable it by exec as a root on a terminal:
systemctl disable servicename.service
where servicename.service can be: ctxusbd.service, vmwareusbd.service or openvpn.service

5. Create you own RPiTC2 OS
Creation of your own customized image of RPiTC2 OS is quite easy. Simply configure the standard RPiTC2 image with your own configuration and customization (TC connections, autostart, wallpaper, intro video etc) then power off your board, remove the microsd card and plug it in a Linux machine (also on a virtual machine). On the Linux machine open a terminal and with fdisk or df locate the mount point of the microsd card and the devices, for example:
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        39G  5.3G   32G  15% /
/dev/mmcblk0p1       64M  15M  49M  24% /media/gibbio/BOOT
/dev/mmcblk0p2       1.8G  1.2G  448M  74% /media/gibbio/RPi-TC

umount /media/gibbio/BOOT
umount /media/gibbio/RPi-TC

then create a image file of the microsd card:
dd if=/dev/mmcblk0 of=/opt/img.img bs=1M count=2000

The /opt/img.img is your custom image! You can write it on other microsd card and use it with your own customizations.

6. About
If you like this software, donate!


  1. Greetings,

    I know it's a beta, is there any chance to get wi-fi going please?

    Keep it up!
    Best wishes,

    1. In the release version wifi is wonrking!

    2. I am running a Raspberry Pi 2 Model B 1GB with a CanaKit ( Wifi dongle and it does not seem to work. When I run ifconfig, I just see eth0 (the wired adapter) and lo (the loopback adapter). What Wifi dongle are you using?

    3. I have the same problem Roger has, any idea how to fix it?

    4. I have wifi problem too! any help?

  2. Thanks a million Gibbio :)

  3. Replies
    1. Count me in this category as well: the project will no longer run on a B+ board? Especially in light of a) that new $10 discount, and b) the installed base of B/B+ boards, that seems a bit... shortsighted?

  4. i´m using a hdmi to vga converter, has anyone having problem with the screen resolution ?
    It seems that it ignores my input in config.txt file:

    hdmi_mode=16 1024x768 60Hz

    And Vmware View client has a terrible resolution and i cannot change.


    1. I had to force :


      in the confix.txt file in order to work

    2. how you can edit the config txt?
      in windows the sd doesn't appear

  5. How to disable overclocking due to stability problems ?

  6. how to enable smartcard usb lector to use smartcard into a xfreerdp on windows server 2012?

  7. Thank-you for the above great work. Attempting to download the image from the Download page, it always fail with an Error 110 (Connection Timeout). Is there a mirror site, torrent, or perhaps a google drive we may use to download this promising image file?

  8. How do I place a icon on desktop? I have tried to put a file into home/rpitc/Desktop/ still not working.

  9. Waht's the username and password for first Login????? >> pi and raspberry dosen't work!

  10. Hello, the system work very well for citrix for our 3d designers but i have a question:
    I try to use a 3dconnection space navigator mouse where can i found the drivers for this ?

  11. How to remove the Citrix Receiver application form the system?

  12. Hi, can you please send the download link for "VMWare Horizon Client 3.4.0" package you have used?

  13. Did anyone figure out the CanaKit wifi dongle issue?

  14. How do I rename it? I changed the hostname file but it still seems to be registered with the old name on DNS. Do I just need to wait for the DNS/DHCP to refresh?
    Thanks, Duncan

  15. very good,thank you very much if i had visa cart i donate !so i see some bug in this os. sometimes it's cannot recognize Ethernet and the connection lost,and sometimes is click on some app and don't run.

  16. This is terrific, thanks very much to the developers. Wifi was my biggest headache (still might be). Had to dig around to find a "non-free" repository that had a version of my ralink firmware that kept a stable connection. (There's plenty of info around on how to find out what firmware your dongle requires). Found that version 12 from squeeze did the trick (for now). Other issue was the passphrase in network connections - don't just put in your passphrase as you would any other device - you need its hexed cousin. Open up terminal and type wpa_passphrase "Your SSID" "Your passphrase". That'll return a few lines - copy the string after psk and paste that into network connections. I also setup two wifi connections in network connections - but not sure if that's why its working - but I'm not touching it while it is.... Also had to follow simple instructions here to remove "Dynamic Module '' could not be loaded (null)" error when launching a citrix session.

  17. se podria implementar el openxenmanager en futuras versiones?
    gran trabajo !!

    1. Hola, pudiste poner a funcionar el dfreerdp ? es el unico que no me funciona. Los demas andan muy bien pero lentos con la respuesta de video. Saludos.

  18. How i can switch WiFi Netzworks manual,
    how i can connect a VPN manual?

  19. how to autorun openweasel at boot?

  20. I can not start the Citrix Receiver!
    When I click on the receiver Icon on the left nothing happens.
    I tried to start manually via console it tells that the EULA are rejected/not accepted.
    So what can I do, please?

    1. you need to write your own, i had the same issue, do
      nano /opt/Citrix/ICAClient/nls/en/eula.txt
      write your own, then when you launch it, it will come up with the eula you wrote, saying accept or cancel

  21. Regarding the different RDP server configs. You write that:
    "if you leave it empty a question box will appear asking the user to insert the server ip/name"

    What happens is that after first connection, the RDP-server is then added to the config. In my case I would like to ALWAYS be asked which server I would like to connect to. Isn't there a way to get that working?

    Still - Keep up the good work.
    Best regards

    1. Its possible. You have to modify the /opt/scripts/ script and delete or comment out the line:
      echo $server > /opt/config/xfreerdp.server

    2. Great, that worked as it should - thnx

  22. i'm facing the following problems with freerdp:

    xfreerdp works fine, but the performance is slow, the fps is low
    xfreerdp_git works better, but the clipboard does not working, is there any update package i can find to compile myself?
    dfreerdp not works at all, when i launch the dfreerdp , the remote desktop screen just showed for 1 sec, then the thin client background show up again , covering the rdp screen, i cannot control the dfreerdp at all.

    please help


    1. This comment has been removed by the author.

    2. Hello, I also missed the dfreerdp. I have not been able to make it work yet. Could you get a solution? Greetings and thanks.

  23. Hello everyone , I have a raspberry pi model b 2 , with installed please on the version 1.99 of the software.

    But I can not start the RDP software, whether xfreerdp that rdesktop .

    I saw a video in which inserting a string into the terminal ... the application was leaving ...

    Can you help me how do I configure the rdp session?

    Thank you

  24. Hi,

    thx for your work, but i have a porblem with citrix reciever.
    Always when i try to start a application i get this error.
    Loading BCM init
    ungültiger maschinenbefehl

    My device is a Raspberry2. I have try to download the ica and star it in the termnial. The above error was the result. When i try direct from reciever nothing is happend.

    thx for you help

  25. Is there a way to disable the configuration window or uninstall it after it is configured. I am working on a Kiosk setup and don't want the users to change anything. We use VMware and I have configured it all and keep alive running however I don't want them to mess up anything.

    Also your forum site is down.


  26. well, i've try to use the alpha release on my raspi 3... everything is fine, but:
    - i am unable to disable the auto-login (it just hang up at the splash screen)
    - the citrix receiver does not open any .ica (why i don't know, i just see the loading-cycle and nothing happends)

    any advise would be nice, meanwhile i will continue testing...

  27. Hey Gibbio

    Absolutely love your work. Have tested on Raspberry Pi 2 with Horizon Client 3.5 and it works great. Looking forward to 2.00. Will you be working some more on this to support Horizon client 4.0?

  28. I get no connection either. Loading-bar shows, then disappears, but no desktop shows.

    Can find no solution. Anyone a idea?

  29. Found solution in the forum:

    Downgrade to official Critic package 13.2, follow instructions in last post of the forum.
    Upgrade Critic to 13.4.

    Do not install H264, this causes the problem for now. I only don't know why.

  30. Hello, install the software without problems, and opened an RDP session with a windows 10, worked with rdesktop, xfreerdp and xfreerdp_GIT. But it does not work with the dfreerdp, it does nothing, can you give me a suggestion to get it to work?

  31. We are interested to your project.

    Do the ovirt client run ?

    Can we try it ?

  32. good morning! wow, thanks for all the work you've done!
    I have a question:
    How can I make a IMG file, and use it "maybe" in a tftp connection, for a network boot,
    how can this solution, be used in a schooling, in a central management. For Example: pi-net


Note: Only a member of this blog may post a comment.