Gérer vos salles de cours avec iTALC

Magazine
Marque
Linux Pratique
Numéro
63
Mois de parution
janvier 2011


Résumé
Vous en avez assez que vos élèves passent leur séance de Travaux Pratiques à jouer en réseau ? Marre qu'ils préfèrent surfer sur le Web plutôt que de lever le nez pour suivre votre démonstration au tableau ? Fatigué de vous déplacer pour la nième fois expliquer le fonctionnement d'une commande !Ne cherchez plus, vous avez besoin d'un outil pour gérer les postes de travail. iTALC [1], gratuit et libre, avec toutes ses fonctionnalités, est plus qu'une alternative et s'impose comme un concurrent de choix face aux logiciels propriétaires comme MasterEye et NetSchool Support.

Body

1. Aperçu

Avec iTALC (Intelligent Teaching And Learning with Computers), vous pouvez superviser l'activité des postes étudiants, partager n'importe quel écran avec toute la classe, ou une partie seulement, pour une démonstration, prendre la main sur un poste étudiant pour l'assister ou encore lui bloquer complètement le poste pour qu'il concentre son attention sur vos explications au tableau.

1italc

Figure 1 : Aperçu de l'interface d'iTALC

Le logiciel se base sur le protocole Remote Frame Buffer [2], en mode client/serveur : une partie en mode serveur est à installer sur tous les postes (que nous appellerons le Client pour respecter la terminologie iTALC, et qui correspond au binaire ica) ; le client graphique iTALC est à installer seulement sur le poste du professeur pour se connecter aux différents postes (appelé Maître, toujours suivant la terminologie). Nous allons procéder à l'installation du client par paquet et par compilation, l'installation d'un poste maître et la génération des clés de sécurité, puis à la prise en main et la configuration du logiciel. Tout ça sous Debian 5 et Fedora 11/12/13.

2. Installation

La prochaine version 1.0.10 est (toujours) en phase de test. La dernière version stable est la 1.0.9 et dépend fortement de QT4 (>= 4.3). Vous pourrez donc l'installer sous différents environnements graphiques, mais c'est son installation sous Gnome que nous allons aborder ici.

2.1 Partie Client

2.1.1 Paquetage sous Debian

La version 1.0.9 est disponible sur les dépôts officiels, un simple :

$> aptitude install italc-client

installera le client et les dépendances requises.

2.1.2 Compilation sous Fedora

Il n'existe pas de paquet rpm sous Fedora, rendez-vous sur Sourceforge et téléchargez la dernière version stable 1.0.9 [3]. Une fois l'archive décompressée, il vous faut modifier le fichier lib/include/types.h : la version de GCC 4.4 utilisée par Fedora n'inclut pas les bibliothèques attendues par iTALC, censé être compilé avec GCC 4.3 [4] :

$> make

...

./include/types.h:33: erreur: '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: erreur: 'Q_UINT32' does not name a type

./include/italc_rfb_ext.h:56: erreur: 'Q_UINT32' does not name a type

...

On ajoute l'include manquant pour la bonne compilation, à la ligne 27 du fichier lib/include/types.h :

...

#ifndef _TYPES_H

#define _TYPES_H

#include <stdint.h>

...

On peut compiler et installer après avoir récupéré les dépendances :

$> sudo yum -y install qt-devel libXtst-devel openssl-devel

$> wget http://downloads.sourceforge.net/project/italc/italc/1.0.9/italc-1.0.9.tar.bz2?use_mirror=ovh&ts=1279777801

$> tar xjf italc-1.0.9.tar.bz2

$> cd italc-1.0.9

$> sed -i "27i\#include <stdint.h>" lib/include/types.h # Pour les feignants administrateurs systèmes qui se respectent

$> ./configure --with-qtdir=/usr

$> make

$> sudo make install

2.1.3 Test et lancement du client

Pour les deux types d'installation, vous pouvez tester l'application en lançant :

$> ica

qui va lancer le client en écoute sur le port 5900, et vous devriez voir apparaître son icône dans le tableau de bord.

2italc_tourne

Figure 2 : ça tourne !

Pour lancer automatiquement les clients iTALC et y accéder, aussi bien avant que pendant la connexion d'un utilisateur, il faut éditer /etc/gdm/PreSession/Default et /etc/gdm/Init/Default en ajoutant les lignes suivantes en début de fichier :

...

killall ica #on tue au préalable toute session existante,

/usr/bin/ica & #pour n'en avoir qu'une seule de démarrée.

...

2.2 Partie Maître

2.2.1 Binaire

Sous Debian, lancez :

$> sudo apt-get install italc-master

Sous Fedora, le binaire a été installé dans /usr/local/bin/italc : effacez-le si la station de compilation n'est qu'un poste client, bien sûr.

2.2.2 Génération des clés

Pour sécuriser les communications entre poste client et poste maître, on génère une paire de clés : la clé publique doit être présente et lisible sur tous les postes, la clé privée n'a besoin d'être accessible que par le poste maître et lisible seulement par les enseignants et personnes pouvant lancer l'interface iTALC. Depuis le poste maître, exécutez :

$> ica -role teacher -createkeypair

Ce qui générera les clés privée et publique dans les répertoires /etc/italc/keys/private/teacher et /etc/italc/keys/public/teacher respectivement. Pour protéger l'utilisation de l'application maître, nous allons créer un groupe italc et y ajouter les utilisateurs autorisés à accéder aux clés :

$> sudo groupadd italc

$> sudo usermod -a -G italc prof

$> sudo usermod -a -G italc admin

$> sudo chgrp -R italc /etc/italc/keys/private/

$> sudo chmod -R 640 /etc/italc/keys/private/

Il ne vous reste plus qu'à copier la clé publique dans le répertoire /etc/italc/keys/public/teacher (le créer au besoin) de chaque poste client.

3. Configuration commune

Cette partie est facultative, mais si vous préférez stocker les clés sur un répertoire partagé en NFS, par exemple, vous pouvez indiquer leur chemin dans le fichier iTALC.conf , situé dans /etc/iTALC Solutions sous Fedora, et /etc/xdg/iTALC Solutions sous Debian (attention à l'espace). Ces dossier et fichier de configuration ont été créés àl'exécution d’ica, sinon créez-les.

#chemin vers la clé publique

[keypathspublic]

teacher=/chemin/vers/dossier/nfs/ou/local/public/key

#chemin vers la clé privée à ne préciser que sur la configuration du poste maître

[keypathsprivate]

teacher=/chemin/vers/dossier/nfs/ou/local/private/key

La directive [keypathspublic] est la seule nécessaire et suffisante pour les postes clients, le poste maître doit également spécifier la directive [keypathsprivate].

4. L'interface

4.1 Premier démarrage

Lancer l'application (menu Education > italc ou italc en ligne de commandes). Le dossier .italc est automatiquement créé dans votre dossier personnel, et iTALC va se plaindre de ne pas y trouver de fichier globalconfig.xml, qui contient les Salles/Postes que vous voulez référencer dans le logiciel.

3erreur

Figure 3 : Ajout d'un poste maître

Ce fichier va être créé dès que nous effectuerons des modifications dans la configuration du programme. Commençons donc par ajouter une salle contenant le poste maître : dans le bandeau vertical de gauche, cliquez sur l'icône représentant un ordinateur avec une loupe, ce qui ouvrira le panneau latéral Gestionnaire de Salle. Créez une première salle, comme indiqué, clic droit sur cette salle, Ajouter un ordinateur et procédez aux réglages comme suit :

4ajout

Figure 4 : Ajout d'un poste maître

Double-cliquez sur le poste ajouté, vous devriez obtenir l'affichage de votre propre poste. Continuez la procédure pour toutes vos salles et tous vos postes. C'est long ? Oui, vous n'allez donc pas demander à chaque enseignant, déjà débordé par les élèves, de se taper à la mimine cette configuration redondante et rébarbative : déplacez le fichier globalconfig.xml depuis votre répertoire personnel .italc vers un répertoire accessible par tous les utilisateurs depuis le poste maître, puis ajoutez la directive suivante dans iTALC.conf :

[paths]

globalconfig=/chemin/vers/dossier/nfs/ou/local/globalconfig.xml

Cette configuration deviendra ainsi globale à tous les utilisateurs. Désormais, c'est le fichier ~/.italc/personalconfig.xml qui contiendra les modifications d'utilisation d'iTALC propres à chaque utilisateur, que nous abordons dans la partie suivante.

Avant, tout comme la clé privée, on fixe les permissions du fichier (on en profite pour fixer celles du fichier iTALC.conf au passage) :

$> chown root:italc /chemin/vers/dossier/nfs/ou/local/globalconfig.xml /chemin/vers/iTALC.conf

$> chmod 640 /chemin/vers/dossier/nfs/ou/local/globalconfig.xml /chemin/vers/iTALC.conf

4.2 Prise en main

5interface

Figure 5 : Interface

L'interface est composée de la barre verticale de menu (orange), son panneau d'information associé (turquoise), de la barre d'outils (vert) et du panneau de travail (rouge). Par le menu, vous pouvez accéder à la gestion des salles vue précédemment, aux captures d'écran des clients effectuées, ainsi qu'à certains paramètres de l'interface.

C'est dans la barre d'outils que l'on trouve la plupart des fonctionnalités d'iTALC, à savoir, dans l'ordre : Salles pour afficher les salles paramétrées, Aperçu vous ramène à l'affichage par défaut en mode visionnage pour sortir des modes de prise de contrôle, etc. Démo plein écran affiche le poste maître sur tous les clients, idem pour Démo fenêtre, sauf que dans ce mode, le client peut suivre la démonstration dans une fenêtre et continuer à travailler à côté. Tout verrouiller bloque les postes clients pour que les élèves écoutent l'enseignant. Message texte envoie une message texte (sic !) à l'écran des clients, même si aucun utilisateur n'est connecté. Allumer (par Wake On Lan) nécessite que votre carte réseau soit compatible, correctement paramétrée et que vous ayez rentré son adresse MAC lors de la configuration du poste client. Éteindre, sans commentaire, les deux derniers boutons permettant d'aligner les affichages des postes dans la zone de travail. Depuis cette zone, vous pouvez effectuer ces mêmes opérations individuellement par un clic droit sur un poste, ainsi que d'autres opérations, comme redémarrer une machine, se connecter avec un utilisateur, afficher en plein écran le poste client sélectionné, prendre la main dessus façon VNC ou encore effectuer une démonstration à partir de ce poste.

Conclusion

À ce jour, les seules difficultés rencontrées concernent l'affichage de session graphique faisant tourner des applications 3D, avec lesquelles le logiciel doit être redémarré.

Le corps enseignant est satisfait du logiciel : de prise en main intuitive, les professeurs constatent plus d'interactivité et moins de dilettantisme pendant les TPS. Notre installation comporte plusieurs salles hétérogènes (l'installation d'iTALC sous Windows est laissée comme exercice au lecteur), avec chacune un poste maître, et nous, administrateurs, pouvons également surveiller l'activité de nos petits étudiants pendant les heures en accès libre.

J'espère que cette présentation vous donnera envie d'ajouter iTALC à votre boîte à outils pédagogique, surtout si vous n'avez pas de vidéo-projecteurs dans vos salles !

Travaux Pratiques avec Screen

Présentation

Sans fournir les fonctionnalités d'iTALC, bien sûr, voici un moyen simple de reproduire le même type d'environnement d'assistance utilisateur avec l'outil screen, si vous ne travaillez pas en interface graphique, en utilisant sa possibilité d'ouvrir une session en mode partagé (option -S), de se reconnecter à une session sans déconnecter la précédente (option -x), en ayant au préalable donné les permissions à sa session dans le mode ligne de commandes screen (pour entrer dans ce mode, une fois dans screen, tapez [Ctrl]+[a] suivi de :, un prompt apparaît en bas à gauche, tapez votre commande puis [Entrée]).

Chacun des étudiants et l'enseignant auront plusieurs sessions screen en cours :

- Chaque étudiant (utilisateur « etudiantX » sur poste « poste_etudiantX ») ouvrira une session, accessible en écriture par le professeur, dans laquelle il travaillera.

- L'enseignant (utilisateur « prof » sur le poste « poste_prof ») se connectera aux sessions des élèves pour surveiller leur travail et, au besoin, les assistera.

- Ce dernier démarrera une seule session screen accessible en lecture seulement.

- Chaque étudiant connecte une session screen à la session précédente du professeur pour suivre ses explications.

Pré-requis

Il faut donner les droits suid au binaire screen, et changer les permissions du dossier contenant les sessions, sur chaque poste :

$>sudo chmod +s /usr/bin/screen

$>sudo chmod 755 /var/run/screen

Très léger niveau sécurité, n'oubliez pas de faire la procédure inverse à la fin de la séance.

Session screen étudiant

On crée une session partagée accessible en écriture uniquement par le professeur :

etudiant1@poste_etudiant1:$> screen -S session_etudiant1

etudiant1@poste_etudiant1:$>[Ctrl]+[a] :multiuser on

etudiant1@poste_etudiant1:$>[Ctrl]+[a] :acladd prof

Le professeur n'a plus qu'à se raccrocher à la session :

prof@poste_etudiant1:$>screen -x etudiant1/session_etudiant1

Session screen enseignant

prof@poste_prof:$> screen -S session_prof

prof@poste_prof:$> [Ctrl]+[a] :multiuser on

prof@poste_prof:$> [Ctrl]+[a] :acladd etudiant1,etudiant2 #il faut préciser les utilisateurs un à un, séparés par une virgule

prof@poste_prof:$> [Ctrl]+[a] :aclchg * -w "#" #pour la modification des permissions, on peut ici utiliser le joker * pour spécifier tous les utilisateurs

les élèves se connectent à la session prof comme précédemment :

etudiant2@poste_prof:$>screen -x prof/session_prof

Je vous renvoie vers la page de manuel de screen pour connaître toutes les options de la commande aclchg.

Liens

[1] http://italc.sourceforge.net/

[2] http://en.wikipedia.org/wiki/RFB_protocol

[3] http://sourceforge.net/projects/italc/files/italc/

[4] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504970