Difference between revisions of "Cool Solution - XenApp/XenDesktop on Thinclient with only 1GB Flash"
From Univention Wiki
m (moved UCC: example for XenApp/XenDesktop with only 1GB Flash to Cool Solution - XenApp/XenDesktop on Thinclient with only 1GB Flash)
Revision as of 10:52, 7 April 2014
Thin Clients may have smaller storage devices (i.e. Compact Flash or onboard Flash) than the default 1,2G of the UCC default image.
This is an example for a thin client image for 1GB Flash supporting XenApp.
The configuration file, tested on a HP t5745(1GB), can be found at the bottom of this article.
Software packages required
Here we are going to create a small UCC Thin Client image targeting full Citrix support, tested in a HP t5745 with 1GB flash storage.
In a typical deployment, some of our customers often require these features in order of priority:
- XenApp Session (+Firefox), including german localisation
- Typical ressoures: Sound, Flash, HDX
- if possible special enhancements: truecrypt
- if also possible RDP session as a fallback
For this we are going to need two diferent approaches, first we will use the ucc-image utility to build an image with an edited configuration file, and second we will manually install the packages left from the previous step.
Step 1 - Configuration File
This file is based on the official file for a thin client
Please read UCC Manual Generation of adapted images.
The official images are also explained in Building_UCC_images
Another configuration file to generate a <1GB image Configuration_file_for_a_reduced-sized_thin_client
The image size is set at 794MB:
# Image size in GB size: 0.794
A graphical system is still installed, but without desktop manager:
univention-lightdm (Integration of lightDM login manager into UCC) indicator-session (Session management, status and user switching)
X window system (and input drivers)
xserver-xorg xserver-xorg-input-mouse xserver-xorg-input-kbd
Drivers for some typical video card families
xserver-xorg-video-ati xserver-xorg-video-intel xserver-xorg-video-vesa xserver-xorg-video-nouveau xserver-xorg-video-sis
Tools: (no sessions are installed in this step)
openssh-server (Remote secure shell (SSH) server) language-pack-de firefox-locale-de ntpdate (client for NTP time servers) libmotif4 curl nspluginwrapper libcap2
Integration with the UCC domain, always required:
univention-ucc-theme (Univention theme) univention-corporate-client (Metapackage for client systems)
These are also essential:
# These packages will be installed packages: # Kernel linux-image-generic (Linux kernel image) # Grub univention-ucc-grub (Grub2 configuration)
If you want to include packages from the UCC Cool-Solutions Repository (e.g. univention-ucc-status from above), you need to integrate the Repository in the image:
sources_list: [...] deb http://ucc.software-univention.de/unmaintained/component/ ucc-coolsolutions/all/ deb http://ucc.software-univention.de/unmaintained/component/ ucc-coolsolutions/$(ARCH)/
You also need to include multiverse for some packages XenApp and Citrix Receiver require:
# Use multiverse repository? multiverse: true
Don't forget to rename your image:
# Name of output image name: ucc-%(version)s-thinclient-image-1G.img
/boot is set to 45MB. This is usually enough for one kernel, meaning that kernel updates should be performed by generating the image once again.
partition2_name: boot partition2_size: 45 partition2_fs: ext4 partition2_mountpoint: /boot
The slash partition (/) will take all the available space.
partition3_name: root partition3_size: expand partition3_fs: ext4 partition3_mountpoint: /
The GPT would start at 2MB for alignment, and it will use 10MB of space. No "swap" partition is considered.
Now, after calling
ucc-image -c thinclient-image-1G.cfg
we will get the initial image, somewhere in the /tmp/ directory, e.g. /tmp/tmprUgkUj/ucc-1.0-rev2-thinclient-image-1G.img The precise path will be shown at the end of the image creation process. Alternatively, you can specifiy the target directory using the -t switch.
Manual installation of extra packages
The idea is to first free some space used by apt-get and then temporarily mount additional disks so we get enough cache for packages.
That is to delete the cache of packages in var/cache/apt and var/lib/apt
First let us mount the image in /mnt/img/
mkdir /mnt/img mount -o loop /tmp/tmprUgkUj/ucc-1.0-rev2-thinclient-image-1G.img /mnt/img/
and free some space:
chroot /mnt/img/ apt-get clean
should free var/cache/apt/archives/ and the lists we can delete manually:
there should remain a 'partial' directory in there
Second, let us create and mount the new filesystems
dd if=/dev/zero of=/tmp/cache-apt bs=1M count=500 && mkfs.ext4 -F /tmp/cache-apt dd if=/dev/zero of=/tmp/apt-lists bs=1M count=500 && mkfs.ext4 -F /tmp/apt-lists
Now they can be mounted
mount -o loop /tmp/cache-apt /mnt/img/var/cache/apt/ mkdir -p /mnt/img/var/cache/apt/archives/partial mount -o loop /tmp/apt-lists /mnt/img/var/lib/apt/lists/ mkdir /mnt/img/var/lib/apt/lists/partial
The 'Citrix Receiver for Linux' and the 'USB Support Package' can be downloaded from Here Please copy them into the cache directory
cp icaclient-12.1.0_i386.deb /mnt/img/var/cache/apt/ cp ctxusb-2.2.0_i386.deb /mnt/img/var/cache/apt/
with all ready, we can go into the image
Once inside we can install xenapp session (~200MB in this case) and indicator-power (enables shutdown buttons, ~16MB)
apt-get update apt-get install --no-install-recommends univention-ucc-session-xenapp indicator-power
Install the receiver and the USB support (the system outside the chroot should also be i386. Bug)
dpkg -i /var/cache/apt/icaclient-12.1.0_i386.deb dpkg -i /var/cache/apt/ctxusb-2.2.0_i386.deb
Create symbolic links for the browser plugin (the icaclient package itself fails to create them in this scenario):
mkdir -p /usr/lib/mozilla/plugins/ ln -s /opt/Citrix/ICAClient/npica.so /usr/lib/mozilla/plugins/
Now the image is complete, so we exit and unmount:
apt-get clean sync exit umount /mnt/img/var/cache/apt/ umount /mnt/img/var/lib/apt/lists/ umount /mnt/img
Thanks to the 50MB buffer that UCC reserves, other utilities as flash player can be added later, once the client is rolled out.