Raspberry Pi 4 Citrix Receiver



Update 20150222:The new RPi2 has an ARMv7 processor. It should run standard officially supported Citrix Receivers. I have not tested this myself.

Raspberry Pi Citrix Receiver XenApp Demonstration ICA HDX. If playback doesn't begin shortly, try restarting your device. With next generation capabilities including native dual screen, 4k support, USB 3.0, enriched CPU and GPU, and up to 4 GB RAM, the Raspberry Pi 4 further establishes the Citrix Ready workspace hub as a viable alternative to x86 Thin Clients. The long anticipated Raspberry Pi 4 device has been released, and we couldn’t be more excited. Citrix Receiver. Important: Citrix Receiver has reached End of Life. For more information, refer to Important lifecycle milestone for Citrix Receiver in this article. Users that are still accessing Workspace with Citrix Receiver see the “purple” user interface shown below. Citrix have been making a fair bit of noise about their end-client (Receiver) being available and supported in-conjunction with partner ThinLinx on the Raspberry Pi, which with peripherals is proving a sub-$100 thin-client, capable of handling demanding graphics and frame rates (fps) of 30fps or more (YouTube is usually 30fps). The recent Citrix Information,is for the Raspberry Pi 2B which uses the BCM2836 SoC which has an ARMv7 CPU (this should also be OK for the RPi 3B), the downloaded Packages are for Debian ARMHF which is ARMv7 and not compatible with ARMv6, hence why you get a Segmentation Issue.

It is obviously tempting to try to use a Raspberry Pi as a thin client. Often, that means a Citrix client, that requires Citrix Receiver (a closed source program available from Citrix in binary form only).

The problem
Raspbian is very much a normal Debian system. Citrix Receiver usually works nicely on Debian, and Citrix provides ARM binaries. But that would be too easy.

There are two ARM binaries available from Citrix (Receiver 13.0, the current)

Citrix receiver raspberry pi 4
  1. ARMEL – for ARM cpus without floating point support
  2. ARMHF – for ARM cpus with floating point support AND at least ARMv7

The Raspberry Pi is based on an ARMv6 WITH floating point support. This means that the ARMHF binary can never run, since ARMv6 lacks instructions required by ARMv7. But it also means that the ARMEL version can not run on Raspbian (although it could work on a Raspberry Pi with another OS).

There are different strategies to this problem: fixing the OS, or fixing the Citrix client.

RPi Thin Client Project
There is a nice effort called RPi Thin Client Project. The version from 2013-11-28 runs everything in ARMEL (without Hardware Float). The good thing is that it actually runs Citrix Receiver on a Raspberry Pi, and the performance of the Receiver itself is quite decent. However, it is based on Debian Unstable, and as I started updating and installing packages it did not work very well. Also, the RPi is not very fast even with Hard Float working, and without Hard Float everything except the Citrix client is very slow.

I see there is now a new Hard Float release of the RPi Thin Client project (2014-06-10), but as far as I can see it does not include Citrix Receiver (feel free to correct or update me!).

Raspberry Pi 4 Citrix Receiver Download

Unofficial Citrix Client
On a blog hosted by Citrix, there is an unofficial Citrix Receiver available for download. Obviously Muhammad Dawood has access to the real Receiver source code and he is allowed to compile it and distribute unofficial binaries. If you follow his instructions (install Raspbian as usual, then install Citrix Receiver with his special setup-script) you will get a Hard Float Citrix Receiver on a normal Raspbian system. Very nice! I am running it and it works very well, and I am much looking forward to an official/supported version.

The setup script modifies /boot/config.txt, mostly to overclock the RPi to maximize performance. My RPi did not accept it and refused to start. The good thing is that you can remove the SD card from the RPi and edit the config file with another computer. I only have ONE active line in my /boot/config.txt:

…and you can probably change/remove that line too. I have an old 1280×1024
LCD display, that I connect via an Apple HDMI->DVI adapter, and a DVI-DVI cable. The display is comes up at correct resolution (although lxrandr can not run).

Other ideas
I was thinking about decompiling/recompiling one of the official ARM binaries. After reading a bit about it I gave up without thinking about trying. It probably violates any license agreement too.

Perhaps it could be possible to run some official binary (ARMEL, ARMHF or even x86) using QEMU user mode. Probably the performance would be completely unacceptable.

On Raspbian pages I read that theoretically it is possible to run ARMEL applications on Raspbian using Linux/Debian multi-arch, but there seems to be some hacks made in Raspbian, and this multi-arch probably practically unrealistic.

Citrix Receiver Raspberry Pi 4

Conclusion
I recommend go with the inofficial/unsupported binaries from Citrix for now. Lets hope Citrix embraces this some day.