Open Source

DIY: Set up a PC instructional environment with iTALC

If your company needs to train or test employees and money is tight, you should check out a free tool called iTALC. Jack Wallen explains how to install and set up iTALC.

iTALC (Intelligent Teaching and Learning With Computers) is a great open source tool for setting up a training lab so you can show users how to execute a task and then watch them do it. This free tool is available for Windows and Linux.

In this tutorial, I show how to install iTALC and get a master-student connection. I walk through the installation on a Linux to Linux setup since the Windows setup is very straightforward — you simply need to double-click the installation executable. The use of iTALC is the same on both platforms.

Teacher vs. student

This role is crucial because iTALC will install encryption keys associated with the two roles; to this end, there are two tools to install: italc-master and italc-client. When each tool is installed, the correct keys are used, so it is critical to install the Master on the instructor machine and the Client (or Service only) on the student machine.

Installing the Teacher (or the Master)

Follow these steps to install the iTALC instance that will serve as the Master:

  1. Open Synaptic (or whichever package manager you use). The Windows download is found here.
  2. Search for "italc" (no quotes).
  3. Select italc-master for installation.
  4. Allow any dependencies necessary.
  5. Click Apply to install.

Installing the Student (Client or Service)

On the Linux installation front, follow these steps:

  1. Open Synaptic.
  2. Search for "italc" (no quotes).
  3. Select italc-client for installation.
  4. Allow any dependencies necessary.
  5. Click Apply to install.

On the Windows front, during the installation, be sure to uncheck the iTALC Master checkbox when prompted (Figure A). If the iTALC Master checkbox remains checked, the installation will be for a Master machine. Figure A

Uncheck the iTALC Master checkbox


The keys are very important for the iTALC keys to be properly created. Once the iTALC Master is installed on the Linux machine, you should issue this command: ica -role teacher -createkeypair. The command will create the proper keys in the /etc/italc/keys folder. This folder must be copied to all of the client machines. To copy that folder from Linux to Linux, issue this command for each client machine: scp -r /etc/italc/keys username@ip_address_of_client:/tmp. Username is a username on the client, and ip_address_of_client is the IP address of the client machine. Once those files are on the client machine, you should issue these commands:

sudo rm -rf /etc/italc/keys

sudo mv /tmp /etc/italc/keys

When going from a Linux Master to a Windows Client, there is a trick to getting the right key imported: The same keys that were created with the above commands can be used, but the key filenames that are generated won't work. So on the Windows Client machine, follow these steps:

  1. Open the keys folder that was copied to the Windows client and navigate to keys/public/teacher.
  2. In the keys/public/teacher folder, there will be a file called key. Rename that file to
  3. Fire up the iTalc Key Setup Tool by going to Start | All Programs | iTalc | iTalc Key Setup Tool.
  4. When prompted, select Import Public Key Of Master Computer (Figure B), navigate to the file where the file is housed, click Next, and finish the wizard.

Figure B

The Create A New Key Pair option is only used for the Master computer.

Setting up the classroom and computers

Now that the rough part is over, it's time to set up a classroom and add computers to it. The classroom is created and the computers are added by the Master, which requires the iTALC application to run. Before iTALC itself is started, the ica daemon must be started on both the Master and the Client machine.

On Linux, you need to issue the command ica to start the daemon. You will want to have this daemon started upon bootup, so make sure you do this according to your distribution's instructions. On the Windows machine, the ica daemon will be set to start at boot during the Client installation.

Once the daemon is running, you should start the iTALC tool either from the Applications menu or from the command line. The command to start iTALC is italc. When iTALC starts, the first step is to create the necessary Classroom. To do this, click the Classroom-Manager tab in the left navigation (Figure C). Figure C

Two student machines are connected. (Click the image to enlarge.)

The next step is to right-click anywhere in the blank white space from the left navigation and select Add Classroom. You should give the classroom a name and click OK.

Once the classroom is created, it's time to add machines to that classroom. To do this, right-click the same white space and select Add Computer. In the Client Settings window (Figure D), you should fill out the necessary information for the client machine. In order to use the hostnames on the Linux master, the names may have to be mapped to IP addresses in /etc/hosts. Figure D

Fill out the fields in the Client Settings window.
With a client added, you need to test the connection to the client by expanding the classroom the client belongs to and then double-clicking the client icon. When the Master is connected to the Client, a small icon window will open in the right pane (Figure C) where that Master can interact with the client. When the Master takes control of the Client, the Master can take control, view only, lock the student out, take a screenshot, switch to full screen, or quit (Figure E). Figure E

iTALC is controlling a Kubuntu desktop machine. (Click the image to enlarge.)

Bottom line

iTALC is an ideal tool for any business or organization that needs machines for training purposes but doesn't have the funds for solutions that could drain the IT budget.


Jack Wallen is an award-winning writer for TechRepublic and He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website

Editor's Picks