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.
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.
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.
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 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.
ouFigure 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
. Créez une première salle, comme indiqué, clic droit sur cette salle, et procédez aux réglages comme suit :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
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 :
pour afficher les salles paramétrées, vous ramène à l'affichage par défaut en mode visionnage pour sortir des modes de prise de contrôle, etc. affiche le poste maître sur tous les clients, idem pour , sauf que dans ce mode, le client peut suivre la démonstration dans une fenêtre et continuer à travailler à côté. bloque les postes clients pour que les élèves écoutent l'enseignant. envoie une message texte (sic !) à l'écran des clients, même si aucun utilisateur n'est connecté. (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. , 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