Citrix Workspace Raspberry Pi



  • I've recently tried to run Citrix Workspace on the Pi with poor results. 1) The chromium app: works on Pi 2 and Pi 3, but it is too slow. Impossible to use on Pi 2, but still too slow on a Pi 3 b+. Connection always happens correctly. 2) Installed Citrix Receiver (wfica) on Pi 2 and 3 in Raspbian 9.
  • The RX420(IGEL) enterprise thin client, powered by IGEL OS on the latest Raspberry Pi4 platform, brings premium performance and native dual display support to the Citrix Ready Workspace Hub family. It is optimized for Citrix HDX which makes certain that it meets the performance, security and manageability demands of the enterprise.

Jan 22, 2020 Plug a standard Raspberry Pi USB power adapter into the power port, and then connect the SDA’s USB port and the workspace hub using a standard micro USB-to-USB cable. Software setup See the earlier section Citrix Virtual Apps and Desktops Configuration.

Learning has never been so easy!

This is a step-by-step how to on creating a Raspberry Pi 4 dual screen thin client. The Pi will be set up in a Kiosk mode, only able to access Citrix Reciever.

7 Steps total

Step 1: Install Raspbian

Download the latest version of Raspbian Lite (Currently Buster):
https://www.raspberrypi.org/downloads/raspbian/

Follow the install guide for your distribution: https://www.raspberrypi.org/documentation/installation/installing-images/README.md

Step 2: Change Passwords

Change the password for the pi and root user.

sudo passwd pi
sudo passwd root

Step 3: Set Auto Login or Wifi

use raspi-config to set pi as the auto login CLI user, and set up wifi as needed.

https://www.raspberrypi.org/documentation/configuration/raspi-config.md

Step 4: Install Window Manager

This will install a lightweight window manager, allowing GUI programs to be run. We'll also install a browser to connect to the Citrix Storefront, as well as some Citrix dependencies.

sudo apt-get update
sudo apt-get install xorg
sudo apt-get install matchbox-window-manager
sudo apt-get install chromium-browser
sudo apt-get install libwebkitgtk-1.0-0
sudo apt-get install libwebkit2gtk-4.0-37

Step 5: Set up Window Manager

Start the graphical interface on login by modifying the .profile file:
sudo nano .profile

Add the line to the bottom of this file:
startx

Exit and save the file.

Create and edit the file .xinitrc:
sudo nano .xinitrc

Enter the following text into this file:
#!/bin/sh
xset s off
xset -dmps
xset s noblank
matchbox-window-manager -use_titlebar no &
chromium-browser

Close and save the file, then restart your device.

Step 6: Download and Install Citrix

When you restart your device a chromium window should launch when the pi user logs in. Download the latest Debian version of Citrix Workspace from https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html.

Download the ARM HF versions of Full Packages (Self-service Support) and USB Support Packages.

Go to another workspace by pressing Ctrl+Alt+F2 (You can return to the browser by going to the first workspace Ctrl+Alt+F1) and log in as the root user.

Install the packages:
sudo dpkg -i /home/pi/Downloads/icaclient*
sudo dpkg -i /home/pi/Downloads/ctxusb*

If this returns an error, install the missing dependencies, then install the above again:
sudo apt-get install --fix-missing

Step 7: Finalize Setup

Modify the .xinitrc file:
sudo nano /home/pi/.xinitrc

If you wish to have the pi running in a Kiosk mode, modify the .xinitrc file to:
#!/bin/sh
xset s off
xset -dmps
xset s noblank
matchbox-window-manager -use_titlebar no &
chromium-browser --kiosk

If you wish to allow your users to be able to view other websites outside of Citrix, and reboot the device modify to:
#!/bin/sh
xset s off
xset -dmps
xset s noblank
matchbox-window-manager -use_titlebar no &
chromium-browser
sudo reboot -f

Close and save the file, then restart your device.

Raspberry Pi Downloads

3 Comments

  • Pimiento
    spicehead-wkzqm Jan 22, 2021 at 11:19am

    So I have pretty much a straight up buster install and the latest Citrix components. But when i try to go dual monitor, workspace just snaps to one screen. Anyone have any ideas? The displays are nothing special 1280 x 1024.

  • Serrano
    Atypical_IT_Guy Jan 22, 2021 at 02:25pm

    Are you using the Matchbox window manager?

    If not:
    In other linux variants I tried with a full desktop, I had to put workspace into windowed mode, then move it so the window is within both screens. Maximizing it again usually allows it to take up both screens.

    Usually after doing this once, it will continue to do this

  • Serrano
    Atypical_IT_Guy Jan 22, 2021 at 02:30pm

    In older versions of Citrix, I had to modify the wfica file, but I'm not sure how relevant this is in Workspace: https://support.citrix.com/article/CTX209485

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

Citrix
  • 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.

Citrix Workspace Raspberry Pi 3

Citrix Workspace Raspberry Pi

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 Raspberry Pi 3

Citrx Configuration

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

References