Utiliser des Raspberry Pi 4 en tant que clients lourds
PROJET EN COURS mais FONCTIONNEL !
Primtux en utilisation avec des clients lourds n'est pas envisageable tel quel. En effet, il y a un problème avec les comptes utilisateurs. J'ai donc choisi de me baser sur l'interface de l'administrateur car qui peut le plus, peut le moins. Par contre, les utilisateur⋅rice⋅s se connecteront avec leur propres identifiants et disposeront de leur propre dossier /home. Bref, on reprend le principe des clients Éclair. |
ATTENTION : Depuis 2019, LTSP a été ré-écrit afin de prendre en compte les évolutions comme Systemd, Wayland et autres. C'est la version que l'on trouve à partir d'Ubuntu 20.04. De fait, l'ancienne version est dénommée LTSP 5 et on la trouve dans Ubuntu 16.04 et 18.04. Du coup, pour des question de pérennité, il faut faire évoluer la version LTSP5 vers la nouvelle qui au moment de la rédaction de cette page est la LTSP 20. Plus d'info, sur cette page : https://ltsp.org/docs/ppa/
AVERTISSEMENT : La nouvelle version de LTSP ne supporte plus les clients légers dans le sens où les applications ne fonctionnent plus de façon déportée sur le serveur. Ce fonctionnement qu'on trouve dans la version LTSP 5 n'est plus adapté et il est très contraignant en terme de développement ce qui engendre des problèmes non résolus faute de suivi (voir les infos en anglais ici : https://github.com/ltsp/ltsp/discussions/243#discussioncomment-101460). On parlera donc maintenant de clients lourds (ou riches ou fat clients en anglais) dans le sens où les applications fonctionnent localement et que le lien avec le serveur ne sert que pour l'échange de données.
AVERTISSEMENT 2 : Je me suis cassé les dents sur la configuration du réseau pour l'accès à Internet des clients lourds. Faut dire aussi, que j'étais initialement sur un réseau avec proxy, sans serveur DHCP... ce qui a compliqué grandement les choses. En passant sur un réseau simple, sans proxy, avec une box pour la liaison directe avec Internet, les problèmes se sont arrangés. ÉVITER UN RÉSEAU AVEC PROXY ET SANS SERVEUR DHCP !
Sources officielles :
- https://ltsp.org
- https://github.com/ltsp
- https://github.com/ltsp/ltsp/wiki
- Forum de discussion où on peut avoir des infos : https://github.com/ltsp/ltsp/discussions
- Fil de discussion ouvert sur le forum Primtux : https://forum.primtux.fr/viewtopic.php?id=2284
1- Avantages d'un serveur de clients Lourds basé sur le projet LTSP
[Android] Application Automate
Automate est une application pour ordiphone sous Android permettant de programmer des scripts ou de lancer une série d'actions à l'aide de briques à la façon de Node-Red. Cette application est très puissante et offre un éventail de possibilités inouï, notamment en domotique. Vous trouverez sur cet artcile comment je l'utilise pour piloter mon ampli Yamaha : [Yamaha Ampli RX-V677] Pilotage par le réseau via l'API xml de Yamaha.
Site officiel : https://llamalab.com/automate/
La version gratuite est limitée à 30 blocs travaillant simultanément, sans publicité ou autre désagrément, ce qui est largement suffisant pour découvrir la puissance de cette application. Je vous conseille, comme moi, de soutenir ses développeur⋅euses en payant les 3,90€ demandés 😉 pour lever cette limitation, somme très raisonnable au demeurant.
Il faut dire qu'il faut prendre le temps de rentrer dans cette application mais avec le cas de mon ampli très particulier, je me suis rendu compte de sa puissance.
Appli sur le store : https://play.google.com/store/apps/details?id=com.llamalab.automate
Je mets sur cette page des info et des liens utiles.
A- Comment accéder à des droits avec des privilèges élevés
Certaines actions nécessitent des droits avec des privilèges élevés comme par exemple "tuer" une application (commande "App Kill"). Il est donc nécessaire de paramétrer Automate pour le lui permettre.
Source : https://llamalab.com/automate/doc/adb.html.
Dans Automate, aller dans "Settings" -> "Privileged service start method" et choisir "Android Debug Bridge (ADB). Ensuite, Automate guide l'utilisateur⋅rice pour réaliser les réglages dans Android en indiquant chaque étape.
À partir d'Android 11 (comme pour mon ordiphone Xiaomi), il faut simplement activer le debugage sans fil par wifi (Wireless debugging option) dans le mode développeur. Puis appairer l'ordiphone pour lui permettre de communiquer avec Automate, en restant appuyer sur l'option "débugage sans fil".
[Virt-Manager] Informations, astuces utiles
Je recence sur cette page des informations utiles concernant l'utilisation de Virtual Machine Manager ou Virt-Manager sous GNU/Linux.
Tutoriel expliquant comment utiliser Virt-Manager avec une machine virtuelle sous Primtux8 : https://documentation.primtux.fr/books/manuel-de-ladministrateur/page/installation-en-machine-virtuelle-avec-virt-manager
Site officiel : https://virt-manager.org/.
Virt-Manager est équivalent à VirtualBox mais est plus léger et tout aussi performant. J'ai découvert ce système de virtualisation basé sur Qemu/KVM via cet article : https://www.citizenz.info/article/virtmanager-vs-virtualbox-une-belle-surprise.
D'une manière générale, on trouve pas mal d'outils permettant d'interagir entre la machine hôte (host) et la machine virtuelle invitée (guest) sur ce site https://www.spice-space.org/.
A- Installation sous Linux Mint 22.1 / Ubuntu / Debian :
apt install bridge-utils virt-manager
Pour pouvoir émuler un Raspberry Pi 4 : sudo apt install qemu-system-arm qemu-efi-arm
Remarque : J'ai essayé de compilé un Qemu plus récent pour disposer de l'émulation pour un Raspberry Pi 4 mais le fonctionnement avec Virt-Manager n'a pas été possible sous Linux Mint 22.1...
B- Pour permettre le partage du presse-papier entre l'hote et l'invité sous Windows 10 :
Dans la machine virtuelle sous Windows 10, il faut installer le paquet "spice-guest-tools.exe" : https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe.
C- Pour permettre le partage d'un dossier entre l'hote et l'invité sous Windows 10 :
Source : https://www.debugpoint.com/kvm-share-folder-windows-guest/
Remarque : C'est plus compliqué que sous VirtualBox...
D- Réinstaller complètement Virt-Manager/Qemu/KVM :
Après avoir compilé la dernière version de Qemu et essayé de l'installée, j'ai corrompu Virt-Manager. Il a donc fallu le ré-installer proprement sans supprimer les images des machines virtuelles déjà existantes à condition qu'elles n'aient pas été enregistrées dans le dossier /var/lib/libvirt. Pour cela, saisir les commandes suivantes :
Dans le dossier où on a compilé, lancer la commande pour supprimer les modules dans /usr/local/bin : sudo make uninstall
sudo apt purge --auto-remove qemu qemu-system* libvirt* virt-manager
sudo rm -rf /var/lib/libvirt /var/log/libvirt
Remarque : le dossier contenant les images se trouve dans le dossier suivant : /etc/libvirt (À NE PAS SUPPRIMER !!!).
[Fablab] Utilisation de RDWorks 8 sous Linux Mint 22.1
Le Fablab possède une découpeuse/graveuse laser Laser System LS170 (100W, 1000 x 700 mm, modèle 1070) basée sur un controleur Ruida 644XS et qu'on pilote en envoyant nos fichiers via son Wifi (pas de connexion filaire USB). Malheureusement elle se pilote avec le logiciel RDWorks8 pour lequel il n'existe pas de version Linux (GRRR !!!). J'avais réussi malgré tout à le faire fonctionner sous Wine sous Linux Mint 21.3 (basé sur Ubuntu 22.04) mais lors du passage à Linux Mint 22.1 (basé sur Ubuntu 24.04), RDWorks v8.01.18 n'a plus fonctionné. Du coup, voici la procédure qui a fonctionné dans mon cas.
Avertissements :
- Je n'ai pas réussi à trouver d'interface fonctionnelle en français...
- Je n'ai pas réussi à faire fonctionner les dernières versions que j'ai trouvées de RDWorks (54, 60 ou 62).
- Le logiciel Lightburn n'est plus proposé sous Linux (de plus la dernière version 1.7.07 proposée pour Linux, lors de l'essai de 30 jours gratuits plante lorsqu'on veut ouvrir un fichier).
I- Installation de PlayOnLinux
PlayOnLinux permet d'utiliser plusieurs configurations de Wine et ainsi de faire de nombreux tests (ce qui a été le cas pour arriver à faire fonctionner RDWorks).
A- Nettoyage/Ré-initialisation de Wine
- On va partir sur une installation propre avec les commandes suivantes :
Utiliser l'application ScottieGo Edu sous Linux Mint 22.1
Afin de tester différents outils pour l'apprentissage de la programmation, l'Éducation Nationale a proposé de tester un kit robotique. Parmis ces outils, il y a le jeu Scottie Go qui utilise une application qui ne fonctionne nativement que sous Android et Windows (GRRR !!!). J'ai écris à l'éditeur pour lui demander de proposer une version fonctionnant sous GNU/Linux mais c'est resté lettre morte... Il faut vraiment que l'institution se pose la question de l'interopérabilité des outils qu'elle propose car en l'état, ce n'est pas utilisable avec Primtux.
Je me suis donc résolu, à contre-coeur, a essayé de faire fonctionner Scottie Go sous GNU/Linux à l'aide de Wine/PlayOnLinux, sachant que ça n'est pas à la portée de tous et toutes.
Après pas mal d'essais infructueux, j'ai réussi à lancer l'application à l'aide de PlayOnLinux (mais on verra qu'elle n'est pas complètement fonctionnelle).
I- Installation de PlayOnLinux et de ScottieGoEdu
PlayOnLinux permet d'utiliser plusieurs configurations de Wine et ainsi de faire de nombreux tests.
A- Nettoyage/Ré-initialisation de Wine
- On va partir sur une installation propre avec les commandes suivantes :
sudo apt remove --purge wine winehq-stable winehq-devel winehq-staging winetricks playonlinux
sudo apt autoremove
rm -rf ~/.wine ~/.wine-rdworks ~/.config/wine
- Puis on redémarre avec la commande : sudo reboot
B- Réglages dans PlayOnLinux
- On installe PlayOnLinux avec la commande :
sudo apt install playonlinux -y
- On installe Winetricks (permet d'installer des dll Windows dans Linux) avec la commande :
sudo apt install winetricks
- Dans un terminal, on lance PlayOnLinux avec la commande (le & permet de garder la main dans le terminal) :
playonlinux &
- Dans PlayOnLinux, on va dans le menu "Outils" → "Gérer les versions de Wine" → Dans l'onglet "Versions de Wine (x86)" qui correspond à la version 32 bits, on récupère Wine 8.1-staging et on l'installe sur son ordinateur.
- On crée ensuite un conteneur (lecteur virtuel), en cliquant sur le bouton "Configurer" → puis "Nouveau" → "32 bits windows installation" → on choisit la version wine 8.1 (la version 8.1-staging n'apparaît pas...) → on donne un nom de conteneur par exemple "ScottieGo".
- Au bout de quelques instants (le temps que Wine se configure), on voit apparaître ce nouveau disque virtuel "ScottieGo" et on clique dessus pour voir ses 5 onglets de paramétrages :
- Dans l'onglet "Général", on choisit la version 8.1-staging et on accepte le changement dans le message d'avertissement (warning).
- Dans l'onglet "Wine", on clique sur l'icone "Configurer Wine" :
- Dans la configuration, on choisit la version "Windows 10".
- Dans l'onglet "Staging", on coche "Enable CSMT...", "Enable VAAPI..." et "Hide Wine version from applications".
- Pour valider ces changements → on clique sur "OK".
- Dans l'onglet "Divers", on clique sur "Lancer un .exe dans ce disque virtuel" → on choisit le programme "Install_ScottieGoEdu.exe" et on procède à son installation. À la fin, on accepte de redémarrer Windows.
- On revient dans l'onglet "Général", et on clique sur le bouton "Créer un nouveau raccourci depuis ce disque virtuel" → on choisit le programme "ScottieGoEdu.exe" et une fois installée, on clique sur "Je ne veux pas créer d'autres icônes".
On a maintenant une icône "ScottieGoEdu" sur la page d'accueil de PlayOnLinux qui va nous permettre d'exécuter cette application.
Tout fonctionne sauf quen l'état, il n'est pas possible d'utiliser de caméra pour pouvoir autocorriger !!! Pourtant les caméras sont bien détectées (quand j'en branche une, j'ai bien 2 caméras sélectionnables avec celle intégrée sur mon ordinateur) mais rien ne s'affiche. Il va falloir creuser la gestion des caméras dans Wine ...
II- Paramétrer les caméras pour les utiliser dans Wine
PHASE DE RECHERCHE - NON FONCTIONNEL
Pour savoir quelles caméras sont détectées sous Linux Mint, on tape la commande suivante :
v4l2-ctl --list-devices
Là, on récupère le chemin correspondant à la caméra que l'on souhaite utiliser et qui sera de la forme : /dev/videoX (remplacer le X par le n° de la webcam). Ensuite on crée un lien symbolique renvoyant vers cette caméra dans son disque virtuel PlayOnLinux :
ln -s /dev/videoX ~/.PlayOnLinux/wineprefix/ScottieGo/dosdevices/webcam0
Installation de DirectShow avec la commande dans le terminal de PlayOnLinux :
WINEPREFIX=~/.PlayOnLinux/wineprefix/ScottieGo winetricks quartz devenum directshow
[Ubuntu] Mise à niveau de mon portable ASUS Vivobook Pro N705UD vers Linux Mint 21.1 Mate
MAJ le 20/03/2025 : Mise à niveau vers Linux Mint 22.1 directement à partir de Linux Mint 21.3 avec mintupgrade (mais les info peuvent servir encore).
Tout comme je l'avais fait lors de ma dernière mise à niveau dans l'article Mise à niveau de mon portable ASUS Vivobook Pro N705UD vers Ubuntu 20.04 (vous pouvez donc vous y référer pour voir les différentes étapes), voici mon retour d'expérience (succinct cette fois-ci car je refais en grande partie les mêmes choses) pour mon passage sous Linux Mint 21.1 Mate Edition.
J'ai profité de ces vacances de printemps pour mettre à niveau mon portable ASUS Vivobook Pro N705UD sous Linux Mint 21.1 Mate Edition. J'ai décidé "d'abandonner" Ubuntu (ce qui est quand même relatif puisque LInux Mint est basée sur Ubuntu...) pour Linux Mint principalement par refus des paquets Snap.
Comme à chaque fois, j'avais repoussé cette mise à niveau car c'est toujours un moment prise de tête et stressant avec repartitionnement, récupération et réinstallation des données et applications. J'avoue qu'avec l'âge, je n'ai plus trop envie de m'embêter à tester et passer du temps à configurer de nouveaux outils : je me rends compte que je veux juste un système qui fonctionne, avec des applications à jour (d'où la montée de version) sans perdre de temps à le configurer.
Je me suis appuyé en partie sur les conseils toujours judicieux de Sébastien Sauvage via sa page dédiée à son installation de Linux Mint.
I- Mise à niveau
Cette fois-ci, je n'ai pas fait une ré-installation de zéro mais j'ai juste remplacé Ubuntu 20.04 par Linux Mint 21.1 en bootant sur clé USB et en gardant les partitions existantes de mes 2 disques durs. Je n'ai formaté que la partition racine "/" de mon disque dur 2 "sdb" :
Développer en html, css et javascript
Page aide-mémoire pour m'aider à développer des applications web...
Les applications web ont l'énorme avantage d'être utilisables à travers un navigateur web et sont donc interopérables par défaut quels que soient les systèmes d'exploitation et le matériel (tablettes par exemple).
Ressources en ligne :
- Développer des applications html5 de A à Z : http://diveintohtml5.info
- Créer des Web applications : https://www.freecodecamp.org/news/build-a-pwa-from-scratch-with-html-css-and-javascript/
I- Choix de l'outil pour développer : VSCodium
Après quelques recherches sur Internet, j'ai choisi VSCodium qu'on peut installer dans Ubuntu. C'est la version libre de VSCode proposé par Microsoft (oui, oui...) et qui dispose de nombreuses extensions : https://github.com/VSCodium/vscodium. Je dois reconnaître que pour une fois Microsoft propose une application très intéressante avec des outils facilitant grandement la programmation : visualiseur MarkDown pour les ReadMe, visualiseur HTML, erreurs de syntaxes, ...
Autre bonne surprise : VSCode est intégré dans Gitlab et en particulier la forge https://forge.apps.education.fr/, ce qui permet de ré-investir ses connaissances/habitudes !!!
Du coup, on peut installer l'extension "Gitlab Workflow" pour lier VSCodium et le dépôt Gitlab du projet : https://blog.jbriault.fr/vscode-gitlab-workflow/.
Extensions utiles de VSCodium (attention certaines nécessite NodeJS) :
- GitLab Workflow de GitLab
- Live Preview de Microsoft
- open in browser de TechER
- vscode-icons de VSCode Icons Team
- Svelte for VS Code de Svelte (NodeJS)
- ESLint (NodeJS)
A- Pour lier ses dossiers locaux avec le Gitlab de la Forge Éduc
- Voir ce tutoriel permettant de se connecter avec un jeton en https : https://forge.apps.education.fr/laurent.abbal/utiliser-la-forge-avec-vscodium-ou-visual-studio-code
- Il est aussi possible de se connecter par clé ssh :
- Pour générer une clé ssh sur son ordi sous Linux Mint dans le dossier caché de son home ".ssh" :
ssh-keygen -t ed25519
- Dans son dossier .ssh, on va ouvrir avec un éditeur , la clé publique se terminant par l'extension ".pub" et on la copie dans le presse papier.
- Sur le site Gitlab, https://forge.apps.education.fr dans son compte, on va dans les préférences et on ajoute cette clé SSH en collant le contenu du presse-papier.
- Pour vérifier si une clé fonctionne et qu'il n'y a pas de refus d'accès avec le message "Permission denied (publickey)", dans le terminal de son ordinateur on tape :
ssh -Tv
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. - Si tout se passe bien, on pourra se connecter à partir de VSCodium au Gitlab de la Forge et cloner un des projets qui nous appartient. Pour cela, dans le site gitlab, on va sur le projet à cloner, on clique sur le bouton bleu "Code" et on copie le contenu du champ "Cloner avec SSH" qui commence avec "
Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. :xxxxxxxxxxxxxxxxxxxxxx". - Dans VSCodium, dans une nouvelle fenêtre, on ouvre le panneau de commande avec CTRL+Maj+P, on recherche et on choisit "git: Cloner", puis on indique l'adresse de la forge https://forge.apps.education.fr/nom_de_son_groupe_gitlab et il suffira de choisir le projet qui nous intéresse.
- Pour générer une clé ssh sur son ordi sous Linux Mint dans le dossier caché de son home ".ssh" :
B- Comment jongler avec différents projets sur la Forge avec VSCodium
Si l'on travaille sur des projets différents dans la Forge, par défaut VSCodium s'ouvre sur le dernier. Pour en changer, il faut ouvrir une nouvelle fenêtre (CTRL+Maj+N) dans VSCodium et choisir le dossier local contenant les sources : la synchronisation se mettra en place automatiquement (grâce au dossier caché .git).
II- Tutoriels
Pour commencer, il est nécessaire de suivre des tutoriels...
Page 1 sur 37