Muhammad @Citrix initially created a proof of concept of the Citrix Receiver for Linux for the Raspberry Pi, it sparked a lot of interest as can be seen on the comments on the blog series he posted (Part 1, Part 2, Part 3). The idea of having a Raspberry Pi out performing many of the existing (and more expensive) thin clients at an amazingly. Dec 12, 2019 Citrix Workspace supports fullscreen over dual screens layouts and so does the Raspberry Pi. Unfortunately the default window manager Openbox lacks the correct hints for the Citrix Workspace App. The only way around it is to us a different window manager.
Hey, so I thought I would just create a post on how to create a cheap Thin Client like device which can be used to access Citrix remotely. The latest version of Citrix Workspace App ( previously known as receiver / ica client ) for Linux now contains HDX for Microsoft Teams but does require a couple of dependencies.
Prep the Pi
I have tested this on both the Raspberry Pi 3 and 4 which both worked well. First, we need to do is head over to https://www.raspberrypi.org/downloads/raspberry-pi-os/ and download the desktop image.
Once downloaded, unzip and write to the MicroSD Card with your favourite tool, alternative see the instructions at https://www.raspberrypi.org/documentation/installation/installing-images/ for a guide on how to do it.
Next, we need to boot your new Raspberry Pi OS installation and run through the setup process. Ensure you install the latest updates and reboot as part of the wizzard!!
Once rebooted we will now need to install some bits to get the HDX, WebCam and SaaS working nicely with Citrix. Firstly open the terminal using the shortcut on the taskbar at the top of the screen.
Next, we need to use the package manager to install the required packages.
Download Citrix
Unfortunately due to Citrix's licensing structure, you will not find it in the software centre or via apt. They also make it hard to link directly to packages so we will have to do download the packages manually
Go to https://www.citrix.com/en-gb/downloads/workspace-app/linux/workspace-app-for-linux-latest.html and look for 'Debian packages' under Available Downloads.
Under here select 'Web Packages Only'
And then locate the 'Citrix Workspace app for Linux Web Client (ARM HF)' and click Download file.
Optional - USB Support
If you want USB support then under 'USB Packages' download the ARM HF version as above.
Install Citrix Packages
Once downloaded you will need to open the terminal again.
Then you will need to change to your downloads directory and run the dpkg command
This will now have installed the Citrix client ( and USB support if specified ) to your PI.
Webcam & Mic
There is one last step required to enable WebCam and Microphone to be enabled in your Citrix session. Again from a terminal run
This will open the preference tools, select the 'Mic & Webcam' tab and select the option 'Use my microphone and webcam'
And there you go, you are now ready to use your Pi to access Citrix and use MS Teams with full HDX support :)
Troubleshooting
- If HDX is not working then open a termin and run
this will check that you have all the dependencies installed and flag up any that are not.
- I also found that using my bluetooth headset ( UpRoar Wireless Headphones ) crash the citrix session. Use a USB headset/microphone worked ok.
- If you have issues with sound / speed then perform the usual checks
- Kick the kids off the wifi
- Try going hardwired instead of wifi
- Run a speed test
- Reboot your router
After thoughts
Great, that is good for the Pi but what about my Ubuntu Laptop/Desktop?
Well form the Citrix Debian Packages select x86_64 packages and follow the above.
You will need to install the following package versions on Ubuntu vs the Pi.
Citrix Workspace App is the client component of Citrix Workspace. It enables access to a full desktop on a remote host and is available for many different platforms. A colleague recently mentioned it could be installed on a Raspberry. So I have not hesitated and ordered a Raspberry Pi 4 to setup a thin-client for work from home. I use this Raspberry for nothing but Citrix, so I try to keep the number of installed packages at a minimum. Below I will explain how I setup a Citrix Workspace App on Raspbian on a Raspberry Pi 4 with two monitors.
Hardware
- Raspberry Pi 4 Model B 4GB
- 16GB Class 10 SD Card
- 2 x Monitors 1920x1080
Since I wanted to be sure to have enough RAM, I have gone for the 4GB version. It is definitely not needed for this setup. The memory usage usually is below 500MB, so 2G is definitely enough. I use a 16GB SD card since it was as expensive as a 8GB, Rasbian Lite with all the packages takes 2.5GB. 4GB or 8GB would have been enough.
Install Rasbian Lite
First the Raspbian Buster Lite image is written to the SD card. It can be downloaded from Rasberry downloads. The SD card may not be
/dev/mmcblk0
on a different system. The proper device can be found for example with fdisk -l
.If
dd
cannot be used to write the image to the SD card, there is a guide in Raspberry documentation.That’s it, given everything is connected to the Raspberry. It can be booted now. Login is
pi
and password is raspberry
. First, the system is updated and then raspi-config
can be run to do some basic configuration.In order to use the complete screen, overscan is deactivated. Since it is not intended to use this raspberry for anything else than Citrix, it is more convenient to autologin after boot.
- Deactivate overscan: 7 Advanced -> A2
- Autologin into console: 3 Boot -> B2
- Update timezone: 3 Localization -> I2
- Reboot after configuration
Setup window manager and browser
For this thin-client there is no desktop environment with office software, games etc. required. It only needs a browser to get a Citrix session and Citrix Workspace App. If only one monitor is used, almost any window manager can be used. With two monitors it has shown slightly more difficult, Citrix gets
_NET_WM_FULLSCREEN_MONITORS
message, which is set by the window manager.1 It appears, many window managers do not set this variable. Of the low-footprint window managers I have tried, only xfwm4 and icewm work out of the box with multiple monitors. dwm, jwm and fluxbox have worked with one monitor only. So I have chosen xfwm4, because it looks nicer. To get a Citrix connection, I do need a browser. I chose Midori, because it feels light.Since I do not want to have any transparency, shadows etc. I deactivated the xfwm4 compositor. The settings menu can be opened through bash.
The window manager should be started when autologin starts bash. So we add the xfce4-panel and xfwm4 to
.xinitrc
.And then
startx
in .bashprofile
.After this we can reboot into xfwm4.
Setup Citrix workspace
So far we have prepared a minimal Raspbian, with a window manager and a browser. Now we can download Citrix Workspace app for Linux (ARM HF) from Citrix for Linux. Make sure to download the ARM version for Debian.
Assuming Workspace app has been downloaded to Downloads, it can the be installed with
dpkg
. In case there are any packages missing, installation will fail and the missing package will be reported. The missing package can be installed with apt install missing-package
and then Workspace app installation with dpkg
can be tried again.Make ssl certificates available to ICAClient.
In case the certificate of your companies website is not trusted, you can add it to your certificates and update the certificates.
Citrix Workspace For Raspberry Pi
Citrx Configuration
![Workspace Workspace](/uploads/1/1/1/6/111699045/114320078.png)
For my headset to work on the remote host, I also installed Pulseaudio plugin and changed the
AllowAudioInput
in ~/wfclient.ini
to true
.wfclient.ini
:In different applications I use mouse middle click, e.g. to close tabs or to open in a new tab. The default Citrix configuration remaps mouse middle click to
paste
(ctrl + v). I commented this line with a semicolon.Backup
Finally, I made a backup of my Raspberry on my notebook.
Start Citrix
- Get Citrix connection file
- Open downloaded icx file