Create Citrix Thin Client Live CD


To make the Citrix Thin Client (I call it TC-Citrix) more flexible, I created a live CD which can be used to run TC-Citrix from the bootable CD or install TC-Citrix to the local hard disk.

Take a  quick look, here are two snapshots:

image

 

image

As always, below is my step by step How To: (I compiled the CD under Ubuntu 11.10)

1) Create your project folder, I call it ‘tc-citrix-liveCD’.

2) Create ‘boot’, ‘cde’, ‘tce’, ‘PING’ four subfolders in ‘tc-citrix-liveCD’ folder.

3) Mount the CorePlus.iso installation CD, and copy all files from ‘boot’ to ‘tc-citrix-liveCD/boot’ .

4) Copy all files in the ‘/mnt/sda1/tce’ folder from your running TC-Citrix to ‘tc-citrix-liveCD/cde’.

5) Copy ‘mydata.tgz’ from ‘tc-citrix-liveCD/cde’ to ‘tc-citrix-liveCD/tce’.

6) Mount PING.iso (the image tool), and copy all files to ‘tc-citrix-liveCD/PING’.

7) Copy the tc-citrix PING image files you created before to ‘tc-citrix-liveCD/’. Now the project folder should look like this:

jchen@dominos:~/Downloads/tc-citrix-liveCD+PING$ ls -alhR
.:
total 108M
drwxrwxr-x 6 jchen jchen 4.0K 2012-03-17 17:19 .
drwxr-xr-x 20 jchen jchen 4.0K 2012-03-17 17:45 ..
dr-xr-xr-x 3 jchen jchen 4.0K 2012-03-17 18:02 boot
drwx—— 4 jchen jchen 4.0K 2012-03-17 15:28 cde
-rw-r–r– 1 root root 1.7K 2012-03-17 17:09 HDD_Look.txt
dr-xr-xr-x 2 jchen jchen 4.0K 2012-03-17 17:20 PING
-rw-r–r– 1 root root 32K 2012-03-17 17:09 sda
-rw-r–r– 1 root root 108M 2012-03-17 17:09 sda1.000
-rw-r–r– 1 root root 10K 2012-03-17 17:09 sda1.first_sectors
drwxrwxr-x 2 jchen jchen 4.0K 2012-03-17 15:28 tce

./boot:
total 7.7M
dr-xr-xr-x 3 jchen jchen 4.0K 2012-03-17 18:02 .
drwxrwxr-x 6 jchen jchen 4.0K 2012-03-17 17:19 ..
-rw-r–r– 1 jchen jchen 5.3M 2012-03-17 15:28 core.gz
dr-xr-xr-x 2 jchen jchen 4.0K 2012-03-17 18:15 isolinux
-r–r–r– 1 jchen jchen 2.4M 2012-03-17 15:28 vmlinuz

./boot/isolinux:
total 100K
dr-xr-xr-x 2 jchen jchen 4.0K 2012-03-17 18:15 .
dr-xr-xr-x 3 jchen jchen 4.0K 2012-03-17 18:02 ..
-r–r–r– 1 jchen jchen 2.0K 2012-03-17 15:28 boot.cat
-r–r–r– 1 jchen jchen 24K 2012-03-17 18:15 isolinux.bin
-r–r–r– 1 jchen jchen 959 2012-03-17 18:14 isolinux.cfg
-r–r–r– 1 root root 60K 2012-03-17 15:33 menu.c32

./cde:
total 24K
drwx—— 4 jchen jchen 4.0K 2012-03-17 15:28 .
drwxrwxr-x 6 jchen jchen 4.0K 2012-03-17 17:19 ..
-rw-r–r– 1 jchen jchen 134 2012-03-17 15:28 onboot.lst
drwx—— 2 jchen jchen 4.0K 2012-03-17 15:28 ondemand
drwx—— 2 jchen jchen 4.0K 2012-03-17 15:28 optional
-rw-r–r– 1 jchen jchen 800 2012-03-17 15:28 xwbar.lst

./cde/ondemand:
total 8.0K
drwx—— 2 jchen jchen 4.0K 2012-03-17 15:28 .
drwx—— 4 jchen jchen 4.0K 2012-03-17 15:28 ..

./cde/optional:
total 57M
drwx—— 2 jchen jchen 4.0K 2012-03-17 15:28 .
drwx—— 4 jchen jchen 4.0K 2012-03-17 15:28 ..
-rw-r–r– 1 jchen jchen 120K 2012-03-17 15:28 advcomp.tcz
-rw-r–r– 1 jchen jchen 10 2012-03-17 15:28 advcomp.tcz.dep
-rw-r–r– 1 jchen jchen 46 2012-03-17 15:28 advcomp.tcz.md5.txt
-rw-r–r– 1 jchen jchen 156K 2012-03-17 15:28 atk.tcz
-rw-r–r– 1 jchen jchen 23 2012-03-17 15:28 atk.tcz.dep
-rw-r–r– 1 jchen jchen 42 2012-03-17 15:28 atk.tcz.md5.txt
-rw-r–r– 1 jchen jchen 504K 2012-03-17 15:28 cairo.tcz
-rw-r–r– 1 jchen jchen 28 2012-03-17 15:28 cairo.tcz.dep
-rw-r–r– 1 jchen jchen 44 2012-03-17 15:28 cairo.tcz.md5.txt
-rw-r–r– 1 jchen jchen 1.1M 2012-03-17 15:28 curl.tcz
-rw-r–r– 1 jchen jchen 43 2012-03-17 15:28 curl.tcz.md5.txt
-rw-r–r– 1 jchen jchen 176K 2012-03-17 15:28 cyrus-sasl.tcz
-rw-r–r– 1 jchen jchen 18 2012-03-17 15:28 cyrus-sasl.tcz.dep
-rw-r–r– 1 jchen jchen 49 2012-03-17 15:28 cyrus-sasl.tcz.md5.txt
-rw-r–r– 1 jchen jchen 104K 2012-03-17 15:28 dbus-glib.tcz
-rw-r–r– 1 jchen jchen 21 2012-03-17 15:28 dbus-glib.tcz.dep
-rw-r–r– 1 jchen jchen 48 2012-03-17 15:28 dbus-glib.tcz.md5.txt
-rw-r–r– 1 jchen jchen 412K 2012-03-17 15:28 dbus.tcz
-rw-r–r– 1 jchen jchen 13 2012-03-17 15:28 dbus.tcz.dep
-rw-r–r– 1 jchen jchen 43 2012-03-17 15:28 dbus.tcz.md5.txt
-rw-r–r– 1 jchen jchen 56K 2012-03-17 15:28 dosfstools.tcz
-rw-r–r– 1 jchen jchen 49 2012-03-17 15:28 dosfstools.tcz.md5.txt
-rw-r–r– 1 jchen jchen 76K 2012-03-17 15:28 expat2.tcz
-rw-r–r– 1 jchen jchen 45 2012-03-17 15:28 expat2.tcz.md5.txt
-rw-r–r– 1 jchen jchen 24K 2012-03-17 15:28 ezremaster.tcz
-rw-r–r– 1 jchen jchen 30 2012-03-17 15:28 ezremaster.tcz.dep
-rw-r–r– 1 jchen jchen 49 2012-03-17 15:28 ezremaster.tcz.md5.txt
-rw-r–r– 1 jchen jchen 20M 2012-03-17 15:28 firefox.tcz
-rw-r–r– 1 jchen jchen 48 2012-03-17 15:28 firefox.tcz.dep
-rw-r–r– 1 jchen jchen 46 2012-03-17 15:28 firefox.tcz.md5.txt
-rw-r–r– 1 jchen jchen 288K 2012-03-17 15:28 fltk-1.10.tcz
-rw-r–r– 1 jchen jchen 48 2012-03-17 15:28 fltk-1.10.tcz.md5.txt
-rw-r–r– 1 jchen jchen 28K 2012-03-17 15:28 flwm_topside.tcz
-rw-r–r– 1 jchen jchen 14 2012-03-17 15:28 flwm_topside.tcz.dep
-rw-r–r– 1 jchen jchen 51 2012-03-17 15:28 flwm_topside.tcz.md5.txt
-rw-r–r– 1 jchen jchen 132K 2012-03-17 15:28 fontconfig.tcz
-rw-r–r– 1 jchen jchen 13 2012-03-17 15:28 fontconfig.tcz.dep
-rw-r–r– 1 jchen jchen 49 2012-03-17 15:28 fontconfig.tcz.md5.txt
-rw-r–r– 1 jchen jchen 304K 2012-03-17 15:28 gcc_libs.tcz
-rw-r–r– 1 jchen jchen 47 2012-03-17 15:28 gcc_libs.tcz.md5.txt
-rw-r–r– 1 jchen jchen 264K 2012-03-17 15:28 gdk-pixbuf2.tcz
-rw-r–r– 1 jchen jchen 31 2012-03-17 15:28 gdk-pixbuf2.tcz.dep
-rw-r–r– 1 jchen jchen 50 2012-03-17 15:28 gdk-pixbuf2.tcz.md5.txt
-rw-r–r– 1 jchen jchen 80K 2012-03-17 15:28 glib1.tcz
-rw-r–r– 1 jchen jchen 44 2012-03-17 15:28 glib1.tcz.md5.txt
-rw-r–r– 1 jchen jchen 1.4M 2012-03-17 15:28 glib2.tcz
-rw-r–r– 1 jchen jchen 12 2012-03-17 15:28 glib2.tcz.dep
-rw-r–r– 1 jchen jchen 44 2012-03-17 15:28 glib2.tcz.md5.txt
-rw-r–r– 1 jchen jchen 356K 2012-03-17 15:28 gmp.tcz
-rw-r–r– 1 jchen jchen 42 2012-03-17 15:28 gmp.tcz.md5.txt
-rw-r–r– 1 jchen jchen 460K 2012-03-17 15:28 gnutls.tcz
-rw-r–r– 1 jchen jchen 50 2012-03-17 15:28 gnutls.tcz.dep
-rw-r–r– 1 jchen jchen 45 2012-03-17 15:28 gnutls.tcz.md5.txt
-rw-r–r– 1 jchen jchen 772K 2012-03-17 15:28 graphics-libs-1.tcz
-rw-r–r– 1 jchen jchen 54 2012-03-17 15:28 graphics-libs-1.tcz.md5.txt
-rw-r–r– 1 jchen jchen 2.8M 2012-03-17 15:28 gtk2.tcz
-rw-r–r– 1 jchen jchen 66 2012-03-17 15:28 gtk2.tcz.dep
-rw-r–r– 1 jchen jchen 43 2012-03-17 15:28 gtk2.tcz.md5.txt
-rw-r–r– 1 jchen jchen 68K 2012-03-17 15:28 gtk-vnc.tcz
-rw-r–r– 1 jchen jchen 36 2012-03-17 15:28 gtk-vnc.tcz.dep
-rw-r–r– 1 jchen jchen 46 2012-03-17 15:28 gtk-vnc.tcz.md5.txt
-rw-r–r– 1 jchen jchen 376K 2012-03-17 15:28 libasound.tcz
-rw-r–r– 1 jchen jchen 48 2012-03-17 15:28 libasound.tcz.md5.txt
-rw-r–r– 1 jchen jchen 20K 2012-03-17 15:28 libattr.tcz
-rw-r–r– 1 jchen jchen 46 2012-03-17 15:28 libattr.tcz.md5.txt
-rw-r–r– 1 jchen jchen 36K 2012-03-17 15:28 libcap.tcz
-rw-r–r– 1 jchen jchen 12 2012-03-17 15:28 libcap.tcz.dep
-rw-r–r– 1 jchen jchen 45 2012-03-17 15:28 libcap.tcz.md5.txt
-rw-r–r– 1 jchen jchen 12K 2012-03-17 15:28 libffi.tcz
-rw-r–r– 1 jchen jchen 45 2012-03-17 15:28 libffi.tcz.md5.txt
-rw-r–r– 1 jchen jchen 288K 2012-03-17 15:28 libgcrypt.tcz
-rw-r–r– 1 jchen jchen 17 2012-03-17 15:28 libgcrypt.tcz.dep
-rw-r–r– 1 jchen jchen 48 2012-03-17 15:28 libgcrypt.tcz.md5.txt
-rw-r–r– 1 jchen jchen 24K 2012-03-17 15:28 libgpg-error.tcz
-rw-r–r– 1 jchen jchen 51 2012-03-17 15:28 libgpg-error.tcz.md5.txt
-rw-r–r– 1 jchen jchen 20K 2012-03-17 15:28 libnotify.tcz
-rw-r–r– 1 jchen jchen 23 2012-03-17 15:28 libnotify.tcz.dep
-rw-r–r– 1 jchen jchen 48 2012-03-17 15:28 libnotify.tcz.md5.txt
-rw-r–r– 1 jchen jchen 840K 2012-03-17 15:28 libssl-0.9.8.tcz
-rw-r–r– 1 jchen jchen 51 2012-03-17 15:28 libssl-0.9.8.tcz.md5.txt
-rw-r–r– 1 jchen jchen 84K 2012-03-17 15:28 libtasn1.tcz
-rw-r–r– 1 jchen jchen 47 2012-03-17 15:28 libtasn1.tcz.md5.txt
-rw-r–r– 1 jchen jchen 108K 2012-03-17 15:28 libxcb.tcz
-rw-r–r– 1 jchen jchen 45 2012-03-17 15:28 libxcb.tcz.md5.txt
-rw-r–r– 1 jchen jchen 680K 2012-03-17 15:28 libxml2.tcz
-rw-r–r– 1 jchen jchen 46 2012-03-17 15:28 libxml2.tcz.md5.txt
-rw-r–r– 1 jchen jchen 20K 2012-03-17 15:28 libxp.tcz
-rw-r–r– 1 jchen jchen 44 2012-03-17 15:28 libxp.tcz.md5.txt
-rw-r–r– 1 jchen jchen 452K 2012-03-17 15:28 mkisofs-tools.tcz
-rw-r–r– 1 jchen jchen 52 2012-03-17 15:28 mkisofs-tools.tcz.md5.txt
-rw-r–r– 1 jchen jchen 132K 2012-03-17 15:28 nettle.tcz
-rw-r–r– 1 jchen jchen 8 2012-03-17 15:28 nettle.tcz.dep
-rw-r–r– 1 jchen jchen 45 2012-03-17 15:28 nettle.tcz.md5.txt
-rw-r–r– 1 jchen jchen 1.3M 2012-03-17 15:28 openmotif-lib.tcz
-rw-r–r– 1 jchen jchen 17 2012-03-17 15:28 openmotif-lib.tcz.dep
-rw-r–r– 1 jchen jchen 52 2012-03-17 15:28 openmotif-lib.tcz.md5.txt
-rw-r–r– 1 jchen jchen 1.4M 2012-03-17 15:28 openmotif.tcz
-rw-r–r– 1 jchen jchen 35 2012-03-17 15:28 openmotif.tcz.dep
-rw-r–r– 1 jchen jchen 48 2012-03-17 15:28 openmotif.tcz.md5.txt
-rw-r–r– 1 jchen jchen 864K 2012-03-17 15:28 openssh.tcz
-rw-r–r– 1 jchen jchen 30 2012-03-17 15:28 openssh.tcz.dep
-rw-r–r– 1 jchen jchen 46 2012-03-17 15:28 openssh.tcz.md5.txt
-rw-r–r– 1 jchen jchen 1.3M 2012-03-17 15:28 openssl-1.0.0.tcz
-rw-r–r– 1 jchen jchen 52 2012-03-17 15:28 openssl-1.0.0.tcz.md5.txt
-rw-r–r– 1 jchen jchen 28K 2012-03-17 15:28 p11-kit.tcz
-rw-r–r– 1 jchen jchen 46 2012-03-17 15:28 p11-kit.tcz.md5.txt
-rw-r–r– 1 jchen jchen 528K 2012-03-17 15:28 pango.tcz
-rw-r–r– 1 jchen jchen 39 2012-03-17 15:28 pango.tcz.dep
-rw-r–r– 1 jchen jchen 44 2012-03-17 15:28 pango.tcz.md5.txt
-rw-r–r– 1 jchen jchen 13M 2012-03-17 15:28 perl5.tcz
-rw-r–r– 1 jchen jchen 44 2012-03-17 15:28 perl5.tcz.md5.txt
-rw-r–r– 1 jchen jchen 204K 2012-03-17 15:28 pixman.tcz
-rw-r–r– 1 jchen jchen 45 2012-03-17 15:28 pixman.tcz.md5.txt
-rw-r–r– 1 jchen jchen 448K 2012-03-17 15:28 shared-mime-info.tcz
-rw-r–r– 1 jchen jchen 23 2012-03-17 15:28 shared-mime-info.tcz.dep
-rw-r–r– 1 jchen jchen 55 2012-03-17 15:28 shared-mime-info.tcz.md5.txt
-rw-r–r– 1 jchen jchen 1.6M 2012-03-17 15:28 syslinux.tcz
-rw-r–r– 1 jchen jchen 47 2012-03-17 15:28 syslinux.tcz.md5.txt
-rw-r–r– 1 jchen jchen 172K 2012-03-17 15:28 tar.tcz
-rw-r–r– 1 jchen jchen 42 2012-03-17 15:28 tar.tcz.md5.txt
-rw-r–r– 1 jchen jchen 20K 2012-03-17 15:28 tc-install.tcz
-rw-r–r– 1 jchen jchen 38 2012-03-17 15:28 tc-install.tcz.dep
-rw-r–r– 1 jchen jchen 49 2012-03-17 15:28 tc-install.tcz.md5.txt
-rw-r–r– 1 jchen jchen 32K 2012-03-17 15:28 wbar.tcz
-rw-r–r– 1 jchen jchen 14 2012-03-17 15:28 wbar.tcz.dep
-rw-r–r– 1 jchen jchen 43 2012-03-17 15:28 wbar.tcz.md5.txt
-rw-r–r– 1 jchen jchen 3.2M 2012-03-17 15:28 Xlibs.tcz
-rw-r–r– 1 jchen jchen 44 2012-03-17 15:28 Xlibs.tcz.md5.txt
-rw-r–r– 1 jchen jchen 656K 2012-03-17 15:28 Xorg-7.6-lib.tcz
-rw-r–r– 1 jchen jchen 51 2012-03-17 15:28 Xorg-7.6-lib.tcz.md5.txt
-rw-r–r– 1 jchen jchen 132K 2012-03-17 15:28 Xprogs.tcz
-rw-r–r– 1 jchen jchen 24 2012-03-17 15:28 Xprogs.tcz.dep
-rw-r–r– 1 jchen jchen 45 2012-03-17 15:28 Xprogs.tcz.md5.txt
-rw-r–r– 1 jchen jchen 364K 2012-03-17 15:28 Xvesa.tcz
-rw-r–r– 1 jchen jchen 44 2012-03-17 15:28 Xvesa.tcz.md5.txt

./PING:
total 34M
dr-xr-xr-x 2 jchen jchen 4.0K 2012-03-17 17:20 .
drwxrwxr-x 6 jchen jchen 4.0K 2012-03-17 17:19 ..
-r–r–r– 1 jchen jchen 27M 2011-11-28 09:45 initrd.gz
-r–r–r– 1 jchen jchen 7.0M 2011-11-28 09:44 kernel
-r–r–r– 1 jchen jchen 71K 2011-11-28 09:45 logo.16

./tce:
total 7.8M
drwxrwxr-x 2 jchen jchen 4.0K 2012-03-17 15:28 .
drwxrwxr-x 6 jchen jchen 4.0K 2012-03-17 17:19 ..
-rw-r–r– 1 jchen jchen 7.8M 2012-03-17 15:28 mydata.tgz

8) Now let’s hack the core.gz file. Move the ‘tc-citrix-liveCD/boot/core.gz’ file to a temp folder. Then in that temp folder run ‘zcat boot/core.gz | sudo cpio –idum’.

9) Still in that temp folder, run ‘sudo vi etc/init.d/tc-config ’, and comment out the restore scripts and add your one.

# If restore then also pass TCE directory for quick look of mydata.tgz backupfile
#if [ -n "$MYDATA" ]; then
# echo “$MYDATA” > /etc/sysconfig/mydata
#else
# echo “mydata” > /etc/sysconfig/mydata
#fi
#if [ -n "$NORESTORE" ]; then
# echo “${GREEN}Skipping restore as requested from the command line.${NORMAL}”
#else
# TCEDIR=`readlink /etc/sysconfig/tcedir`
# /etc/init.d/tc-restore.sh “$TCEDIR”
#fi
# This forces it restore from the CD
/etc/init.d/tc-restore.sh “/mnt/sr0/tce”

10) Generate a new core.gz file by running ‘find . | cpio –create –format=’newc’ | gzip > ../core.gz’ in the temp folder.

11) Go to the up level of the temp folder and copy the core.gz file back to  ‘tc-citrix-liveCD/boot/’.

12) Run ‘sudo vi /tc-citrix-liveCD/boot/isolinux/isolinux.cfg’ to edit the new boot menu.

DEFAULT menu.c32
PROMPT 0
TIMEOUT 600
ONTIMEOUT live

MENU TITLE Citrix Thin Client Live CD developed by Jackie Chen
MENU VSHIFT 3
MENU ROWS 2
MENU TABMSGROW 15
MENU TABMSG Press ENTER to boot
MENU HELPMSGROW 17
MENU HELPMSGENDROW -3
MENU Automatically Run live CD in # second{,s}…

LABEL live
MENU DEFAULT
MENU LABEL 1) Run TC-Citrix from live CD
TEXT HELP
Live CD is for temporary use only.
Don’t remove the media while the system is running.
ENDTEXT
KERNEL /boot/vmlinuz
APPEND initrd=/boot/core.gz quiet cde showapps desktop=flwm_topside

LABEL ping
MENU LABEL 2) Install TC-Citrix on local hard disk
TEXT HELP
Restore TC-Citrix image to local hard disk.
WARNING: All exisiting data will be wiped!
ENDTEXT
KERNEL /PING/kernel
APPEND vga=normal devfs=nomount pxe ramdisk_size=60000 load_ramdisk=1 init=/linuxrc prompt_ramdisk=0 initrd=/PING/initrd.gz root=/dev/ram0 rw noapic nolapic lba combined_mode=libata ide0=noprobe nomce pci=nomsi irqpoll quiet

13) Return to ‘tc-citrix-liveCD’ root level. Now let’s generate the Live CD iso file ‘sudo mkisofs -r -V tc-citrix-liveCD -cache-inodes -J -l -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../tc-citrix-liveCD.iso .’

14) Go to the up level of the ‘tc-citrix-liveCD’ folder and find your tc-citrix-liveCD.iso.

15) Burn the iso file to a CD. That’s all about it, enjoy Angel

 

More info about the menu settings can be found at: http://www.syslinux.org/wiki/index.php/Comboot/menu.c32

Image & Restore Citrix Thin Client


If you are trying to image and restore the Citrix Thin Client that I mentioned in my previous post – DIY Citrix Receiver Thin Client . There is a little trick you need to play:

1) Boot from the tiny core installation CD.

2) Format the disk manually:

fdisk /dev/sda
then enter the following input :

o<ENTER>
n<ENTER>
p<ENTER>
1<ENTER>
<first cylinder, ENTER>
<last cylinder, ENTER>
t<ENTER>
83<ENTER>
a<ENTER>
1<ENTER>
w<ENTER>

mkfs.ext3 /dev/sda1
sudo mount -t ext3 /dev/sda1 /mnt/sda1

3) Create the boot loader:

mkdir /mnt/sda1/boot
mkdir /mnt/sda1/boot/extlinux
extlinux –install /mnt/sda1/boot/extlinux/
cd /mnt/sda1/boot/extlinux

vi extlinux.conf then type the following lines.
DEFAULT core
LABEL core
KERNEL vmlinuz
APPEND initrd=core.gz quiet  desktop=flwm_topside

cp /mnt/sr0/boot/core.gz .
cp /mnt/sr0/boot/vmlinuz .

4) Install the Master Boot Recorder:
cat /usr/share/syslinux/mbr.bin > /dev/sda

5) Follow the installation instruction DIY Citrix Receiver Thin Client. Uncheck ‘Install boot loader’ when installing the tiny core (very important).

After the reboot, you should be able to use the Image tools (ghost, PING, G4L …) to generate the image. Have fun :)

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

Ten Printing Rules With Citrix XenApp


  1. Since Presentation Server 4.0 (CPS 4.0) use the Citrix Universal Printer Driver based on EMF for client printers, especially with Windows Clients.
    User Policy\ICA\Printing\Universal Printing = Use universal printing only
  2. Client network printer (network printer connected to the client) should also be mapped by EMF and the print output should go through the client in indirect mode.
    User Policy\ICA\Client Printers\Direct connections to print server = Disabled

  3. Print server should always be located in the same network as the XenApp server, especially when the printers are in a WAN location, branch office. This is when not going through the ICA connection (see point 2)

  4. Once Citrix has released the Universal Print Server (UPS), which is expected by the end of 2011, only use the UPS to connect to printers located on the print server.
  5. Set Microsoft group policies to disallow Point-To-Print (P2P), to use print isolation, disallow kernel-mode drivers and render jobs on the print server.
    Computer Configuration\Policies\Administrative Templates\Printers
    • Always render print jobs on the server
    • Execute print drivers in isolated processes
    • Point to Print Restrictions (set to localhost)
    • Disallow installation of printers using kernel-mode drivers
      See also
    • How to Restrict Print Drivers From Being Installed on XenApp Servers Hosted on Windows Server 2008/R2
      http://support.citrix.com/article/CTX128786
    • How to Restrict Print Drivers from Being Installed on XenApp Servers
      http://support.citrix.com/article/CTX120618

  6. Set Citrix user policies to avoid unwanted in-box printer driver.
    User Policy\ICA\Printing\Automatic installation of in-box printer drivers = Disabled

    —– if you cannot use Citrix universal print driver —-

  7. Always use Microsoft native printer driver first, that come with the operating system.
  8. When you use 3rd party printer driver (HP, Lexmark, Xerox etc.), test them first with StressPrinters and make sure the spooler doesn’t crash.
  9. Do not use 3rd party printer driver with print monitors, try to get drivers without monitors or disable/remove them.
  10. Out of experience, avoid PCL6 printer driver if you have to use 3rd party printer driver.

http://www.thomaskoetzing.de/index.php?option=com_content&task=view&id=340&Itemid=307

333 Error on Citrix Servers


Spent couple weeks monitoring and researching, now I can draw a conclusion of the root cause of 333 error in the Citrix/ Terminal Servers. Simply speaking, it is caused by that the servers run out of resources on the 32 bits Windows server due to the limits of paged pool size (650M) and non-paged pool size (250M) on 32 bits Windows .

http://blogs.technet.com/b/markrussinovich/archive/2009/03/26/3211216.aspx

image

The solutions to this issues are:

1) To fix it, use 64 bits Windows servers which has much bigger paged/non-paged size limits (128G) and 64 bits presentation server/ XenApp server.

2) To mitigate it, add more servers into the farm, decrease the maximum users settings and stop the unnecessary services running on the servers to reduce the server load.

3) Use poolmon and findstr to determine if there are any memory leaking process. Leakings are generally caused by the drivers.