SDB:KIWI-LTSP local applications
Running applications installed inside client chroot
LTSP provides a technology to run applications installed in the client also. This enables to launch many resource intensive applications such as Firefox to use resources(CPU/RAM) available in the powerful clients instead of running from the server.
LTSP5 on openSUSE includes Firefox as local app. It uses all the plugins installed on the server, including flash, java plugins etc. if the server is 32bit arch.
Open terminal and run the following to launch firefox:
ltsp-localapps /usr/bin/firefox
For debugging purpose xterm can also be launched by running
ltsp-localapps /usr/bin/xterm
To run localapps from the main menu without using the command as above, add the following to /srv/tftpboot/KIWI/lts.conf
LOCAL_APPS_MENU=True LOCAL_APPS_MENU_ITEMS=firefox,xterm
Now launching those applications from the main menu will launch localapps.
Running image as "Fatclient"
LTSP also supports running the entire user session locally using client's hardware if it has sufficient resources. IceWM is already installed in the default prebuild images, to run it locally add the following variable to /srv/tftpboot/KIWI/lts.conf
LTSP_FATCLIENT=True
Likewise,GNOME/KDE desktops can be added to the image and run locally.
Adding application into the image to run as localapps
Note: openSUSE 11.2 i586 DVD5 media/iso is required to be mounted at /mnt/11.2 before running kiwi-ltsp-setup to create images.
To add more applications in the client chroot, add the the space separated list of package names in /etc/sysconfig/kiwi-ltsp as below and run kiwi-ltsp-setup -l to rebuild the image:
LTSP_LOCALAPPS="kde4-kopete"
This will install kopete that can be run as local application from the client.
If you have RPM files with all dependencies and know that it does not require anything more you can do this short way of installing packages:
kiwi-ltsp-setup -l1 rpm -Uvh --nodeps --force --root=/srv/kiwi-ltsp-nfs *.rpm kiwi-ltsp-setup -l2
Next time only step 2 and 3 are required to add more packages.
Be warned that adding more applications in client chroot may degrade the performance.
Creating custom image
Copy /usr/share/kiwi/images/ltsp/suse-VERSION folder to $KIWI_PROFILES_DIR/myimagename/img (default is /srv/kiwi-profiles, see /etc/sysconfig/kiwi-ltsp), for example:
add myimagename into LTSP_PROFILES list in file /etc/sysconfig/kiwi-ltsp, and if you want make custom image:
#this not obligatory, if you skip it myimagename will use default configs mkdir -p /srv/kiwi-profiles/myimagename # copy image configs cp -ar /usr/share/kiwi/image/ltsp/suse-11.3 /srv/kiwi-profiles/myimagename/img # copy netboot/initrd configs cp -ar /usr/share/kiwi/image/netboot/kiwi-ltsp-suse-11.3 /srv/kiwi-profiles/myimagename/netboot
In next version of Kiwi-ltsp you can just use:
kiwi-ltsp-setup --clone suse-11.3 myimagename
Edit config.xml in /srv/kiwi-profiles/myimagename/img/ to add packages and comment removal of files in config.sh, then build the image by giving this command:
kiwi-ltsp-setup -ln myimagename
This will create system image in /srv/kiwi-ltsp/myimagename.img and netboot image in /srv/tftpboot/boot/*-myimagename
See SDB:KIWI-LTSP_NBD_or_AOE for information on how to manage multiple images serving custom images to multiple clients.
Adding NVIDIA or ATI drivers into the image
If you wish to utilize 3D graphics capabilities or run Compiz on the clients, add the binary drivers for your hardware.
Add the following in /usr/share/kiwi/image/ltsp/suse-11.2/config.xml under extra-packages repository.
Note: You also need 11.2 i586 DVD/iso mounted at /mnt/11.2.
For ATI (There does not seem to be fglrx drivers for 11.2 out yet)
<repository type="rpm-md">
<source path="http://www2.ati.com/suse/11.1/"/>
</repository>
and inside /etc/sysconfig/kiwi-ltsp
LTSP_LOCALAPPS="kde4-kopete x11-video-fglrxG01"
For NVIDIA the following in /usr/share/kiwi/images/ltsp/suse-11.2/config.xml under extra-packages repository
<repository type="rpm-md">
<source path="http://download.nvidia.com/opensuse/11.2/"/>
</repository>
and inside /etc/sysconfig/kiwi-ltsp
LTSP_LOCALAPPS="x11-video-nvidiaG01"
or for newer graphics chipsets, check nvidia driver release page for supported hardware:
LTSP_LOCALAPPS="x11-video-nvidiaG02"
Don't forget to run kiwi-ltsp-setup -l after making these changes.
Updating image
To get the latest updates in the image add rpm-md repository http://download.opensuse.org/update/11.3/ (if it not exist) to config.xml as shown above.
Run kiwi-ltsp-setup -s
Or if you don't want overwrite default image: clone it
kiwi-ltsp-setup -ln newimagename #rebuild new image and kiwi-ltsp-setup -c # update configs (don't use kiwi-ltsp-setup -s)
If you are updating the kernel don't forget to modify also the files /usr/share/kiwi/image/*boot/*/config.xml, for example for a netboot for OpenSUSE 11.3 you need to modify /usr/share/kiwi/image/netboot/kiwi-ltsp-suse-11.3/config.xml and /usr/share/kiwi/image/ltsp/suse-11.3/config.xml. Also update the file /usr/share/kiwi/image/netboot/suse-11.3/.checksums.md5 or move it away.
How does Local Apps work?
The "ltsp-localapps" script sets xprop LTSP_COMMAND of root window. The "ltsplocalappsd" daemon sits listening for that xprop change, when it finds something it executes whatever is set as LTSP_COMMAND. The application run like this is the one installed in the client chroot and it uses local resources such as CPU and RAM.