DIY Citrix Receiver Thin Client


I spent couple days last week to build my first version Citrix Receiver Thin Client. The purpose is to utilize some old and low end computers by turning them into Citrix thin client. In this version, the following things are achieved:

– Small size and quick boot
– Simple user interface
– Auto restore after reboot
– Unique computer name (MAC address based)
– Auto shutdown after close Citrix
– Customized logo

When the computer boots up, it looks like this:

image

This is how I built it:

1) Install Tiny Core:

Just follow this instructions: http://distro.ibiblio.org/tinycorelinux/install.html

2) Install prerequisite libs and apps:

Launch ‘AppBrowser’, and click ‘Connect’, then install these packages: libxp.tcz, libcap.tcz, libasound.tcz, openmotif.tcz, glib1.tcz, fontconfig.tcz, expat2.tcz, gtk-vnc.tcz, firefox.tcz

image

3) Download and install Citrix Receiver:

– Download Receiver for Linux.rpm and USB support package.rpm from ‘http://www.citrix.com/English/ss/downloads/details.asp?downloadId=2316611&productId=1689163’ in Firefox to /home/tc/downloads.
– Install the two rpm packages as following.

image

4) Create there link files as following:

image

5) Disable auto backup:

Type ‘ vi ~/.profile ‘ and change ‘BACKUP=0’

image

6) Name machine after the MAC address:

Type ‘ sudo vi /opt/bootlocal.sh ‘, then add a new line as following:

image

7) Add a script to remove right-click menu and fire ICAclient:

Type ‘ sudo vi ~/.X.d/launch_ica ‘, then add the following lines.

image

Type ‘ chmod a+x ~/.X.d/launch_ica’ to make it executable.

8) Change your background:

– Download your background picture to /opt/backgrounds/

– Click ‘Control Panel’ from the bottom bar, and choose ‘Wallpaper’ to use your picture as the background

image

9) Remove all buttons from the bottom bar except Exit:

Click ‘Wbar Conf’ in Control Panel.

Now it should look like this:

image

10) Configure the Citrix Receiver:

Right click and choose terminal, then type the following command.

image

– Choose ‘Citrix XeanApp View’ and type in your server address.

image

image

NOTE: If you get a certificate error messages, it means you have to add the CA certificate to your trusted CA. E.g Go to ‘https://www.thawte.com/roots/’ and download thawte’s root CA certificate to ~/download/, then import it to the trusted CA.

image

If everything is OK, the authentication window should pop up now.

image

11) Backup and restart your system:

image

64 thoughts on “DIY Citrix Receiver Thin Client

  1. If the Citrix Receiver authentication window can not pop up automatically after the reboot. Add the new line ‘sleep 5’ before #Launching Citrix Receiver in step 7).

  2. Pingback: URL
  3. Thanks for the howto.
    With 12.1 receiver it gave me an error that it cannot convert from ISO-8859-1 to UTF16; I solved by installing also glib_gconv.tcz. But now I really don’t know how to map client drives (esp. USB ones). Did you succeed in? How?

    1. Yes, I did. You can set up the map drives in Citrix Receiver: Tools/Settings/Drive Mapping, make sure you choose ‘enable drive mapping’ and ‘enable read/write’.

      1. is there a way to automount usb drive in tinycore? When i launch sudo mnttool and then click sdb1 or sdc1 it turns green if i have usb. then on the citrix receiver if i enable drive mapping and enable read /write it works…So is there a script we can run when launching citrix receiver to mount the usb drives

  4. Hi Jackie,

    I’m modifying and saving the etc/inittab file to disable CRTL-ALT-DEL simply beacuse when you want to lock your screen in Citrix it reboots 🙂 but the inittab file defaults back to it’s original state every time I reboot. Have you got any idea how to make this work permanently ?

    Many thanks in advance
    Janos

    1. Hi JK, did you backup your changes before reboot? I mean the tinycore backup. If not you need to do so, as the auto backup has been disabled. If you already backed it up, it might be caused by that the /etc/initab is not in your backup list. There is a file which you can specify which files you want to backup. I don’t have a tiny core machine around, so I can not tell you the exact path of that file. You should be able to find it in the TinyCore wiki page.

    2. thanks followed this article for USB auto mount http://forum.tinycorelinux.net/index.php/topic,14977.0.html and for audio to work
      tce-load -wi alsaconf.tcz
      tce-load -wi alsa-plugins.tcz
      from terminal run sudo alsaconf and choose the intel sound card
      run alsamixer and adjust the speaker level and
      run sudo alsactl store
      Add on /opt/.filetool.lst
      opt/alsa
      etc/modprobe.cong
      /usr/local/etc/asound.state
      Edit /opt/bootlocal.sh and add alsactl restore

  5. I did backup the changes previously, but you were right it was not on the list of folders/files to backup /opt/filetool.lst so I’ve included the etc folder as well. Now it does backup the inittab file but Ctrl Alt Del still reboots the client so I’ll dig deeper 🙂 Thanks a lot, Janos

    1. JK,
      You perhaps already figured this out but if you add xorg-7.6.tcz with the Apps program this will allow the disable of CTRL-ALT-DEL successfully by commenting out the line in the inittab file. 🙂 I did it and it works perfectly to allow the user to lock the screen in Citrix but doesn’t reboot the underlying Tiny Core linux.

      Randy

      1. Randy,
        still i cannot disable crtl alt del from shutdown my tiny core.
        add xorg-7.7.tcz and commenting in inittab already done. what was i miss ???

      2. Joe,

        After you edit and save the inittab file you must add it to the filetool.lst so that your saved file gets backed up. Add /etc/inittab to the filetool.lst file with the following command and save it.

        sudo vi /opt/.filetool.lst

        Then backup your configuration with the following command which will then include your modified inittab file.

        sudo /usr/bin/filetool.sh –b sda1/tce

        Note that in the above command the sda1 may need to change to sdb1 if you have a hard drive in the pc.

        I hope this helps.

      3. Randy,

        i already save the inittab to filetool.lst and backup with this command ” sudo /usr/bin/filetool.sh –b sda1/tce “.
        but still cannot disable ctrl alt del from shutdown my tiny core.
        I’m add xorg7.7.tcz not xorg-7.6.tcz because of this ?
        plz reply me soon if you can… i already struggle in a week…

      4. Joe,
        Hmm…I’m not sure what the issue is then. I’m using TC 4.7.6, hence the xorg-7.6.tcz. I would remove that library and the ctrl-alt-del was a no go, but when I added it the ctrl-alt-del worked perfectly. I did this a couple times to be sure. It could be the version of TC that you’re using. I have not worked with the later 5.x versions.

  6. Hi, I am stuck at stage 3. Please can anyone help.
    When I try to install the receive and USB package using Terminal I got access denied message

  7. Thanks for the quick reply Jackie I’ve got it working now 🙂

    I have 1 small issue though. I have setup an connection to a server however I need to login as domain\username but when pressing the key for ‘\’ i get ‘<' instead. I have loaded the uk kmap but this seems to have no effect.

    Do you have any suggestions on how I could get around this issue?

    Many thanks
    Samaan

    1. I did not have such issue as I use US keyboard. You might need to double check your keymap settings by referring following:

      My keyboard is not US. How to add a keymap?

      The extension “kmaps.tcz” was created just for this. It includes all keymaps from the kbd package. Keymaps have to be changed in the console, not in X.
      So, for a quick test, load the extension, exit to prompt, and type:

      sudo loadkmap < /usr/share/kmap/qwerty/fi-latin9.kmap

      To make this permanent, add the extension kmaps.tcz to your persistent tce directory, and then either use the bootcode kmap=qwerty/fi-latin9, or add the command to /opt/bootlocal.sh (missing the sudo, since bootlocal is executed as root):

      loadkmap < /usr/share/kmap/qwerty/fi-latin9.kmap

    2. I realize it has been a while, but how did you get passed the access denied error? I tried exactly as provided but get a “not found” error. If I removed the $ from downloads, I get the permission denied notice.

      1. Please remove this post and my previous post – I realized what I did wrong 🙂 The part with the $ after it was after doing a “cd /downloads” — duh!!

  8. Hi Jackie,

    I’m trying to run a startup/boot message on these clients but not sure what do I need to do. Tried modifying the /etc/init.d/tc-config file with one more line echoing the message on the screen, but it does not display on bootup. Any help would be appreciated, just a simple message on the screen I want, displaying the Laptop asset tag number on the screen when the client boots. Many thanks!

  9. Thank you for your article, I has been successfully installed, also would like to ask a question, Citrix Receiver can directly use the wfiac command to run, not through the window

    1. Do you mean how to run Citrix Receiver from command line? If yes, it is ‘/opt/Citrix/ICAClient/wfcmgr’ or ‘/opt/Citrix/ICAClient/wfica -file ‘

  10. Great article. I’m almost there. The machine will boot up to the Citrix Receiver window but does not automatically prompt for credentials like your first screen shot above shows. Any ideas?

    1. It works for me everytime. So I guess you probably did not configure the XenApp server correctly in the Receiver. Did the window pop up when you manually type the command?

      1. Yes, the window pops up asking for credentials when I manually enter the server address. The “XenApp View” never seems to be the default when the receiver starts up though. It always defaults to the “Connection View”.

      1. Thanks Jackie. That was partially it. I was saving but I wasn’t leaving the client the way I wanted prior to the save. Again, thanks for your article and answers! 🙂

  11. at the step with vi ~/.profile i modded the file but how do i save it ? im a noob at this….

    1. In the vi editor you’ll press ‘Esc’ to quit insert mode and then a :w will write the file and then a :q will exit the vi editor.

  12. i got one prob do. when i start everything works fine but the citrix windows pops up 2 fast. i need to click cancel a few times before it gets connected to our citrix server.

    is there a way to speed up the network discovery or delay the citrix vendor ? by sleep 5 for example but a higher valeu ?

    1. Add something like the following script to check the network readiness.

      #!/bin/bash
      #wait for the DHCP ready
      while ! ifconfig eth0 | grep ‘inet addr’ >/dev/null 2>&1
      do
      echo ‘waiting for network ready’
      sleep 2
      done

      1. Hi – great guide, got a system up and running perfect – just what I wanted. However, it loads so fast the receiver errors as the network is not ready. This post seems to be what I need, but im no Linux guy – where would I add this script to wait for the LAN please?

        Thanks!

      2. In the step 7), add the following codes before launching the Citrix redeiver:

        #wait for the DHCP ready
        while ! ifconfig eth0 | grep ‘inet addr’ >/dev/null 2>&1
        do
        echo waiting…
        sleep 2
        done

  13. Thanks for the article! I have a question… How do you remove the right-click option from tiny core.

  14. I’m down to the certs, but still getting the cert error (61). Our site certificate is from GoDaddy and have downloaded the root, intermediate and cross intermediate CRT files from their repository. All three are listed in the cacerts folder. (I’ve tried multiple methods to get this to work – export from FF and copy, direct wget from the GoDaddy repository, etc). Still the 61 error. Thoughts? Ideas?

  15. Hello Jackie, I’ve followed the instructions above but I still get the following error when launching the receiver wfcmgr.bin file:
    “Error in configuration file: “/home/tc/.ICAClient/wfclient.ini”
    Cannot find section “WFClient”.

    I’ve checked the director and the file is there. I did the ln commands earlier but I’m just not sure how to go about fixing this issue. Do I need to add something in the wfclient.ini file?

    thanks for any help.

  16. I’m using this box in a kiosk setting and would like it to log out of Citrix Receiver when the user disconnects or logs out of VDI OS. Has anyone figured out how to do this? Wyse terminals have it as an option.

    1. Robin,

      I use TC 4.7.6 with WiFi as you describe and it works great. I’ve got a Word document that I created with the steps I did. Send me your email address at raoehrle@hotmail.com and I will email you my Word document if you like.

      Thanks.

      Randy

  17. Followed the article and get this error Cannot use iconv to convert from ISO-8859-1 (87) to utf-16 and when i click ok i get Error in configuration file: /home/tc/.ICAclient/wfclient.ini cannot find section “WFClient” The file wfclient.ini do exist and on the top i see the section {wfclient] Version =2 …The difference is i used 12.1 receiver …Thanks Ganesh

  18. Hi Jackie – can you please make your project live cd and bootable usb available for download. I am a complete noob and linux is not my forte. Thank you

Leave a comment