Hi all, I rewritten the script to use ITALC in the thinclient
envirorment becasue the original does not work in debian-edu etch. The
"new" script use the envirorment variable $ESPEAKER that is
initialized after the kde login. That means the script have to be run
after it. It wokrs fine when called by ~/.kde/Autostart.

STEP 1: create the file /usr/local/bin/strart_ica.sh
here it is:
-----------
#!/bin/bash

# a perl script was written by Patrick Winnertz 11.12.05
# and modified by Giovanni Gimelli - Osservatorio Tecnologico Italy
# it has been re-written by Valerio Pachera (www.linuxludus.it) as
simple bash script
# licensed under GPL2+
# version 2.0 (21/12/2007)

#SCOPE
# The script scope is to start a ica session on different port for
each thin client and
# on default ports for diskless workstation and the server.
# The port number used for the thinclient will be the last part of the
thinclient IP
# (Read the wiki http://italc.sourceforge.net for more information how
to execute it automatically)

ica="/usr/bin/ica";
#the script will continue only if ITALC clinet (ica) is installed.
if [ -f $ica ];then
        #ends any previous ica session of the user that is running the script
        killall --user $(whoami) ica;
        
        #$ESPEAKER is empty if the script is called on the server or a
Diskless Workstation.
        #That's true only if the script is executed after logged in the
desktop manager.
        if [ -n "$ESPEAKER" ]; then
                #keep the last part of the client IP (ie: 192.168.0.250 --> 250)
                IP=$(echo $ESPEAKER | cut -f 1 -d ':' | cut -f 4 -d '.');
                
                IVSBASEPORT=11000;
                ISDBASEPORT=11400;
                ivsport=$(( $IVSBASEPORT+$IP ));
                isdport=$(( $ISDBASEPORT+$IP ));
                #start ica for thin client
                $ica -noshm -ivsport $ivsport -isdport $isdport -display 
$DISPLAY &
        else
                #execute ica on the server or DW. Default options are ok.
                $ica &
        fi
fi
-----------

STEP 2: execute automaticaly ica at the login
We have to create a link to call start_ica.sh by the users directory
~/.kde/autostart.
May be a better way to do that, so pleas write it!
For the existing users you can use the simple script below (A). For
the new users I suggest to modify /etc/skell (B) so the link is
automaticaly generated at user creation.

A)
-----------
#!/bin/bash
#create link to call script start_ica.sh at the login.
home_path="/skole/tjener/home0";
script_path="/usr/local/bin/start_ica.sh";
created_dir=0;
created_links=0;

for homedir in $(ls $home_path);do
        if [ ! -f $home_path/.kde/Autostart ];then
                mkdir -p $home_path/$homedir/.kde/Autostart;
                (( created_dir+=1 ));
        fi
        
        if [ ! -f $home_path/$homedir/.kde/Autostart/start_ica.sh ];then
                ln -s $script_path $home_path/$homedir/.kde/Autostart;
                (( created_links+=1 ));
        fi
        
        echo -e "$created_dirs folders have been created\n";
        echo "$created_links links have been created";
done
-------------

B)
mkdir /etc/skell/.kde/Autostart
ls -s /etc/skell/.kde/Autostart /usr/local/bin/start_ica.sh

That's all for the thinclients. I tested it and it works.

###################################################################
THE SCRIPT IS THOUGHT TO WORK ALSO WITH DISKLESS WORKSTATIONS (DW).
I didn't have time enought to test it so I count on your help.

After the creation of the DW envirorment we need only to install ITALC
client (ica) and copy the public keys.
So read instruction at
  http://italc.sourceforge.net/wiki/index.php?title=Download:Debian
to isntall ica and execute them in the chroot envirorment
  chroot /opt/ltsp/i386/

Once done it, exit from the chroot and remember to copy the pubblic key
  exit
  mkdir -r /opt/ltsp/i386/etc/italc/keys/private/teacher/
  cp /etc/italc/keys/private/teacher/key
/opt/ltps/i386/etc/italc/keys/private/teacher/
  chmod -R a+r /opt/ltps/i386/etc/italc/
        
That's all.
When a diskless workstation is started and a user log in, the script
start_ica.sh is always called from Autostart but it will execute ica
with standard ports.
Remember to configure Italc master with the IP of the client, without
specifying ports.
I repeat that I didn't test it so please write if does or not.

Valerio.


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to