Ici on n'a que votre IP, votre pseudo et votre adresse mail que nous ne traitons pas.
Quand vous êtes enregistrés, une seule requête permet de vous afficher les messages que vous n'avez pas lus.
Primtux8 est arrivée! Rendez-vous ici
Vous pouvez désormais vous inscrire librement en cliquant sur "S'enregistrer".

Bienvenue, Visiteur
Vous devez vous enregistrer avant de pouvoir poster.

Nom d’utilisateur
  

Mot de passe
  





Rechercher dans les forums

(Recherche avancée)

Statistiques du Forum
» Membres : 671
» Dernier membre : ERUN Creusot
» Sujets du forum : 1,440
» Messages du forum : 13,316

Statistiques complètes

Utilisateurs en ligne
Il y a actuellement 33 utilisateurs connectés.
» 0 Membre(s) | 32 Visiteur(s)
Baidu

Derniers sujets
L'écran fige à l'installa...
Forum : Demandes d'aide
Dernier message : Steph
28-04-2026, 17:43:59
» Réponses : 4
» Affichages : 45
présentation pascal079
Forum : C'est ici qu'on se présente!
Dernier message : zoom61
28-04-2026, 09:30:58
» Réponses : 3
» Affichages : 69
internet (interdire et en...
Forum : Foire aux questions
Dernier message : Philippe Dpt35
22-04-2026, 17:29:31
» Réponses : 1
» Affichages : 51
Primtux et Zorin OS
Forum : Demandes d'aide
Dernier message : pokomande
13-04-2026, 20:06:33
» Réponses : 2
» Affichages : 89
Migration vers PT9 en Leg...
Forum : Demandes d'aide
Dernier message : Guygoyeg
09-04-2026, 13:53:29
» Réponses : 12
» Affichages : 482
Primtuxmenu en rade
Forum : Demandes d'aide
Dernier message : Steph
06-04-2026, 08:49:14
» Réponses : 39
» Affichages : 12,330
Présentation
Forum : C'est ici qu'on se présente!
Dernier message : Steph
04-04-2026, 14:13:15
» Réponses : 5
» Affichages : 393
Profil Firefox, extension...
Forum : Demandes d'évolution - Tests des iso - Développement
Dernier message : Guygoyeg
26-03-2026, 20:28:39
» Réponses : 2
» Affichages : 179
ISO x64 PrimTux 5
Forum : Foire aux questions
Dernier message : Steph
25-03-2026, 17:51:26
» Réponses : 3
» Affichages : 233
Propositions de mises à j...
Forum : Demandes d'évolution - Tests des iso - Développement
Dernier message : Philippe Dpt35
17-03-2026, 18:20:13
» Réponses : 13
» Affichages : 5,374

 
  les parents à la découverte de primtux
Posté par : khaled4m - 11-04-2020, 10:58:53 - Forum : C'est ici qu'on se présente! - Réponses (5)

Bonjour tout le monde
je viens de m'inscrire, à la suite de la découverte de primtux, je suis novice sous lunix, mais je m'y met, dans l'objectif
d'apprendre tout d'abord à mes enfants l'esprit du logiciel libre.
je ne l'ai pas encore installer faute de conditions, mais c'est en cours, je tiens juste à remercier l’équipe pour ce bijoux d’enseignement.
faute de maîtrise de la langue anglosaxonne, je traine dans l'apprentissage de lunix debian, mais “Nous pouvons jeter des pierres,
nous plaindre d'elles, trébucher dessus, les escalader, ou les utiliser pour construire.”.
et à l'occasion je remercie le soutien de debian-facile, c'est la ou j'ai découvert la caverne d'ali baba, c'est une super communauté.
pour résumé je suis ravi de la découverte.

Imprimer cet élément

  Papa tux
Posté par : Saturne - 06-04-2020, 14:30:44 - Forum : C'est ici qu'on se présente! - Réponses (4)

Bonjour,

utilisateur de Primtux depuis plusieurs années maintenant je n'avais jamais pris le temps de me présenter... confinement oblige, je m'y colle et j'en profite pour faire de cette présentation un mémo de mon installation xD

J'ai beau être prof dans ma vraie vie, ce n'est pas pour mes élèves que j'utilise Primtux mais pour mes enfants. Linuxien depuis 2008, je reste un éternel débutant qui se retrouve souvent coincé dans ses tentatives, mais j'ai appris à écluser les nombreux forums et docs consacrés à notre système favoris.
J'utilise principalement Ubuntu sur mes PC, mais j'ai aussi fait un long séjour sur Debian lorsque j'avais encore du temps pour bidouiller (comprendre : avant d'être papa !). Même si vous ne m'y croiserez plus faute de temps, j'ai déjà aperçu certains d'entre vous sur ubuntu-fr ou j'utilise le pseudo Julientroploin


Lorsque ma grande a été en age de manier une souris, je lui ai reconditionné le Compaq de ma signature avec Primtux, sans trop de problème à l'époque, elle a commencé en Mini avant de passer rapidement en Super et fait désormais usage de la session Maxi... même si je dois avouer qu'elle délaisse bien souvent le vieux PC pour la tablette de maman !


Mon 2nd ayant atteint à son tour l'age de réclamer un clavier sur lequel écrire son prénom, je me suis évidement tourné vers primtux pour reconditionné un PackardBell qui tournait sur Xubuntu depuis quelques années. Malheureusement pour ma santé mentale, c'est un PC bien plus capricieux. En cause une carte graphique un peu exotique : Via S3 Unichrome Pro.


PrimTux5-Debian9-i386 refusant d'installer GRUB après installation malgré plusieurs tentatives, je me suis tourné vers PrimTux4-Debian8-i686-2018-11-21 qui s'est installée directement mais refusait de démarrer.
Me doutant que le problème venait de la carte graphique, j'ai démarré en recovery mode qui m'a bien permis d'arriver à une console, c'est le lancement de lightdm qui plantait ma carte graphique.
Après vérification et génération d'un xorg.conf (en adaptant https://doc.ubuntu-fr.org/xorg#regenerer..._xorgconf), il s'avère que le "bon" driver (openchrome=celui qui fonctionnait quand j'étais sous Xubuntu) était bien actif... Je n'ai donc eu d'autre choix que de le remplacer par le driver vesa.


Et voilà l'antiquité sous Primtux4, avec quelques artefacts graphiques, mais fonctionnelle. Je ne pense pas créer de demande d'aide pour améliorer la situation, je ne pense pas qu'il y ait de solution, mais si quelqu'un à une idée, je reste preneur d'une piste. J'ai atteint mes limites...
Merci en passant à la personne qui a rédigé le tuto pour désactiver le pavé tactile qui empêche de taper le mdp administrateur.


Saturne

Imprimer cet élément

  PrimTux5 Debian9 i386 - impossible de booter en live-USB
Posté par : sunkart - 06-04-2020, 14:26:59 - Forum : Demandes d'aide - Réponses (18)

Bonjour,

Suite à ma découverte de cette distribution après conseil sur le forum Ubuntu Fr, j'ai téléchargé l'image iso PrimTux5.Debian9.i386.hybrid dont le lien est disponible dans la rubrique Télécharge du site.
Après moult test, impossible de booter sur la clé USB créée à partir de l'image ISO/
J'ai testé la création avec l'utilitaire gnome-disk, en ligne de commande, avec 3 clés différentes et depuis 2 machines différentes ... rien. J'ai le message "No boot sector on usb device".

A noter que j'ai tenté avec succès de booter sur un live-usb de xbuntu 18.04.4. C'est d'ailleurs la distribution installée sur le laptop sur lequel je souhaite installer PrimTux et qui tourne sans problème.

Est-ce que c'est un problème dans l'ISO ?

Merci d'avance de votre aide.
Bonne journée
Cyril

Imprimer cet élément

  Hello there
Posté par : sunkart - 06-04-2020, 14:13:58 - Forum : C'est ici qu'on se présente! - Réponses (3)

Bonjour à tous,
Cherchant des logiciels éducatifs, j'ai fini par tomber sur PrimTux.
L'idée est que le laptop sera utilisé par deux garçons de 8 et 10 ans et j'ai l'impression que PrimTux pourra répondre à ce besoin.

Au plaisir d'échanger avec vous sur le forum.
Bonne journée
Cyril

Imprimer cet élément

  disk boot failure
Posté par : Alkaswaba - 05-04-2020, 18:48:23 - Forum : Tutoriels généraux - Réponses (2)

Bonjour, bonsoir,

Je reviens une nouvelle fois avec un soucis. Mon conjoint a branché un autre disque dur sur mon pc primtux.
Ce disque dur a été débranché depuis mais maintenant, je ne peux plus démarrer le mien, j'ai l'erreur suivante au démarrage :

Disk book failure, insert system disk and press enter.

https://drive.google.com/open?id=1O1Mq9-...aeg23fgFch

Je suis allée voir dans le bios mais en vain ...

https://drive.google.com/open?id=1O4t4Tl...kiiqxcQ1qH

https://drive.google.com/open?id=1NzXBZ5...IpOVGrLK3n


Que puis-je faire ? Sachant que je n'ai pas de lecteur cd-rom sur ce pc (c'est un pc fait maison avec des pièces récupérées par ci par là)

Voici des photos de l'écran (je les stock ailleurs, je laisse les liens car c'est trop gros pour être affiché directement ici)

Merci d'avance pour votre aide...

Imprimer cet élément

  [Résolu] Lien de téléchargement Primtux 4
Posté par : Saturne - 05-04-2020, 17:36:48 - Forum : Demandes d'aide - Réponses (2)

Bonjour,
après avoir échoué à installer Primtux 5 version 32bits sur une très vieux portable (refus de configuration du miroir puis refus d'installer GRUB), je voulais télécharger Primtux 4 ici : https://sourceforge.net/projects/primtux...o/download
Malheureusement après 3 tentatives aujourd'hhui, le téléchargement aboutit toujours à un échec au bout de qq centaines de Mo.
Du coup, double question :
- Ce lien marche t il chez vous ? existe il un autre lien de téléchargement ? J'ai cherché en vain...
- mieux : existe t il un torrent fiable ? j'en ai trouvé un ici mais le nom de l'iso est légèrement différent et surtout Firefox me signale qu'il bloque un mineur de cryptomonaie sur ce site... Ça n'inspire pas confiance ! https://linuxtracker.org/index.php?page=...5e8652f11c

Merci d'avance,
Saturne

Imprimer cet élément

  Terminaux légers/serveur pour Primtux 3 amd64 legacy et Raspberry Pi
Posté par : moricef1 - 03-04-2020, 20:08:06 - Forum : Tutoriels généraux - Réponses (4)

Linux Terminal Server Project (LTSP]

En 2015, à l’occasion d’une discussion avec notre directrice d’école, il s’est
avéré que l’état du parc informatique dans sa classe de petite et moyenne sections était bien en
dessous de ses besoins. Ceux-ci sont de quatres postes au plus. Considérant le coût important
que peut représenter l’achat de postes informatiques complets (environ 2900 € pour 4 postes),
c’est vers une architecture client-serveur, qui rempli adéquatement les conditions d’économie de
place et de coûts, que mon choix se portera. Le rôle de clients sera attribué aux Raspberry Pi, des
nano-ordinateurs mono-carte de faible coût et peu gourmands en énergie électrique. Le serveur,
qui sera aussi serveur de sauvegardes pour la mairie, fera tourner une distribution éducative. La
machine sera un ordinateur de bureau de bonne facture avec un bon processeur et suffisamment
d’espace disque et de mémoire. L’ensemble fonctionnera sous des systèmes d’exploitation GNU-
Linux. Le choix de Linux s’explique par l’absence de coût d’installation logicielle (pas licences à
payer) et par la fiabilité (peu ou prou de virus) et la stabilité du système, donc de sa maintenance
(très peu de redémarrage des serveurs, etc).


À la recherche d’informations concernant un système clients-serveur à base de Raspberry, je
découvre le projet Linux Terminal Server Project (LTSP)[LTSP]. Celui-ci, grace à debootstrap,
permet de construire un système complet dans un répertoire donné et la commande chroot
permet « d’entrer » dans ce nouveau système.
Dans un premier temp, j’étais convaincu que ce système correspondrait en tout point à mon
projet : LTSP permet en effet de mettre en place assez facilement et rapidement un système
client-serveur linux en recyclant comme clients des machines de faibles puissances ou obsolètes en
regard de la demande croissante en ressources des systèmes actuels. De plus, LTSP est largement
plébicité dans le domaine de l’informatique pédagogique et il existe de nombreux exemples où
il est couplé avec le Raspberry.
Mais dans les faits, l’installation d’un système racine via LTSP est assez longue, et hasar-
deuse si la connexion internet est de qualité moyenne : à la moindre coupure inetrnet, il faut
recommencer toute l’installation du système chrooté.
Nous avons finalement constaté que LTSP n’était qu’une collection de scripts, une sorte
de front-end, utilisant en arrière-plan des outils déjà existants de base sous Linux, conçu pour
faciliter l’installation du système par des utilisateurs n’ayant pas de grandes connaissances en
informatique et pour correspondre à une plage de systèmes assez large.
Il est également clair que LTSP n’est pas fait pour une virtualisation totale car les scripts
ne prennent leur configuration qu’installés en dur dans le système hôte.
LTSP est prévu en fait pour être installé directement sur la machine hôte, comme système
dédié.
Or, pour des questions de sécurité évidentes, car le serveur sera aussi utilisé comme serveur
de sauvegardes pour la mairie, il n’est pas question de mélanger les activités scolaires et les
activités administratives de la mairie dans un même environnement.
Ainsi, devant le manque de documentation et le fait qu’en utilisant les outils sous-jacents
déjà complètement documentés, nous obtiendrions un résultat semblable, nous avons abandonné
LTSP pour ne garder de lui que son gestionnaire de connexion LTSP Display Manager (LDM)
sur les Raspberry.
[h] Les outils de base Unix/GNU/Linux[/h]
En décorticant LTSP, nous avons constaté que :
— l’installation du système chrooté peut se faire sans LTSP, directement avec les outils de
base debootstrap et chroot
— le principe de communication entre les serveur LTSP et les clients est basé sur SSH 2 .
— Nous avons utilisé et configuré le protocole SSH pour la communication entre les Rasp-
berry et le serveur. C’est par SSH, que sont transmises les actions du clavier et de la
souris et par lui encore qu’arrivent les images à l’écran.
Le son est géré à part par le serveur de son Pulseaudio.



La partie logicielle

Présentation du système

De fait, lors des tests sur les Raspberry avec Raspbian Jessie installée, nous avons pu constaté
l’évolution de SytemVInit vers systemd. Par la suite, j’ai abandonné le principe de chroot pour
celui de conteneur par systemd-nspawn, beaucoup plus simple à mettre en place et à contrôler.
Primtux tournera donc dans un conteneur systemd-nspawn, l’évolution du chroot utilisé dans
LTSP.
Ceci est valable pour primtux 3 amd64 legacy et raspberry sous raspbian stretch lite avec systemd.
Toutes les commandes sont effectuées en tant qu'administrateur root




Les clients raspberry

Sur le raspberry, on commence par installer l'image sur la carte sd puis au premier lancement, on lance raspi-config pour configurer les locales en fr UTF8, le clavier en français azerty et le fuseau horaire, le nom d'hôte et passer au Predictable Network Interface Names via raspi-config -> Network options -> N3 Network interface names. Ref. :  https://www.raspberrypi.org/forums/viewt...p?t=191252

Ensuite on force l'adresse MAC  de la carte réseau dans /boot/cmdline.txt en rajoutant à la fin :

Code :
smsc95xx.macaddr=B8:27:EB:XX:XX:XX

(juste changer les 3 derniers couples de valeurs)

Activation du serveur ssh
Créer un fichier texte vide nommé ssh dans le répertoire /boot

Installer les paquets nécessaires au son et LDM

On installe ensuite les paquets suivants : xserver-xorg pulseaudio pulseaudio-module-zeroconf alsa-base ldm fuse et ntfs-3g (pour pouvoir monter les clés usb en ntfs)

Code :
apt-get update && apt-get upgrade && apt-get install xserver-xorg pulseaudio pulseaudio-module-zeroconf alsa-base ldm fuse ntfs-3g

Activation du montage des périphériques de stockages USB

Remplacer la ligne MountFlags=slave par MountFlags=shared dans /lib/systemd/system/systemd-udevd.service

Code :
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=udev Kernel Device Manager
Documentation=man:systemd-udevd.service(8) man:udev(7)
DefaultDependencies=no
Wants=systemd-udevd-control.socket systemd-udevd-kernel.socket
After=systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-sysusers.service
Before=sysinit.target
ConditionPathIsReadWrite=/sys

[Service]
Type=notify
OOMScoreAdjust=-1000
Sockets=systemd-udevd-control.socket systemd-udevd-kernel.socket
Restart=always
RestartSec=0
ExecStart=/lib/systemd/systemd-udevd
KillMode=mixed
WatchdogSec=3min
TasksMax=infinity
MountFlags=shared
MemoryDenyWriteExecute=yes
RestrictRealtime=yes
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6

puis rebooter

Configuration du réseau

La configuration réseau sera effectuée par le biais de systemd-networkd par DHCP.

Passer de Network Manager à Systemd-Networkd

Il est relativement simple de passer de Network Manager à systemd-networkd (et vice versa).
Tout d'abord, désactivez le service network-manager et activez systemd-networkd comme suit :

Code :
systemctl disable network-manager
systemctl enable systemd-networkd
systemctl start systemd-networkd

Vous devez également activer le service systemd-resolved, utilisé par systemd-networkd pour la résolution de noms de réseau. Ce service implémente un serveur DNS de mise en cache.

Code :
systemctl enable systemd-resolved
systemctl start systemd-resolved

Une fois démarré, systemd-resolved créera son propre fichier resolv.conf dans le répertoire /run/systemd. Cependant, il est courant de stocker les informations de résolution DNS dans /etc/resolv.conf et de nombreuses applications reposent toujours sur /etc/resolv.conf. Pour des raisons de compatibilité, créez un lien symbolique vers /etc/resolv.conf comme suit.

Code :
rm /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
systemctl restart systemd-resolved
systemctl restart systemd-networkd

Dans /etc/dhcpcd.conf, on change :

Code :
# Use the hardware address of the interface for the Client ID.
clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
#duid

Commenter la valeur duid et dé-commenter la valeur clientid pour avoir une demande basée sur l'adresse mac auprès du serveur dhcp

Configuration du serveur de son PulseAudio

On ajoute si il n'y est pas déjà le fichier /etc/asound.conf :

Code :
pcm.!default {
        type hw
        card 0
        device 0
}

ctl.!default {
        type hw
        card 0
        device 0
}

Afin de démarrer pulseaudio en tant que système via systemd, créer le fichier /etc/systemd/system/pulseaudio.service

Code :
[Unit]
Description=PulseAudio daemon

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
PrivateTmp=true
ExecStart=/usr/bin/pulseaudio --system --realtime --disallow-exit --no-cpu-limit

pour autoriser les flux audio en réseau pour pulseaudio, on rajoute à la fin du fichier /etc/pulse/system.pa  :

Code :
load-module module-native-protocol-tcp auth-ip-acl=192.168.0.0/16;127.0.0.1
load-module module-zeroconf-publish

et dans la section réseau de /etc/pulse/default.pa :

Code :
### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp auth-ip-acl=192.168.0.0/16;127.0.0.1
#load-module module-native-protocol-tcp
#load-module module-zeroconf-publish

Lancer manuellement pulseaudio pour vérifier qu'il n'y a pas d'erreurs :

Code :
systemctl start pulseaudio.service
systemctl status pulseaudio.service

et pour le faire se lancer au démarrage :

Code :
systemctl enable pulseaudio.service

Connexion au serveur par LDM

Créer le service  /etc/systemd/system/ldm-primtux3-connect.service. On lance le script après l'établissement du réseau.  :

Code :
[Unit]
Description=ldm-primtux3-connection
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/root/primtux_client.sh

[Install]
WantedBy = multi-user.target

Le script /root/primtux_client.sh qui est lancé :

Code :
#!/bin/sh

# Préparer le server X (affichage)
/usr/bin/Xorg &
export DISPLAY=:0

# attendre que X se lance
/bin/sleep 5

# Variables pour LDM

export LDM_XSESSION=startfluxbox
export LDM_SSHOPTIONS="-o StrictHostKeyChecking=no -o CheckHostIP=no"
export LDM_SERVER=192.168.2.4

# Lancer LDM qui redémarre automatiquement si il est stoppé
while true
do
  /usr/sbin/ldm
done

Rendre le script executable : 

Code :
chmod +x /root/primtux_client.sh

Clonage de la carte SD du Raspberry

Voir ce tuto : http://www.framboise314.fr/clonez-la-car...pberry-pi/. N’oubliez pas de modifier l’adresse MAC dans /boot/cmdline.txt et le nom d’hôte dans raspi-config (ou dans /etc/hostname) après le clonage.




Le serveur headless debian stretch (headless : sans interface graphique)
(Je n'explique pas tout ici pour le serveur)

Sur le serveur, les commandes qui suivent sont à exécuter en tant que root.

Le serveur est installé sur 2 disques durs de 1 TO chacun avec 2 cartes réseau.
Les disques sont partitionnés avec raid 1 logiciel et lvm.

Configuration du réseau

La configuration réseau sera effectuée par le biais de systemd-networkd. Sur les deux cartes réseau présentes physiquement, une sera configurée en DHCP sur un sous-réseau 192.168.10.0/24 et la seconde sera pontée et obtiendra aussi son adresse par DHCP sur le sous-réseau 192.168.2.0/24. Les deux cartes seront de toute manière en adressage statique sur le serveur DHCP. Le conteneur aura une adresse séparée 192.168.2.4/24, dirigée sur le pont, via une interface réseau virtuelle sur l'hôte.

Passer de Network Manager à Systemd-Networkd
Il est relativement simple de passer de Network Manager à systemd-networkd (et vice versa).
Tout d'abord, désactivez le service network-manager et activez systemd-networkd comme suit.
*
Code :
systemctl disable network-manager
systemctl enable systemd-networkd
systemctl start systemd-networkd

Vous devez également activer le service systemd-resolved, utilisé par systemd-networkd pour la résolution de noms de réseau. Ce service implémente un serveur DNS de mise en cache.

Code :
systemctl enable systemd-resolved
systemctl start systemd-resolved

Une fois démarré, systemd-resolved créera son propre fichier resolv.conf dans le répertoire /run/systemd. Cependant, il est courant de stocker les informations de résolution DNS dans /etc/resolv.conf et de nombreuses applications reposent toujours sur /etc/resolv.conf. Pour des raisons de compatibilité, créez un lien symbolique vers /etc/resolv.conf comme suit.

Code :
rm /etc/resolv.conf
ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Configurer les connexions réseau avec systemd-networkd

Pour configurer les périphériques réseau avec systemd-networkd , vous devez spécifier les informations de configuration dans les fichiers texte avec l’extension .network. Ces fichiers de configuration réseau sont ensuite stockés et chargés depuis /etc/systemd/network. Lorsqu'il y a plusieurs fichiers, systemd-networkd les charge et les traite un par un dans l'ordre lexical.
Commençons par créer un dossier /etc/systemd/network.

Code :
mkdir /etc/systemd/network

Lister les noms des interfaces réseau ( Predictable Network Interface Names ) avec la commande ip link :

Code :
ip link
Code :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 40:8d:5c:6f:c4:1d brd ff:ff:ff:ff:ff:ff
3: enp4s1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP mode DEFAULT group default qlen 1000
    link/ether 3c:8c:f8:21:06:d7 brd ff:ff:ff:ff:ff:ff

Configurons d'abord la première carte réseau enp2s0 pour  DHCP. Pour cela, créez le fichier de configuration suivant. Le nom d'un fichier peut être arbitraire, mais rappelez-vous que les fichiers sont traités dans l'ordre lexical.

Code :
nano /etc/systemd/network/enp2s0.network
Code :
[Match]
Name=enp2s0
[Network]
DHCP=v4

La seconde carte réseau sera attribuée au sous-réseau ltsp via un pont (bridge) br0 :

Code :
nano /etc/systemd/network/enp4s1.network
Code :
[Match]
Name=enp4s1

[Network]
Bridge=br0

Création du pont br0 :

Code :
nano /etc/systemd/network/bro.netdev
Code :
[NetDev]
Name=br0
Kind=bridge

Le pont br0 est configuré en DHCP

Code :
nano /etc/systemd/network/bro.network
Code :
[Match]
Name=br0

[Network]
DHCP=v4
Code :
systemctl restart systemd-networkd

Création du conteneur primtux3


Dans /var/lib/container/primtux3 en y copiant une Primtux 3 déjà installée sur une machine virtuelle Virtualbox sur une ordinateur du réseau.
Sur le serveur, à cause des limitations de droits de connexion en ssh, créer auparavant un répertoire de destination intermédiaire dans le compte utilisateur:

Code :
sudo mkdir primtux3_vm

Depuis l’ordinateur sur lequel est installée la machine virtuelle et dans un terminal à l’intérieur de cette même machine virtuelle , en excluant les fichiers et répertoires inutiles au conteneur, copier le système Primtux3 vers le serveur dans le compte utilisateur par rsync  via ssh :
Créer d’abord le fichier d’exclusion.

Le fichier exclud.lst :

Code :
/tmp
/mnt
/etc/fstab

Lancer la copie du système sur le port ssh que vous avez déterminé lors de la configuration du serveur openssh (non expliquée ici) :

Code :
sudo rsync -ravHz --exclude-from=exclud.lst -e "ssh -p 222" / user@192.168.X.X:~/primtux3_vm/

Ensuite sur le serveur, copier le répertoire /home/user/primtux3_vm en le renommant vers /var/lib/machines/ :

Code :
cp -a /home/user/primtux3_vm /var/lib/machines/primtux3

Changer le propriétaire du répertoire nouvellement créé pour root :

Code :
sudo ls -l /var/lib/machines/primtux3
sudo chown -R root : /var/lib/machines/primtux3

Créer ensuite un service primtux3 à lancer au démarrage du serveur. Il faut ajouter des directives ExecStartPost qui sont exécutées après le démarrage du conteneur car en cas de redémarrage, systemd-nspawn modifie les UID et les droits des utilisateurs contre une UID unique et enlève le bit setuid de /usr/bin/sudo :

Code :
nano /etc/systemd/system/primtux3.service
Code :
[Unit]
Description=Container primtux3

[Service]
ExecStart=/usr/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --directory=/var/lib/machines/primtux3 --network-bridge=br0
ExecStartPost =/bin/bash -c "chown -R root: /var/lib/machines/primtux3"
ExecStartPost =/bin/bash -c "chmod u+s /var/lib/machines/primtux3/usr/bin/sudo"
ExecStartPost =/bin/bash -c "chown -R 1000:1000 /var/lib/machines/primtux3/home/administrateur/"
ExecStartPost =/bin/bash -c "chown -R 1001:1001 /var/lib/machines/primtux3/home/01-mini/"
ExecStartPost =/bin/bash -c "chown -R 1002:1002 /var/lib/machines/primtux3/home/02-super/"
ExecStartPost =/bin/bash -c "chown -R 1003:1003 /var/lib/machines/primtux3/home/03-maxi/"

KillMode=mixed
Type=notify
RestartForceExitStatus=133
SuccessExitStatus=133

[Install]
WantedBy=multi-user.target

Pour le lancer au démarrage du système via systemd-nspawn, il faut l'activer ainsi :

Code :
systemctl enable primtux3.service

et pour le lancer manuellement :

Code :
systemctl start primtux3.service

Configuration du son coté serveur

Toutes les données sont transférées par ssh sauf le son qui l’est par le serveur de son pulseaudio sur les raspberry.
Dans chaque compte, il faut indiquer où aller chercher le serveur de son pulseaudio - c’est-à-dire sur les raspberry : ça se fait dans ~.fluxbox/startup en ajoutant
PULSE_SERVER=$LTSP_CLIENT
export PULSE_SERVER
et aussi pendant qu’on y est
export LANG=fr_FR.UTF-8
afin d’avoir primtux3 en français. Il faut garder le même nombre de lignes au fichier donc on remplace 3 lignes commentées par les précédentes :
Code :
#!/bin/sh
#
# fluxbox startup-script:
#
# Lines starting with a '#' are ignored.

# Change your keymap:
xmodmap "/home/primtux/.Xmodmap"

# Applications you want to run with fluxbox.
# MAKE SURE THAT APPS THAT KEEP RUNNING HAVE AN ''&'' AT THE END.
#
PULSE_SERVER=$LTSP_CLIENT
export PULSE_SERVER
export LANG=fr_FR.UTF-8
# idesk &
#
# Debian-local change:
#   - fbautostart has been added with a quick hack to check to see if it
#     exists. If it does, we'll start it up by default.
which fbautostart > /dev/null
if [ $? -eq 0 ]; then
    fbautostart
fi

# And last but not least we start fluxbox.
# Because it is the last app you have to run it with ''exec'' before it.
exec /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 &
exec xfce4-panel &
exec lxpanel &
exec rox -p 1 &
# exec /usr/bin/BNE-Linux &
# exec /usr/local/bin/primtux/handymenu-mini &
# exec /usr/local/bin/primtux/handymenu-super &
# exec /usr/local/bin/primtux/handymenu-maxi &
exec /usr/local/bin/primtux/accueil &
# exec xscreensaver -nosplash &
exec fluxbox
# or if you want to keep a log:
# exec fluxbox -log "/home/primtux/.fluxbox/log"
puis pour ne pas laisser quiconque éteindre ou redémarrer le container ce qui rendrait toute connexion depuis les raspberry inopérante, il faut supprimer dans /usr/share/shutdown/shutdown_gui.glade les lignes 23 à 84  tout ce qui concerne shutdown et reboot et modifier le placement des images dans la fenêtre (plus simplement copiez ce fichier à la place de l’original) :
Code :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--Generated with glade3 3.4.1 on Sat Feb 16 01:52:03 2008 -->
<glade-interface>
  <widget class="GtkWindow" id="ShutdownBox">
    <property name="width_request">350</property>
    <property name="height_request">310</property>
    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
    <property name="title" translatable="yes">PrimTux Shutdown Menu</property>
    <property name="resizable">False</property>
    <property name="modal">True</property>
    <property name="window_position">GTK_WIN_POS_CENTER</property>
    <property name="icon">help-browser.png</property>
    <property name="skip_taskbar_hint">True</property>
    <property name="skip_pager_hint">True</property>
    <property name="urgency_hint">True</property>
    <property name="deletable">False</property>
    <property name="opacity">0</property>
    <child>
      <widget class="GtkLayout" id="layout1">
        <property name="visible">True</property>
        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
        <child>
          <widget class="GtkButton" id="LogoutButton">
            <property name="width_request">210</property>
            <property name="height_request">52</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
            <property name="label" translatable="yes">_Fermer la session</property>
            <property name="use_underline">True</property>
            <property name="response_id">0</property>
            <signal name="clicked" handler="on_LogoutButton_clicked"/>
          </widget>
          <packing>
            <property name="x">36</property>
            <property name="y">86</property>
          </packing>
        </child>
        <child>
          <widget class="GtkImage" id="image3">
            <property name="width_request">62</property>
            <property name="height_request">47</property>
            <property name="visible">True</property>
            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
            <property name="stock">gtk-stop</property>
          </widget>
          <packing>
            <property name="x">41</property>
            <property name="y">91</property>
          </packing>
        </child>
        <child>
          <widget class="GtkButton" id="CancelButton">
            <property name="width_request">210</property>
            <property name="height_request">52</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
            <property name="label" translatable="yes">_Annuler</property>
            <property name="use_underline">True</property>
            <property name="response_id">0</property>
            <signal name="clicked" handler="on_CancelButton_clicked"/>
          </widget>
          <packing>
            <property name="x">37</property>
            <property name="y">168</property>
          </packing>
        </child>
        <child>
          <widget class="GtkImage" id="image4">
            <property name="width_request">50</property>
            <property name="height_request">44</property>
            <property name="visible">True</property>
            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
            <property name="stock">gtk-undo</property>
          </widget>
          <packing>
            <property name="x">46</property>
            <property name="y">168</property>
          </packing>
        </child>
        <child>
          <widget class="GtkImage" id="image5">
          <property name="width_request">67</property>
            <property name="height_request">285</property>
            <property name="visible">True</property>
            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
            <property name="pixbuf">logo.png</property>
            <property name="icon_size">2</property>
          </widget>
          <packing>
            <property name="x">261</property>
            <property name="y">14</property>
          </packing>
        </child>
        <child>
          <widget class="GtkHSeparator" id="hseparator1">
            <property name="width_request">207</property>
            <property name="height_request">20</property>
            <property name="visible">True</property>
            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
          </widget>
          <packing>
            <property name="x">38</property>
            <property name="y">145</property>
          </packing>
        </child>
      </widget>
    </child>
  </widget>
</glade-interface>
J’ai ensuite copier chaque compte, en les renommant pour simplifier, autant de fois qu’il y a de raspberry :
Code :
cp -a /home/01-mini mini1
De même pour super et maxi.
Démarrer le container, se loguer dedans avec
Code :
machinectl login primtux3
créer les utilisateurs correspondants avec adduser et changer les propriétaires des homes pour les utilisateurs nouvellement créés.
Vérifier dans /etc/passwd, changer le shell si nécessaire pour /bin/bash car ssh en a besoin.
Pour sortir du container, taper rapidement 3 fois ] en maintenant la touche control + Alt Gr enfoncée (^]]])

Serveur DHCP

Je met ici la configuartion du serveur dhcp avec le paquet isc-dhcp-server, mais dans mon cas j’utilise un pare-feu pfSense qui fait office de serveur dhcp (entre autres).
Configuration du serveur isc-dhcp-server. On installe le paquet isc-dhcp-server :
Code :
apt-get install isc-dhcp-server
Ecrire le fichier /etc/dhcp/dhcpd.conf :
Code :
#
# Default LTSP dhcpd.conf config file.
#

authoritative;                                    

subnet 192.168.xx.0 netmask 255.255.255.0 {
    range 192.168.xx.10 192.168.xx.50;            # Plage d'adresse desservie par le serveur DHCP du serveur LTSP
    option domain-name "aaaa.bbbbb.ccc";    # nom DNS du réseau pédagogique
    option domain-name-servers 192.168.xx.xx;         # adresse IP du serveur DNS
    option broadcast-address 192.168.xx.255;}
        host rasp1 {
        hardware ethernet B8:27:EB:XX:XX:XX;
        fixed-address 192.168.xx.xx;
        }      

        host rasp2 {
        hardware ethernet B8:27:EB:XX:XX:XX;
        fixed-address 192.168.xx.xx;
        }

        host rasp3 {
        hardware ethernet B8:27:EB:XX:XX:XX;
        fixed-address 192.168.xx.xx;
        }      

        host rasp4 {
        hardware ethernet B8:27:EB:XX:XX:XX;
        fixed-address 192.168.xx.xx;
        }

Voilà !
Le flux vidéo n'est pas toujours terrible, le son parfois haché. Tuxpaint plante à la fermeture, mais contrairement à Eiffel, ça ne fige pas tout le serveur X, il reste possible d'utiliser le reste des applications. Mais dans l'ensemble, c'est quand même fluide. Il y a peut être moyen d'optimiser tout ça.

Il n'y a pas de verrouillage du pavé numérique dans la fenêtre de connexion de ldm et je n’ai pas encore chercher à le faire avec primtux3.

Je l’ai aussi testé sur un odroid-c2 avec une armbian 64 stretch.
To be continued ...

Sources :
https://www.freedesktop.org/software/sys...spawn.html
http://www.olafdietsche.de/2016/06/25/ne...-container
https://wiki.archlinux.org/index.php/systemd-networkd
https://lindenberg.io/blog/post/debian-c...md-nspawn/
http://xmodulo.com/switch-from-networkma...workd.html
https://www.freedesktop.org/wiki/Softwar...orkTarget/
https://www.freedesktop.org/wiki/Softwar...faceNames/

Imprimer cet élément

  Création d'exercices en ligne
Posté par : cyrille - 02-04-2020, 10:09:11 - Forum : Logiciels divers (outils...) - Pas de réponse

Je cite:

"Je crée mes exercices interactifs en ligne en quelques clics
Je visualise les notions non comprises par classe et par élève
Je peux annoter, commenter, encourager les notions comprises
Je sauvegarde mes exercices et peux les dupliquer"

[Image: 2020-04-02_11-08.png]

https://www.quiziniere.com/

Imprimer cet élément

  Des cours en ligne
Posté par : cyrille - 02-04-2020, 10:05:59 - Forum : Questionner le monde - Réponses (2)

Des cours libres en HTML5, compatibles avec les différents supports en
histoire, géographie et sciences

[Image: 2020-04-02_11-01.png]

http://cyrille.largillier.org/cours_numerique/

Imprimer cet élément

  Prompteur / lecture
Posté par : cyrille - 02-04-2020, 10:03:28 - Forum : Français - Réponses (1)

Juste un lien vers un site qui permet de saisir un texte et de le faire défiler , tel un prompteur, afin de vérifier la vitesse de lecture de ses élèves

Pas mal d'options disponibles

[Image: 2020-04-02_11-00.png?t=1585818123&w=500&...tok=1b6e06]

http://www.freeteleprompter.org/

Intéressant

Imprimer cet élément