Aller au contenu

Versions et fonctionnalités

Version

Page écrite pour pupitre 0.1.35-1.

Pupitre évolue vite, de 0.1.0-1 à 0.1.35-1. Cette page dit quelle version a apporté quoi, quels comportements par défaut ont changé en route, et quelles sont les valeurs par défaut des réglages en 0.1.35-1. Si votre serveur n'est pas sur la dernière version, elle vous dit ce qui vous manque.

La source qui fait foi est le journal des modifications du paquet (debian/changelog). Quand une fonction n'y figure pas, la version donnée ici est déduite de l'historique git et marquée « déduit de git ».

Quelle version est installée

dpkg -l pupitre

La colonne Version donne, par exemple, 0.1.35-1. apt policy pupitre donne la version installée et la candidate ; le journal des modifications se lit avec zless /usr/share/doc/pupitre/changelog.Debian.gz, et les changements qui demandent un geste dans NEWS.Debian.gz.

La console web n'affiche pas la version.

Si vous n'êtes pas sur la dernière version

Si votre version est antérieure à Il vous manque
0.1.14 le curseur matériel par défaut (sans lui, le pointeur est dessiné dans l'image, à 8 images par seconde), le mot de passe de la console, les boutons Relink et Logs, la clé USB rebranchée après éjection
0.1.17 une vidéo sans plafond (avant, 1024 Kio/s par siège)
0.1.20 le double tampon différé (moitié moins d'octets pour le même écran)
0.1.26 des répertoires personnels qui ne passent plus à root à chaque mise à jour
0.1.27 le mode élèves (écran de connexion, une session par élève), la fermeture de session boîtier éteint, la règle polkit sans extinction, la mise à jour sans coupure du lien
0.1.28 la couche de contrôle et ses briques (entre 0.1.25 et 0.1.27, les moteurs pour enfants étaient livrés dans /etc/firefox/policies/policies.json)
0.1.30 le bureau de l'école, la page Firefox nettoyée, uBlock Origin, les briques video-fenetre et accueil-pupitre
0.1.31 des journaux de fast_tcp2 durables, lisibles par root seul, sans frappe par défaut
0.1.33 dns-recherche-sure allumée par défaut
0.1.34 la reprise de la clé USB après un montage mort, et la commande de clé rejouée après une chute
0.1.35 quinze sièges par défaut au lieu de treize, et une limite mémoire calculée qui ne fait plus tomber le siège quand PUPITRE_SEATS vaut 0, est vide ou n'est pas un nombre

Changements de comportement par défaut

Les points où une mise à jour change ce que fait le serveur sans que vous ayez rien réglé :

Version Changement Revenir en arrière
0.1.5 le client dort au lieu de tourner en boucle : 1,50 % d'un cœur par siège au lieu de 99,97 % PUPITRE_ATTENTE=0
0.1.14 curseur matériel allumé (introduit éteint en 0.1.8) PUPITRE_CURSEUR=0
0.1.17 plus de plafond de débit vidéo (1024 Kio/s depuis 0.1.3) PUPITRE_DEBIT_MAX=1024
0.1.20 double tampon différé PUPITRE_DOUBLE=1
0.1.24 attente après chaque segment vidéo ramenée de 200 à 100 µs une fois le flux ouvert (introduite en 0.1.23) WYSE_DRAIN_US, réglage interne
0.1.28 moteurs pour enfants sortis de la base Firefox, dans la brique recherche-enfants, installée éteinte sudo pupitre-controle activer recherche-enfants
0.1.31 fast_tcp2 lancé seul masque les rapports d'entrée ; sous le lanceur, c'était déjà le cas depuis 0.1.0 aucun : ne jamais l'enlever chez un élève
0.1.33 dns-recherche-sure allumée, à la première installation et une fois à la montée sudo pupitre-controle desactiver dns-recherche-sure, choix ensuite respecté
0.1.35 le gestionnaire accepte quinze sièges au lieu de treize, et le calcul mémoire compte 15 sièges seats = 13 dans /etc/pupitre/pupitre.conf, PUPITRE_SEATS=13 dans un drop-in des sièges

PUPITRE_CONNEXION reste à fixe par défaut : le mode élèves ne s'allume jamais tout seul.

Matrice des fonctionnalités

Affichage

Fonction Depuis Défaut actuel
Un siège par boîtier, encodeur RLE, fast_tcp2 sur socket brute 0.1.0
Démarrage fiable (3 s laissées à un boîtier qui vient de redémarrer, entrées et clé ouvertes après le premier écran) 0.1.2
Plafond de débit vidéo PUPITRE_DEBIT_MAX 0.1.3 0 (aucun) depuis 0.1.17
Capture adaptative PUPITRE_FPS_RAPIDE (absente du journal des modifications) 0.1.4 (déduit de git) 0, éteinte
Une trame calée sur les en-têtes ne tue plus le siège 0.1.7 WYSE_CALE_STRICT=1 restaure l'ancien
Curseur matériel, forme renvoyée seulement si elle change 0.1.8 allumé depuis 0.1.14
Résolution du siège PUPITRE_ECRAN_L et PUPITRE_ECRAN_H 0.1.8 1280 x 1024
Encodeur 4 à 6 fois plus rapide, même sortie octet pour octet 0.1.19
Double tampon différé (mode 3) 0.1.20 3
Attente après chaque segment vidéo WYSE_DRAIN_US 0.1.23 100 µs depuis 0.1.24

Son

Fonction Depuis Défaut actuel
PulseAudio par siège, volume dans la barre, touches multimédia 0.1.2 allumé, PUPITRE_AUDIO=0 le coupe
Micro nul par défaut, pavucontrol ; plus de coupure du son en écrivant sur la clé 0.1.3
Son d'ouverture de session élève 0.1.30

Entrées

Fonction Depuis
Clavier et souris par tunnels USB 0.1.0
Codes de touche injectés, la disposition gouverne (AZERTY, accents, AltGr), PUPITRE_LAYOUT 0.1.1 (déduit de git), défaut fr
Un seul segment non acquitté par tunnel : le pointeur ne saute plus 0.1.3
Injecteur relancé s'il meurt, touches relâchées à la reconnexion 0.1.27
Pavé numérique allumé à l'écran de connexion 0.1.30

Un clavier ou une souris branchés après l'allumage du boîtier ne sont pas pris de façon fiable : le client ne les configure qu'à l'ouverture du lien, et le boîtier peut redémarrer au branchement. Le boîtier éteint puis rallumé les fait prendre, bureau gardé ; un Relink revient au même, car il fait redémarrer le boîtier. La clé USB, elle, se branche à chaud.

Clé USB

Fonction Depuis
Clé servie par FUSE (disque.img, jamais montée par le noyau du serveur), lanceur « Clé USB », montage au double-clic 0.1.1
La clé appartient à l'utilisateur du siège, éjection refusée tant qu'elle sert, notifications 0.1.2
Clé rebranchée après éjection 0.1.14
Veilleur de clé dans le répertoire personnel de l'élève (mode élèves) 0.1.27
Port isolé du boîtier, à côté des prises audio 0.1.29
Montage mort détaché, commande rejouée après une chute de la clé 0.1.34

PUPITRE_CLE=0 désactive la clé (défaut 1).

Sièges et connexion

Fonction Depuis Défaut actuel
Gestionnaire multi-sièges, une unité systemd par siège, paquet Debian 0.1.0 15 sièges (depuis 0.1.35, 13 avant ; seats = 0 lève la limite), enrôlement automatique
Chaque siège sous son propre utilisateur, répertoires personnels en 0700 0.1.2
Journaux par siège tournés 0.1.9
Limite mémoire souple par siège PUPITRE_MEMOIRE ; configuration zram livrée, systemd-zram-generator en simple suggestion depuis 0.1.11 (recommandé en 0.1.10) 0.1.10 0, éteinte
Le bureau survit à la disparition du boîtier, seul le lien est refait 0.1.13
Lien muet PUPITRE_SILENCE, délai de grâce PUPITRE_GRACE 0.1.13 15 s, 600 s
Gabarits DCP sans identifiants de boîtier en dur 0.1.16
Répertoires personnels non rendus à root par une mise à jour 0.1.26
Mode élèves PUPITRE_CONNEXION=eleves : écran de connexion LightDM, comptes locaux par PAM 0.1.27 fixe
Fermeture de la session si le boîtier reste éteint PUPITRE_FERMETURE 0.1.27 600 s
Rien de l'élève ne survit à sa déconnexion ; ni extinction ni action systemd pour les élèves 0.1.27
Mise à jour du paquet sans couper le lien 0.1.27
Pas de verrouillage d'écran dans la session élève 0.1.30
Quinze sièges par défaut ; PUPITRE_SEATS à 0, vide ou non numérique retombe sur 15 0.1.35 15

Il n'existe pas de connexion par annuaire (AD ou LDAP) en 0.1.35-1, ni d'outil pupitre pour créer les comptes des élèves.

Console web

Fonction Depuis
Console : écran de chaque siège, état, assigner, renommer, identifier, redémarrer, oublier 0.1.1 (déduit de git)
« Vu il y a N » rafraîchi toutes les 5 s 0.1.9
Mot de passe (PBKDF2), refus de démarrer hors boucle locale sans lui 0.1.14 (déduit de git, absent du journal des modifications)
Boutons Relink et Logs 0.1.14 (déduit de git, absents du journal des modifications)

Contrôle et filtrage

Fonction Depuis Défaut actuel
Moteurs pour enfants par politique Firefox 0.1.25 dans /etc/firefox/policies, filtre strict en 0.1.27 brique recherche-enfants depuis 0.1.28, éteinte
pupitre-controle et base Firefox toujours active (télémétrie, études, DNS sur HTTPS coupés) 0.1.28
Brique dns-recherche-sure 0.1.28 allumée depuis 0.1.33
Briques video-fenetre et accueil-pupitre 0.1.30 éteintes
uBlock Origin, page de nouvel onglet nettoyée, about:config bloqué 0.1.30 base
Bandeaux de cookies masqués 0.1.32 base

Le détail est dans Couches personnalisables.

Apparence et logiciels

Fonction Depuis
Apparence PrimTux, PUPITRE_APPARENCE 0.1.1 (déduit de git)
Menus de Firefox et LibreOffice en français ; TuxBot par pupitre-logiciels-primtux 0.1.25
Écran de connexion aux couleurs de PrimTux ; bouton de déconnexion dans la barre (déduit de git) 0.1.27
Logiciels de l'école sur le bureau, dans un ordre fixe 0.1.30
Préfixe Wine de TuxBot préparé sans fenêtre 0.1.32

Exploitation, journaux et RGPD

Fonction Depuis
Journaux par siège dans /var/log/pupitre/seat-N 0.1.0
Frappes masquées dans les journaux sous le lanceur (PUPITRE_QUIET_KEYS=1) 0.1.0
Le lanceur nomme chaque processus mort et sa cause 0.1.6
Fichier de session d'un siège, qui nomme l'élève, lisible par root seul 0.1.27
Journal de fast_tcp2 dans /var/log/pupitre/seat-N, en 0600, 10 gardés par siège ; frappes masquées par défaut du client lui-même 0.1.31

Aucun journal ne capture la frappe ni le contenu par défaut.

Variables des sièges

Ces variables se posent dans un drop-in systemd de pupitre-seat@.service, jamais dans pupitre.conf (voir Couches personnalisables). Défauts lus dans scripts/pupitre-seat en 0.1.35-1.

Variable Défaut Depuis Effet
PUPITRE_CONNEXION fixe (ou eleves, toute autre valeur est refusée) 0.1.27 écran de connexion par siège
PUPITRE_FERMETURE 600 s (0 : jusqu'à PUPITRE_GRACE) 0.1.27 ferme la session de l'élève si le boîtier reste éteint ; le délai réel est le plus petit de celui-ci et de PUPITRE_GRACE
PUPITRE_GRACE 600 s (0 : jamais) 0.1.13 durée pendant laquelle le bureau est gardé sans lien
PUPITRE_SILENCE 15 s (0 désactive) 0.1.13 délai avant de déclarer le lien muet
PUPITRE_UTILE 60 s 0.1.13 durée minimale d'une session qui a servi
PUPITRE_AUDIO 1 0.1.2 son du siège
PUPITRE_CURSEUR 1 0.1.8, allumé depuis 0.1.14 curseur matériel
PUPITRE_CLE 1 0.1.1 clé USB servie
PUPITRE_LAYOUT fr 0.1.1 (déduit de git) disposition du clavier
PUPITRE_APPARENCE 1 0.1.1 (déduit de git) apparence PrimTux
PUPITRE_ECRAN_L, PUPITRE_ECRAN_H 1280, 1024 0.1.8 résolution du siège
PUPITRE_FPS 8 0.1.0 captures par seconde
PUPITRE_FPS_RAPIDE 0 (éteinte) 0.1.4 (déduit de git) capture adaptative ; 30 l'allume
PUPITRE_DEBIT_MAX 0 Kio/s (aucun plafond) 0.1.3, 0 depuis 0.1.17 plafond de débit vidéo
PUPITRE_DOUBLE 3 (1 : ancien mode) 0.1.20 double tampon différé
PUPITRE_ATTENTE 1 (0 : boucle active) 0.1.5 le client dort au lieu de tourner
PUPITRE_QUIET_KEYS 1 0.1.0 journaux sans frappe ; 0 réservé aux essais, jamais chez un élève
PUPITRE_MEMOIRE 0 (1 : calculée ; un nombre : Mio) 0.1.10 limite souple de mémoire (MemoryHigh, jamais MemoryMax)
PUPITRE_MEMOIRE_RESERVE 2048 Mio 0.1.10 réserve gardée par le calcul
PUPITRE_SEATS 15 (0, vide ou non numérique : 15) 0.1.10, 15 depuis 0.1.35 nombre de sièges du calcul mémoire
PUPITRE_ATTEMPTS 5 0.1.0 essais d'ouverture du lien
PUPITRE_READY_TIMEOUT 45 s 0.1.0 durée de chaque essai
PUPITRE_RETRY_COOLDOWN 25 s, doublé à chaque essai raté 0.1.0 pause entre deux essais
PUPITRE_RETRY_MAX 300 s 0.1.1 (déduit de git) plafond de cette pause

Les variables d'apparence (PUPITRE_GTK_THEME, PUPITRE_LANCEURS, PUPITRE_FOND_IMAGE, etc.) sont décrites dans Apparence. D'autres variables PUPITRE_* existent pour les tests ou l'usage interne (PUPITRE_RACINE, PUPITRE_LIBDIR, PUPITRE_CONTROLE_DIR, etc.) : elles ne sont pas des réglages d'administrateur.

Les variables WYSE_* sont lues par le client fast_tcp2 et posées par le lanceur : ce ne sont pas des réglages d'administrateur.

Gestionnaire et console

Dans /etc/pupitre/pupitre.conf (défauts de pupitre/managerd.py) :

Clé Défaut Remarque
[server] interface eth0 l'interface sur le même réseau de couche 2 que les boîtiers
[server] ip vide, lue sur l'interface au démarrage
[server] seats 15 depuis 0.1.35, 13 avant (0 : sans limite)
[server] enroll yes un boîtier inconnu reçoit le plus petit siège libre ; passer à no une fois la salle installée
[web] listen, port 127.0.0.1, 8080 une adresse non locale exige password_file
[web] password_file vide absente du fichier livré, posée par pupitre-web --mot-de-passe

Repères git, pour qui construit depuis les sources

Le dépôt n'a pas de tag de version. Chaque version est repérée par le commit qui ajoute son entrée au journal des modifications ; certaines entrées ont été complétées après ce commit. Les versions 0.1.20 à 0.1.24 partagent le même commit. Une fonction absente du journal des modifications est attribuée à la première version publiée après son commit (« déduit de git »).

Version Commit
0.1.0 7ce897a
0.1.1 aa95e7d
0.1.2 612e50c
0.1.3 6bc4845
0.1.4 576faeb
0.1.5 ebdc6ce
0.1.6 053ef98
0.1.7 26ca667
0.1.8 6398bcb
0.1.9 471f0b8
0.1.10 bc2c688
0.1.11 5dd2fd7
0.1.12 eab06b8
0.1.13 75fda38
0.1.14 2689815
0.1.15 7f2f28b
0.1.16 6bfc388
0.1.17 4f68f0b
0.1.18 6515cb2
0.1.19 f3e5609
0.1.20 à 0.1.24 1880d20
0.1.25 5367769
0.1.26 2d2f853
0.1.27 cb9b3c5
0.1.28 5caa16d
0.1.29 0adeb03
0.1.30 d9b526a
0.1.31 950d014
0.1.32 d523e3e
0.1.33 4a97e7d
0.1.34 b39d0f9