Tuesday, February 20, 2007

HOWTO Install iTALC from source on Ubuntu Edgy - WITH CAVEATS


First of all, I haven't gotten all of the functionality to work yet.

Hopefully, when a final stable 1.0 comes out, italc-master and italc-client 1.0 will just be two more packages in the Ubuntu repositories...

X.Org Module: record

We need to add a module to /etc/X11/xorg.conf, so we'll need to superuser edit it ($ sudo gedit /etc/X11/xorg.conf), find the Section "Module" section and add the following line before the line that says EndSection:

Load "record"


Let's first make sure we have all the dependencies installed. This may take a while...

$ sudo apt-get install build-essential libqt4-dev qt4-dev-tools libjpeg62-dev zlib1g-dev libssl-dev libxtst-dev

Source Tarball

We now need to get the source tarball at the iTALC website. (Go to "Download", select the link under "Source code", and select the file ending in .tar.bz2, in my case, italc-

When you've got the tarball downloaded, you'll need to extract it to its own folder. (Right-click and "Extract Here" works well.)

Install iTALC

Now we'll compile the source code.

Drop to a terminal, navigate to iTALC's new directory (for me, $ cd ~/italc- and run the following commands:

$ ./configure --prefix=/usr
$ make
$ sudo make install

Voila! iTALC is installed!

You're not done, yet...

Set the iTALC Client Application to run on login

This is necessary for both the teacher and student workstations.

You'll need to superuser edit /etc/gdm/Init/Default and /etc/gdm/PreSession/Default ($ sudo gedit /etc/gdm/Init/Default /etc/gdm/PreSession/Default) and add the following at the very top of both of them (just below the introductory block of comments):

killall ica
/usr/bin/ica &

The first command kill any previous ica session that's running before the second command starts a new one up. This allows iTALC to interact with the clients during the login screen as well as after the user logs in, without calling up multiple instances of the client application.

Set up authentication keys

This will allow iTALC to talk to its clients in a secure manner.

The command to create the keys is: $ sudo ica -role teacher -createkeypair

After running this command, you will have a pair of keys in your newly created /etc/italc/keys directory.

  • /etc/italc/keys/private should be readable only to the accounts that should have access to run italc, and should only exist on the computers that will be used to run iTALC. Here that would be the "teacher" and "administrator" accounts on the teachers' workstations. See below for details on accomplishing this.
  • /etc/italc/keys/public should be readable to all, which it is by default, and should exist on every workstation.

One way to make the /etc/italc/keys/private directory readable to only the necessary accounts is as follows:

$ sudo addgroup italc
$ sudo adduser teacher italc
$ sudo adduser administrator italc
$ sudo chgrp -R italc /etc/italc/keys/private
$ sudo chmod -R o-rwx /etc/italc/keys/private

Test it locally

Let's run a quick test just to make sure everything's working ok. We're going to set up iTALC with our own local computer as a client.

iTALC needs to have the Client Application running, and a pair of keys set up in order to launch. If you've been following closely, this should already be done.

Run $ italc to bring up the teacher's iTALC interface.

Now, in the Client-Manager tab on the left, right-click in the list and "Add classroom", then "Add client":

  • Name is only relevant to this iTALC interface and is how iTALC will refer to this particular client. It doesn't have to be, however I've just been using the client's hostname since the hostname we use is indicative of the classroom and workstation.
  • IP/hostname is just that, either the client's IP address (only really useful if you're not using DHCP) or hostname (it's important that you have name resolution set up correctly to be able to find the if you're using hostname; we use WINS).
  • MAC address is important for being able to remotely turn the workstations on (You can find this information by running $ ifconfig and looking for the string labeled "HWaddr", it should look something like 12:34:56:78:90:AB).

Now you should see a thumbnail of your own screen inside of the iTALC interface. Yay, recursion!

BE CAREFUL! If you spend too much time staring at the recursive effects of iTALC on itself, you might end up going a little loopy:

Screenshot of iTALC - for HOWTO

Play around with the interface a bit to get a feel for it, it's pretty intuitive.

Broken Functionality

I've yet to get the following functionality working quite right:

  • The Login button does nothing. (Apparently it works for Windows clients, though)
  • If the student account is forced to logout through iTALC, logging back in freezes the X server.

It's a pretty good product otherwise, and now that most of the functionality is working, I am looking forward to deploying it.


Blogger Lê Kiến Trúc said...

Hello. I'm from VietNam. I'm constructing a Linux system for my high school (i'm a student) because I don't want my school to use illegal software in education (Windows, MS Offcie). I think i can use Edubutu. iTalc can replace NetOpSchool which cost a lot of money. I installed it but i can't make it work on LTSP's enviroment. Because of the bind port of ICA. I found scripts to let iTalc work on LTSP.(http://wiki.skolelinux.de/italc , http://italc.sourceforge.net/wiki/index.php?title=ITALC_in_a_ThinClient_environment)

But it seem doesn't work with Edubuntu (6.10) .I fix the script but it still doesn't work. I think this cause to the IP address of Thin Client. I know that Edutuntu 7.04 has been release with Student Control Panel. But i don't want to change to this distro due to a lot of application which i have compiled to work on 6.10.
Can you give me a advise me of this solution?
Thank you a lot.
P/S:You can reply me by afterlastangel@gmail.com or tin_truc22@yahoo.com
And very sorry about my English.

9:23:00 AM  
Blogger Simón A. Ruiz said...

Unfortunately, I have no experience with thin clients in Edubuntu.

My suggestion would be to either join the italc-users mailing list at http://lists.sourceforge.net/lists/listinfo/italc-users --or to e-mail Tobias Doerffel directly at tobydox@users.sf.net -- and ask for help with your difficulties using iTALC in a Thin Client environment. I would suggest the mailing list as that would get would the attention of Tobias as well as anyone else on the list that has experience with this type of thing.

Don't worry about your English, it is quite understandable. You just may want to be more specific about the problems you are having and what exactly you've already done when you write to the mailing list.

Best of luck with this!

I will also e-mail you this, as requested.

3:12:00 AM  
Blogger Lê Kiến Trúc said...

Where do i must copy key from /etc/italc/keys/public to?

11:19:00 PM  
Blogger Simón A. Ruiz said...

The public key (/etc/italc/keys/public/teacher/key) is necessary to run the Italc Client Application (ica), and must exist both on the teacher workstation and on the student workstations. It should be in that location on both, and be readable but not writeable (chmod 644).


10:17:00 AM  
Blogger Lê Kiến Trúc said...

This comment has been removed by the author.

1:23:00 AM  
Blogger Lê Kiến Trúc said...

Authentication error
somebody tried to access this computer but could not authenticate itseft successfully.

What's wrong when i show Demo?

1:34:00 AM  
Blogger Simón A. Ruiz said...

I'm not sure, as I haven't come across that error.

However, judging from an e-mail that was recently sent to the italc-users mailing list, someone else has, so I'm guessing your problems will be discussed there soon.

Keep an eye on the list.

2:18:00 PM  
Anonymous Anonymous said...

Instructions for Fedora 7:

yum install qt4-devel gcc-c++ libXtst-devel openssl-devel

wget http://internap.dl.sourceforge.net/sourceforge/italc/italc-1.0.3.tar.bz2

tar –xvjf italc-1.0.3.tar.bz2

cd italc-1.0.3

./configure --prefix=/usr
make install
mv /usr/local/lib/libitalc_core.so /usr/lib
ica -createkeypair

add '/usr/bin/ica &' to '/etc/X11/xinit/xinitrc'

10:53:00 AM  
Blogger Simón A. Ruiz said...

Hey, neat! You might consider adding those instructions to the iTALC Wiki.

11:12:00 AM  
Anonymous free ps3 said...

This comment has been removed by a blog administrator.

7:22:00 PM  
Anonymous foo said...

After successful install, there is one part of the tutorial that has me confused.
I am installing an italc client on this Ubuntu system. I already have a italc master on a different Windows system. I don't need to set up a key-pair in this student Ubuntu. I just need to use the already created public key from my Windows master. The instructions only seem to explain how to set up a new key-pair. How do I use one that already exists? Where do I copy the public key from my master to? And how do I register/install it so that my student/client will use it?

Great Tutorial thus far!

Thanks in advance.

1:18:00 PM  
Blogger Simón A. Ruiz said...


Regardless of whether they're created on Windows or Linux, the iTALC authentication keys simple need to be copied as appropriately named files in the correct directories.

(/etc/italc/keys/private/teacher/key & /etc/italc/keys/public/teacher/key for teacher keys under Linux, for example)

For a student workstation that never needs to run the master component, you only need the "public" key to be in place.

Hope that helps!

11:11:00 AM  
Blogger Bad_Sector said...

thanks man..

its pretty clear what to do :)

and for

Lê Kiến Trúc said...

>Authentication error
>somebody tried to access this computer but could not authenticate itseft successfully.

>What's wrong when i show Demo?

run it as super user..it works...

4:18:00 AM  
Blogger Quang Minh said...

Hello. I want ask how to change language on italc.

I have translated language to vietnamese, but i can't see anywhere to changed language on italc

Plz help me

1:01:00 AM  
Anonymous Anonymous said...

hello, i have a problem, i installed the italc client i n ubuntu and the master in windows, that will not let me turn off the ubuntu pc
from the server italc installed on windows?

2:50:00 AM  
Anonymous Aaron Hougton said...


I would love if someone can help me!

All I want to do it is cross-compile iTalc into a windows environment.. I have followed the instructions on the italc wiki to no avail.

If anyone can provide me with some steps on how to do this, please shoot me an email: aaron/at/emc/dot/vic/dot/edu/au


6:03:00 AM  
Blogger Simón A. Ruiz said...

I just want to encourage anyone who wants help with iTALC to join the Italc-users mailing list (find links at the official iTALC homepage), and ask your questions there.

I'm not an iTALC expert by any means; there are far more knowledgeable people than me there, including the application's developer.

9:42:00 AM  
Blogger Rodrigo said...

I get this error when running the "make" command. Could you please check and give me any hing about what is going on?

oot@rodrigo-desktop:~/italc-1.0.9# make
make all-recursive
make[1]: Entering directory `/root/italc-1.0.9'
Making all in lib
make[2]: Entering directory `/root/italc-1.0.9/lib'
if g++ -DHAVE_CONFIG_H -I. -I. -I.. -I./include -I.. -I/usr/include -I/usr/include -I/usr/include/qt4 -I/usr/include/qt4/Qt -D_REENTRANT -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_XML_LIB -DQT_THREAD_SUPPORT -O2 -DBUILD_ICA -DBUILD_LIBRARY -I/usr/include -g -O2 -Wall -fPIC -fno-strict-aliasing -MT dsa_key.o -MD -MP -MF ".deps/dsa_key.Tpo" -c -o dsa_key.o `test -f './src/dsa_key.cpp' || echo './'`./src/dsa_key.cpp; \
then mv -f ".deps/dsa_key.Tpo" ".deps/dsa_key.Po"; else rm -f ".deps/dsa_key.Tpo"; exit 1; fi
In file included from ./include/dsa_key.h:49,
from ./src/dsa_key.cpp:46:
./include/types.h:33: error: ‘uint32_t’ does not name a type
In file included from ./include/isd_base.h:37,
from ./include/local_system.h:31,
from ./src/dsa_key.cpp:47:
./include/italc_rfb_ext.h:55: error: ‘Q_UINT32’ does not name a type
./include/italc_rfb_ext.h:56: error: ‘Q_UINT32’ does not name a type
make[2]: *** [dsa_key.o] Error 1
make[2]: Leaving directory `/root/italc-1.0.9/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/italc-1.0.9'
make: *** [all] Error 2

2:17:00 PM  
Blogger Simón A. Ruiz said...

@Rodrigo, et al,

I must apologize, but it has been years since I touched any of this, and I've had little needed to compile from source since this.

If what I've written above does not answer your questions, you will be best served joining the iTALC mailing lists and asking there.

10:58:00 AM  
Anonymous Anonymous said...

change your OS with UBUNTU and then try.

8:06:00 AM  
Blogger Piffy said...

Build update for Italc 2.0.0 (on Ubuntu 10.04)

You need to install more libraries and cmake. The final command is

sudo apt-get install build-essential libqt4-dev qt4-dev-tools libjpeg62-dev zlib1g-dev libssl-dev libxtst-dev libpam-dev libxfixes-dev libxinerama-dev libxdamage-dev libxrandr-dev cmake

Now follow the instructions, which are

decompress the tarball
mkdir build
cd build
cmake ..

2:37:00 PM  
Anonymous gEO said...

Piffy said...

Build update for Italc 2.0.0 (on Ubuntu 10.04)

Thank you, you saved my day! :)

2:09:00 PM  
Blogger Heberto said...

Ty man =D

1:45:00 AM  
Blogger Dinn Raharja said...

morning i have problem to uninstall the italc software that after we use from source code in ubuntu, thanks :)

8:43:00 PM  

Post a Comment

Links to this post:

Create a Link

<< Home