RPi-piDeskboard : Différence entre versions

De Wiki levelKro
Ligne 14 : Ligne 14 :
 
== Installation Automatique ==
 
== Installation Automatique ==
 
Vous pouvez installer depuis le script du package;  
 
Vous pouvez installer depuis le script du package;  
  wget https://raw.githubusercontent.com/levelKro/pideskboard/main/install.sh
+
  wget https://raw.githubusercontent.com/levelKro/pideskboard/main/__install/install.sh
 
  chmod +x ./install.sh
 
  chmod +x ./install.sh
 
  ./install.sh
 
  ./install.sh
  
 
== Installation Manuelle ==
 
== Installation Manuelle ==
Suivez c'est étapes avec précautions  
+
Suivez les étapes avec précautions  
  
 
=== Téléchargements de sources externes ===
 
=== Téléchargements de sources externes ===
Ligne 32 : Ligne 32 :
 
  sudo cp /home/pi/pideskboard/splash.png /boot/splash.png
 
  sudo cp /home/pi/pideskboard/splash.png /boot/splash.png
 
  sudo cp /home/pi/pideskboard/__install/boot/splash.txt /boot/splash.txt
 
  sudo cp /home/pi/pideskboard/__install/boot/splash.txt /boot/splash.txt
 +
sudo cp /home/pi/pideskboard/__install/init/webctrl.sh /etc/init.d/webctrl
 
  sudo chmod +x /home/pi/pideskboard/sh/*.sh
 
  sudo chmod +x /home/pi/pideskboard/sh/*.sh
 +
sudo chmod +x /etc/init.d/webctrl
 
  cd /home/pi/pideskboard
 
  cd /home/pi/pideskboard
 
  git remote add upstream https://github.com/levelKro/pideskboard.git
 
  git remote add upstream https://github.com/levelKro/pideskboard.git
Ligne 40 : Ligne 42 :
 
vous devez configurer les fichiers suivant et dans certains cas les renommer sans le ".dist" à la fin.
 
vous devez configurer les fichiers suivant et dans certains cas les renommer sans le ".dist" à la fin.
 
Vous pouvez le faire durant la prochaine étape des installation des packages.
 
Vous pouvez le faire durant la prochaine étape des installation des packages.
* "/home/pi/pideskboard/configs/config.php" (Pour le Web UI et le travail en arrière plan)
+
* "/home/pi/pideskboard/configs/config.php" (ne pas toucher)
 
* "/home/pi/pideskboard/configs/db/mail.ini.dist"
 
* "/home/pi/pideskboard/configs/db/mail.ini.dist"
 
* "/home/pi/pideskboard/configs/db/weather.ini.dist" (require un code API de OpenWeather)
 
* "/home/pi/pideskboard/configs/db/weather.ini.dist" (require un code API de OpenWeather)
 
* "/home/pi/pideskboard/configs/db/radio.ini"
 
* "/home/pi/pideskboard/configs/db/radio.ini"
* "/home/pi/pideskboard/configs/db/servers" (pour la version WebUI)
 
* "/home/pi/pideskboard/configs/db/network" (pour la version WebUI)
 
 
* "/home/pi/pideskboard/configs/config.ini" (toutes les configs)
 
* "/home/pi/pideskboard/configs/config.ini" (toutes les configs)
  
Ligne 51 : Ligne 51 :
 
  sudo apt update && sudo apt upgrade -y
 
  sudo apt update && sudo apt upgrade -y
 
  sudo apt install -y python3-dev python3-pip yasm wget git samba espeak
 
  sudo apt install -y python3-dev python3-pip yasm wget git samba espeak
  sudo apt install -y apache2 php php-cli php-imap php-curl php-xml php-xmlrpc libapache2-mod-php
+
  sudo apt install -y php php-cli php-imap php-curl php-xml php-xmlrpc
 
  sudo apt install -y python-gi-dev python-gi python-gi-cairo python3-gi python3-gi-cairo libgirepository1.0-dev gir1.2-gtk-3.0 python3-gst-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-tools gstreamer1.0-gtk3 python3-opencv python3-numpy
 
  sudo apt install -y python-gi-dev python-gi python-gi-cairo python3-gi python3-gi-cairo libgirepository1.0-dev gir1.2-gtk-3.0 python3-gst-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-tools gstreamer1.0-gtk3 python3-opencv python3-numpy
 
  sudo apt install -y gir1.2-gst-plugins-base-1.0 gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly-amr vlc python3-vlc
 
  sudo apt install -y gir1.2-gst-plugins-base-1.0 gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly-amr vlc python3-vlc
 
  sudo dpkg -i mbrola.deb
 
  sudo dpkg -i mbrola.deb
 
  sudo apt install -y mbrola-fr*
 
  sudo apt install -y mbrola-fr*
  pip3 install opencv-contrib-python numpy python-vlc
+
  sudo pip3 install opencv-contrib-python numpy python-vlc psutil gpiozero
  
 
=== Configuration du système ===
 
=== Configuration du système ===
 
====Apache : Serveur pour les données et UI Web ====
 
sudo sed -i 's|/var/www/html|/home/pi/pideskboard/www|g' /etc/apache2/sites-enabled/000-default.conf
 
sudo sed -i 's|/var/www|/home/pi/pideskboard|g' /etc/apache2/apache2.conf
 
  
 
====Samba : Partage des fichiers configurables ====
 
====Samba : Partage des fichiers configurables ====
Ligne 107 : Ligne 103 :
  
 
===Avant de redémarré===
 
===Avant de redémarré===
Vous devez configurer quelques paramètre dans le fichier "config.php" de l'interface Web, qui récupère également les donnés affichés. Vous pouvez le faire via le partage Windows ou par ligne de commande.
+
Vous devez configurer quelques paramètre dans le fichier "config.ini" de l'interface, qui récupère également les donnés affichés. Vous pouvez le faire via le partage Windows ou par ligne de commande.
 
====Par ligne de commande====
 
====Par ligne de commande====
* Ouvrez l'éditeur sur le fichier avec cette commande; <pre>nano /home/pi/pideskboard/configs/config.php</pre> et éditer le.
+
* Ouvrez l'éditeur sur le fichier avec cette commande; <pre>nano /home/pi/pideskboard/configs/config.ini</pre> et éditer le.
  
 
====Par partage Windows====
 
====Par partage Windows====
Ligne 116 : Ligne 112 :
 
* Aller dans "Réseau" et attendez quelques instant, vous devriez voir le nom de votre appareil s'afficher, si vous n'avez pas changé le "hostname" de Raspbian par défaut, vous attendez de voir un "RASPBERRYPI", sinon c'est le nom que vous lui avez donné.
 
* Aller dans "Réseau" et attendez quelques instant, vous devriez voir le nom de votre appareil s'afficher, si vous n'avez pas changé le "hostname" de Raspbian par défaut, vous attendez de voir un "RASPBERRYPI", sinon c'est le nom que vous lui avez donné.
 
* Ouvrez votre partage, et entrer également dans le dossier "configs"
 
* Ouvrez votre partage, et entrer également dans le dossier "configs"
* Ouvrez le fichier "config.php" avec l'éditeur de texte de votre choix, si vous ne savez pas lequel, utiliser le Bloc-Note (Notepad).
+
* Ouvrez le fichier "config.ini" avec l'éditeur de texte de votre choix, si vous ne savez pas lequel, utiliser le Bloc-Note (Notepad).
  
 
==Utilisation==
 
==Utilisation==
Ligne 126 : Ligne 122 :
 
===Lancement===
 
===Lancement===
 
Une fois tout installé, lancer un redémarrage avec ; <pre>sudo reboot</pre>. Si tous est correctement installé, vous devriez voir après quelques minutes l'interface.
 
Une fois tout installé, lancer un redémarrage avec ; <pre>sudo reboot</pre>. Si tous est correctement installé, vous devriez voir après quelques minutes l'interface.
 +
 +
===Contrôle à distance===
 +
Le piDeskboard vient avec le module piWebCtrl. vous pouvez y accéder via le <pre>http://<ip-du-pi>:9000/</pre>.
  
 
===Utiliser ailleurs===
 
===Utiliser ailleurs===
Vous pouvez pointer n'importe lequel navigateur récent sur http://<ip-ou-hostname-du-pi>/ pour consulter la version Web.
+
L'interface Web a été retiré pour gagner en performances.  
  
 
==Structures ==
 
==Structures ==

Version du 20 mai 2021 à 01:34

Le piDeskboard est un petit ensemble de scripts PHP et python pour transformer un Raspberry PI en panneau d'affichage utile sur le bureau (ou ailleurs ou vous en avez besoin).

L'ensemble des fichiers est constitué de scripts en PHP (maincore+ui), en Python (ui) et en Bash Script (cli)

Pré-requis

  • Raspbian OS Lite (décembre 2020 est une bonne version)
  • Fichier système étendu ("first run" fait)
  • Accès internet et Hostname configuré
  • Accès SSH

Toutes les actions doivent ce passer en mode SSH car le Pi sera transformé en panneau d'affichage, alors habituez-vous dès maintenant en y connectant que l'essentiel.

Installation Automatique

Vous pouvez installer depuis le script du package;

wget https://raw.githubusercontent.com/levelKro/pideskboard/main/__install/install.sh
chmod +x ./install.sh
./install.sh

Installation Manuelle

Suivez les étapes avec précautions

Téléchargements de sources externes

cd /home/pi
wget https://raspberry-pi.fr/download/espeak/mbrola3.0.1h_armhf.deb -O mbrola.deb
git clone --depth=1 https://gitlab.com/DarkElvenAngel/initramfs-splash.git
git clone https://github.com/levelKro/pideskboard.git

Copies des fichiers de piDeskboard

sudo cp /home/pi/pideskboard/__install/home/_fonts /home/pi/.fonts
sudo cp /home/pi/initramfs-splash/boot/initramfs.img /boot/initramfs.img
sudo cp /home/pi/pideskboard/splash.png /boot/splash.png
sudo cp /home/pi/pideskboard/__install/boot/splash.txt /boot/splash.txt
sudo cp /home/pi/pideskboard/__install/init/webctrl.sh /etc/init.d/webctrl
sudo chmod +x /home/pi/pideskboard/sh/*.sh
sudo chmod +x /etc/init.d/webctrl
cd /home/pi/pideskboard
git remote add upstream https://github.com/levelKro/pideskboard.git
git pull upstream main

Configuration du piDeskboard

vous devez configurer les fichiers suivant et dans certains cas les renommer sans le ".dist" à la fin. Vous pouvez le faire durant la prochaine étape des installation des packages.

  • "/home/pi/pideskboard/configs/config.php" (ne pas toucher)
  • "/home/pi/pideskboard/configs/db/mail.ini.dist"
  • "/home/pi/pideskboard/configs/db/weather.ini.dist" (require un code API de OpenWeather)
  • "/home/pi/pideskboard/configs/db/radio.ini"
  • "/home/pi/pideskboard/configs/config.ini" (toutes les configs)

Installation des packages

sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-dev python3-pip yasm wget git samba espeak
sudo apt install -y php php-cli php-imap php-curl php-xml php-xmlrpc
sudo apt install -y python-gi-dev python-gi python-gi-cairo python3-gi python3-gi-cairo libgirepository1.0-dev gir1.2-gtk-3.0 python3-gst-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-tools gstreamer1.0-gtk3 python3-opencv python3-numpy
sudo apt install -y gir1.2-gst-plugins-base-1.0 gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly-amr vlc python3-vlc
sudo dpkg -i mbrola.deb
sudo apt install -y mbrola-fr*
sudo pip3 install opencv-contrib-python numpy python-vlc psutil gpiozero

Configuration du système

Samba : Partage des fichiers configurables

sudo -s cat >> /etc/samba/smb.conf << EOF
[home$]
  path = /home/pi
  guest ok = yes
  force user = pi
  force group = pi
  browseable = yes
  writable = yes
  read only = no
[configs]
  path = /home/pi/pideskboard/configs
  guest ok = yes
  force user = pi
  force group = pi
  browseable = yes
  writable = yes
  read only = no
EOF

X11 : Interface UI python et lancement des services

Lancement du piDeskboard local

sudo -s cat >> /home/pi/.profile << EOF
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && /home/pi/pideskboard/sh/dm_start.sh
EOF

Paramètres de lancement de X11

sudo -s cat >> /etc/xdg/openbox/autostart << EOF
xset s off
xset s noblank
xset -dpms
setxkbmap -option terminate:ctrl_alt_bksp
DISPLAY=:0 nohup /home/pi/pideskboard/sh/cli_deskboard.sh >/dev/null 2>&1 &
EOF

Le "config.txt"

  • Ouvrez le "config.txt" avec
    sudo nano /boot/config.txt
  • Ajouter en début de document
    initramfs initramfs.img

Le "cmdline.txt"

  • Ouvrez le "cmdline.txt" avec
    sudo nano /boot/cmdline.txt
  • Ajouter/remplacer en fin de ligne, après "rootwait"
     logo.nologo loglevel=0 splash silent quiet

Avant de redémarré

Vous devez configurer quelques paramètre dans le fichier "config.ini" de l'interface, qui récupère également les donnés affichés. Vous pouvez le faire via le partage Windows ou par ligne de commande.

Par ligne de commande

  • Ouvrez l'éditeur sur le fichier avec cette commande;
    nano /home/pi/pideskboard/configs/config.ini
    et éditer le.

Par partage Windows

Si ont vous demande un nom d'utilisateur et mot de passe, utilisez celui de votre Raspberry Pi.

  • Ouvrez l'explorateur Windows de votre ordinateur,
  • Aller dans "Réseau" et attendez quelques instant, vous devriez voir le nom de votre appareil s'afficher, si vous n'avez pas changé le "hostname" de Raspbian par défaut, vous attendez de voir un "RASPBERRYPI", sinon c'est le nom que vous lui avez donné.
  • Ouvrez votre partage, et entrer également dans le dossier "configs"
  • Ouvrez le fichier "config.ini" avec l'éditeur de texte de votre choix, si vous ne savez pas lequel, utiliser le Bloc-Note (Notepad).

Utilisation

Accès au partage

Le Raspberry Pi sera totalement ouvert aux accès sans restriction, vous pouvez accéder via le partage de Windows à l'adresse

\\<ip-ou-hostname-du-pi>\

et les deux partages suivants sont possibles;

  • \Configs : Accessible par tous, il possède des fichiers pour configurer les données du piDeskboard
  • \home$ : (À entrer manuellement) Un partage caché, pour accéder facilement à tout les fichiers disponible dans "/home/pi" du Raspberry Pi.

Lancement

Une fois tout installé, lancer un redémarrage avec ;

sudo reboot

. Si tous est correctement installé, vous devriez voir après quelques minutes l'interface.

Contrôle à distance

Le piDeskboard vient avec le module piWebCtrl. vous pouvez y accéder via le

http://<ip-du-pi>:9000/

.

Utiliser ailleurs

L'interface Web a été retiré pour gagner en performances.

Structures

Voici la structures des fichiers

  • piDeskboard (dans /home/pi)
    • sh : Scripts Bash
    • py : Fichiers Python
      • ui : Interface principal local
    • www : Dossiers des fichiers Web et PHP
      • ui : Fichiers d'interface
      • sys : Fichiers système
      • configs : Fichiers configurables

Support

Quelques commandes à savoir

Pour vous aider avec les commandes, vous pouvez créer un lien symbolique pour un lie facile;

sudo ln -ds /home/pi/pideskboard /pidesk
  • Connexion du Bluetooth (à éditer également, voir guide sur utilisation du Bluetooth en CLI)
    /pidesk/sh/cli_bt.sh
  • Si vous avez l'option de "pngview" de la suite "raspidmx"
    /pidesk/sh/cli_icon.sh <time in ms> <iconname>
  • Pour faire parler votre Raspberry, utilise eSpeak
    /pidesk/sh/cli_talk.sh <packlang> <text>
  • Lancer l'application sur l'écran principal
    /pidesk/sh/cli_deskboard.sh
  • Affiche une image d'attente (fullscreen)
    /pidesk/sh/cli_splash.sh
  • Vérifie si le script PHP CLI correspondant est lancé
    /pidesk/sh/cli_checkScript.sh <espeak|cron>
  • Vérifie si l'interface est active
    /pidesk/sh/cli_checkApp.sh
  • Si l'interface est active, il la tue et le redémarre à nouveau
    /pidesk/sh/cli_killApp.sh
  • Monitorise les erreurs d'Apache2
    /pidesk/sh/cli_monError.sh
  • Monitorise les activités dans le dossiers des "configs" et autres
    /pidesk/sh/cli_monDB.sh
  • Lance les moniteurs
    /pidesk/sh/dm_monitor.sh
  • Lance le piDeskboard en autologin
    /pidesk/sh/dm_start.sh

Modifier l'écran de démarrage

à venir

Personnaliser le design

à venir

Problèmes connus

  • L'installation n'a pas été testé un nombre de fois pour en assurer la fiabilité et la stabilité, merci de rapporter vos commentaires à ce sujet à levelkro@yahoo.ca.
  • Pour les autres problèmes, référez-vous à https://github.com/levelKro/pideskboard/issues

Mise à jours

Pour actualiser les codes du PiDeskabord;

cd /home/pi/pideskboard
git pull upstream main
sudo reboot

Note: Écran Raspberry Pi 3.5", 5", 7"

Si vous utilisez un écran LCD spécial pour Raspberry Pi; qui ce connect via le GPIO ou autres, et qui fait partie de la librairie "LCD-show", vous devez ABSOLUMENT appliquer ce correctif, sinon vous risquez d'avoir un erreur lors du démarrage du serveur X sous Raspbian Lite. Remplacer "<LCDXX-show>" par l'exécutable requis pour votre matériel, par exemple; LCD35-show, ou MHS35-show.

sudo sed -i 's|sudo reboot|echo "... but wait, before, I need to add my how fix ..."|g' /home/pi/LCD-show/LCDXX-show
sudo -s cat >> /home/pi/LCD-show/LCDXX-show << EOF
sudo sed -i 's|fbturbo|fbdev|g' /usr/share/X11/xorg.conf.d/99-fbturbo.conf
sudo mv /usr/share/X11/xorg.conf.d/99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbdev.conf
echo "... ok, all is fine, NOW you can reboot"
sudo reboot
EOF