Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
projets:biohacklab:borne_arcade [2025/03/13 15:34]
emoc [Préparation Raspberry Pi]
projets:biohacklab:borne_arcade [2026/03/26 22:34] (Version actuelle)
emoc [mars 2026]
Ligne 10: Ligne 10:
  
 ===== Préparation Raspberry Pi ===== ===== Préparation Raspberry Pi =====
 +
 +Quoi de neuf sur Debian 12 Bookworm pour Raspberry ? https://​www.framboise314.fr/​bookworm-la-nouvelle-version-de-raspberry-pi-os/​
  
   * Adresse MAC Wifi : d8:​3a:​dd:​ee:​23:​f3   * Adresse MAC Wifi : d8:​3a:​dd:​ee:​23:​f3
Ligne 48: Ligne 50:
   ssh xor@biohacklab.local   ssh xor@biohacklab.local
   ssh xor@192.168.1.30   ssh xor@192.168.1.30
 +
 +**Ressources générales sur le raspberry pi**
 +  * cheat sheet : https://​gist.github.com/​hofmannsven/​9132419
 +  * keyboard shorcuts : https://​g7rdx.co.uk/​linux/​raspberry-keyboard-shortcuts/​
 +==== Questions d'​écran ====
 +
 Essai pour configurer le moniteur directement dans le fichier ''/​boot/​firmware/​config.txt''​ > sans succès \\ Essai pour configurer le moniteur directement dans le fichier ''/​boot/​firmware/​config.txt''​ > sans succès \\
 Boot avec HDMI branché sans adaptateur : ok \\ Boot avec HDMI branché sans adaptateur : ok \\
Ligne 64: Ligne 72:
 voir aussi : https://​pimylifeup.com/​raspberry-pi-screen-resolution/​ \\ voir aussi : https://​pimylifeup.com/​raspberry-pi-screen-resolution/​ \\
 le rpi est il en wayland ou en x ? le rpi est il en wayland ou en x ?
-pour l'​adaptateur surtout pas le D! (dans video=HDMI-A-2:​720x576M@50D) D pour digital, A pour analog+pour l'​adaptateur surtout pas le D! (dans video=HDMI-A-2:​720x576M@50D) D pour digital, A pour analog ​\\ 
 +Réponse : en wayland ( https://​www.framboise314.fr/​bookworm-la-nouvelle-version-de-raspberry-pi-os/​ )
  
 ==== Chromium en mode kiosque ==== ==== Chromium en mode kiosque ====
Ligne 92: Ligne 101:
 Autre solution à tester ici : https://​forums.raspberrypi.com/​viewtopic.php?​t=358285#​p2175588 Autre solution à tester ici : https://​forums.raspberrypi.com/​viewtopic.php?​t=358285#​p2175588
  
-**Étape 1 : démarrer sans logging manuel** \\+**Masquer automatiquement la barre des tâches**\\ 
 +Ajouter les lignes suivantes dans le fichier ''​.config/​wf-panel-pi.ini''​ 
 +  autohide=true 
 +  autohide_duration=500 
 +  heightwhenhidden=0 ​ # test sinon la barre est à moitié visible ... 
 +Problème maintenant, la barre ne réapparaît plus au survol de la souris! Après un redémarrage,​ elle réapparaît à moitié et reste fixe! TODO : améliorer\\ 
 +Exemple très complet du fichier wf-panel-pi.ini : https://​github.com/​WayfireWM/​wf-shell/​blob/​master/​wf-shell.ini.example 
 + 
 + 
 +=== Étape 1 : démarrer sans logging manuel ​===
   sudo raspi-config   sudo raspi-config
 Sélectionner : System Options > Boot / Auto Login > Desktop Autologin: Desktop GUI, automatically logged in as '​xor'​ user. Sélectionner : System Options > Boot / Auto Login > Desktop Autologin: Desktop GUI, automatically logged in as '​xor'​ user.
  
-**Étape 2 : préparer le fichier autostart** \\+=== Étape 2 : préparer le fichier autostart ​===
  
 Créer le fichier Créer le fichier
Ligne 113: Ligne 131:
   chromium --start-fullscreen --start-maximized --noerrdialogs --disable-infobars --kiosk http://​localhost:​8000   chromium --start-fullscreen --start-maximized --noerrdialogs --disable-infobars --kiosk http://​localhost:​8000
  
-**Étape 3 : quand tout fonctionne, passer en lecture seule** \\+=== Étape 3 : quand tout fonctionne, passer en lecture seule ===
   sudo raspi-config   sudo raspi-config
 Dans les menus : Dans les menus :
Ligne 124: Ligne 142:
  
 **Rétablir la partition en lecture / écriture** \\ **Rétablir la partition en lecture / écriture** \\
-Temporairement (jusqu'​au reboot) : +<del>Temporairement (jusqu'​au reboot) : sudo mount -o remount,rw /boot</​del>​ -> ça ne fonctionne pas :/ \\ 
-  ​sudo mount -o remount,rw /boot+Pour rétablir la partition en lecture, il faut 2 reboot : 
 +dans raspi-config,​ désactiver l'​Overlay File System, puis reboot \\ 
 +dans raspi-config,​ passer la partition en écriture (overlay file system), puis reboot \\ 
 + 
 +(Voir ici pour le détail de la procédure complète : https://​core-electronics.com.au/​guides/​read-only-raspberry-pi/​)
 ===== Interface hardware ===== ===== Interface hardware =====
  
Ligne 197: Ligne 219:
 {{:​projets:​biohacklab:​borne_v0.1.jpg?​direct&​600|}} {{:​projets:​biohacklab:​borne_v0.1.jpg?​direct&​600|}}
  
 +État : démarre à la prise (rpi bloqué en écriture), interface fonctionnelle mais un peu moche, jeux à corriger pour certains...
 +
 +**TODO software**
 +  * La barre à gauche des jeux est vraiment moche
 +  * icone de retour à l'​accueil trop petit
 +  * pourquoi les jeux bitsy sont ils si longs à démarrer ? (python http.server ?)
 +  * + liste des bugs remontés
 +
 +===== Maintenance =====
 +
 +==== sept. 2025 ====
 +
 +Le système démarre, le navigateur (chromium) s'​ouvre,​ mais ne charge pas la page... Il s'agit d'un bug connu de chrome sur raspberry pi : le bug du premier onglet! En effet, l'​écran reste blanc et le curseur de chargement tourne indéfiniment,​ si on recharge la page (<​key>​F5</​key>​),​ tout fonctionne normalement. \\
 +
 +Plusieurs solutions possibles, dépendantes du serveur d'​affichage utilisé, X11 ou Wayland, car il y a une transition en cours dans le monde linux entre les deux. Avec X11 on peut utiliser xdotool qui permet d'​envoyer des frappes clavier fake vers une fenêtre, avec Wayland on ne peut pas (pas de communication entre les fenêtres/​applications pour des raisons de sécurité... \\
 +
 +Après essais de différentes solutions, ça ne fonctionne toujours pas, une autre possibilité est d'​ouvrir un serveur de debugging sur chromium et de luis envoyer des commandes pour déclencher un rechargement de la page.
 +
 +Sur X11 et Wayland : https://​nullrequest.com/​posts/​whywaylandisthefuture
 +
 +On peut connaître le système d'​affichage utilisé avec : ''​echo $XDG_SESSION_TYPE''​
 +
 +Essai avec le serveur de debugging : sans succès / TODO ajouter code autostart + script python (cf. rep /​home/​xor/​.config/​labwc) \\
 +
 +Essai avec firefox en mode kiosque : sans succès :/ (à creuser... cf. https://​wiki.mozilla.org/​Firefox/​CommandLineOptions )
 +
 +Finalement comme solution temporaire, on ajoute un mini clavier USB dans la borne, sur lequel il faut appuyer sur F5 quand ça mouline sur un premier onglet blanc : ça fonctionne mais c'est moche
 +
 +==== mars 2026 ====
 +
 +Passage en mode écriture \\
 +On peut choisir entre X et Wayland (via raspi-config / advanced options / Wayland) : je choisis openbox + Xorg \\
 +Infos sur X.org : https://​doc.ubuntu-fr.org/​xorg \\
 +Ce qui rend possible l'​utilisation de xdotool, nouveau test réalisé après modification du fichier autostart \\
 +On peut recharger la page avec 
 +  xdotool search --onlyvisible --class chromium windowactivate --sync %1 key F5 windowactivate $(xdotool getactivewindow)
 +Ça fonctionne **si** la page a déjà été correctement chargée mais comme ce n'est pas le cas, ce n'est toujours pas la solution ...
 +
 +utilisation de xdotool : https://​unix.stackexchange.com/​a/​87839
 +Pour la suite 
 +<​code>​
 +#!/bin/bash
 +
 +# X plutôt que Wayalnd doit être activé (via raspi-config)
 +cd /​home/​xor/​borne_biohacklab_ui_v5/​
 +/​usr/​bin/​python -m http.server &
 +unclutter -idle 1 &  # ne fonctionne qu'​avec X pas wayland
 +sleep 8
 +#chromium --start-fullscreen --start-maximized --noerrdialogs --disable-infobars --kiosk http://​localhost:​8000
 +chromium --kiosk --noerrdialogs --disable-session-crashed-bubble --disable-infobars http://​localhost:​8000/​index.html &
 +#​chromium-browser --kiosk "​http://​localhost:​8000/​index.html"​ --noerrdialogs --disable-session-crashed-bubble --disable-infobars --remote-debugging-port=9222 --remote-allow-origins=http://​localhost:​9222 &
 +#​chromium-browser --kiosk --noerrdialogs --disable-session-crashed-bubble --disable-infobars &
 +#sleep 15
 +#/​home/​xor/​.config/​labwc/​chromium_reload_first_tab.py
 +sleep 15
 +xdotool search --onlyvisible --class chromium key F5 # ne fonctionne pas avec wayland!
 +#wtype -M ctrl r -m ctrl
 +#firefox --kiosk "​http://​localhost:​8000/​index.html"​
 +
 +
 +xdotool search --onlyvisible --class chromium windowactivate --sync %1 key F5 windowactivate $(xdotool getactivewindow)
 +
 +
 +Petite fonction pour vérifier que la page recharge bien
 +
 +function changeBackground(color) {
 +   ​document.body.style.background = '#'​+(Math.random()*0xFFFFFF<<​0).toString(16);​
 +}
 +window.addEventListener("​load",​function() { changeBackground('​red'​) });
 +
 +
 +</​code>​
  • projets/biohacklab/borne_arcade.1741876486.txt.gz
  • Dernière modification: 2025/03/13 15:34
  • par emoc