Jump to content
Welcome to our new Citrix community!
  • 1

Help with optimizations for Raspberry Pi 4

Brian Black


I just got a Raspberry Pi 4 and was surprised to find Citrix performance with XenApp 7.6 is only average and really takes a nose dive when you try connecting to a machine over RDP inside the ica session. What gives?


I’ve used Receiver and Workspace for years on Windows, iOS, and macOS, and they’ve always been pretty solid. On the Raspberry, everything’s a smidge laggier feeling and seems to get worse the more apps you launch (especially the aforementioned RDP session).


the only thing I’ve tried so far is to disable H.264 by setting the All_regions.ini parameter H264Enabled to false. I confirmed this change was committed via remote display analyzer, but so far can’t tell much of a difference. On the XenApp server side, I have Citrix GPO configured for high display quality and 20fps max, and not much else that seems pertinent.


Does anyone have any suggestions for making the Linux experience better?

Link to comment

2 answers to this question

Recommended Posts

  • 0

So I was only able to do a little testing on this today, but a little ways into my Citrix XenApp session when I was getting frustrated with some laggy behavior, I fired up htop and filtered to just the Citrix processes running and noticed the primary wfica process was never able to consume more than 25% CPU--probably just maxing out a single core.


So I went over to my older RPi v3, signed into Citrix, brought my session over, and lo and behold, the Citrix wfica process was sometimes consuming 40-60% CPU for brief periods, and everything seemed to run much better. That's when I noticed I was running Workspace ver.1912 on the RPi v3 and ver.2004 on the RPi v4!


So I went back to the RPi v4 and installed Workspace 1921, and it's running much better now. I had several tabs open in the local Chromium browser, including MS Teams, and my usual smattering of MS Office suite, RDP sesh, Google Chrome and intranet web apps running in Citrix, and it hummed along pretty decently. Much better than before.


Do you all think the latest Workspace app is not coded to use multi-threading or something?


EDIT: And I'm still looking for any methods to improve performance of the ICA session running on low-end (in this case, ARM-based) hardware. Like video buffer tweaks, GPU or Raspbian/Linux windowing system tweaks, settings and customizations on the XenApp servers themselves, etc. 

Edited by brianbjac
Link to comment
  • 0

I'm not 100% sure, but I think the older version of the Workspace app seemingly working better might've been a red herring. I've tried going back and forth between them, and they may be giving relatively similar performance after all.


So this is what I've done over the past several days to get it working far better than initially.


1) I think the Pi doesn't work well with the Citrix H.264 video decoding (Thinwire+264), so I added "H264Enabled=False" in /home/username/.ICAClient/wfclient.ini to force the ICA session to instead use JPEG decoding (Thinwire compatibility)--this was probably the single biggest improvement


2) using this person's article https://www.martinrowan.co.uk/2015/10/citrix-receiver-linux-raspberry-pi-2-using-raspbian-jessie/ it sounded like some libraries installed on Pi might do JPEG decoding even better with libjpeg62-turbo library which was already installed in my packages on my Pi, so followed his recommendations and renamed ctxjpeg_fb_8.so library file in /opt/Citrix/ICAClient/lib so that it would try to use the ctxjpeg_fb.so library instead (I'm still trying to figure out how to test better so I can compare both of these libraries back-to-back


3) added "framebuffer_depth=32" to the Pi's config.txt (changed this at the same time as another change, so unsure what effect if any this had)


4) overclocked Pi using "over_voltage=6", "arm_freq=2000", and "gpu_freq=700" in config.txt (this didn't really seem to have much noticeable effect on the ICA session, except that things seemed to run a bit smoother overall while also using Chromium browser and doing other things not he Pi simultaneously).


I'm trying to figure out now how to use the 'export WFICA_OPTS="-rm Dcdjfresot"' command utility to better monitor the ICA session to have more scientific measurements of the effects of these things.


If anyone can shed any light on how to use the WFICA_OPTS command, I'd appreciate it. I'm not sure if I'm supposed to run the command before launching a session or after a session is already in progress or what.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...