Aller au contenu principal

Créer un écran de surveillance avec un Raspberry Pi

  • Fait : Maintenant que Zabbix est installé, pourquoi ne pas l’afficher sur un écran séparé ? J’ai un vieux téléviseur, alors… essayons.
  • Problème : Je n’ai pas de connexion Ethernet directe.
  • Hypothèse : Exécuter les sites web nécessaires sur un Raspberry Pi 3+ en utilisant une connexion Wi-Fi et alterner entre eux.

Besoin d’une bonne carte SD et du temps

  • Premier problème noté : Il faut une bonne carte SD. J’en suis déjà à ma deuxième.
  • Aussi, la version 64 bits de Bookworm fonctionne, mais après quelques heures, j’obtiens l’écran multicolore. Donc, je passe à la version 32 bits.
  • J’ai remarqué des petits bugs de base en exécutant htop, pas assez de mémoire, alors j’ai ajouté de la mémoire swap supplémentaire :
        sudo dphys-swapfile swapoff
    - Ensuite, j’ai modifié le fichier de configuration (swap) :
    ```bash
    sudo nano /etc/dphys-swapfile
    - Changez cette valeur pour quelque chose que votre carte SD peut supporter et sous 2 Go si vous ne voulez pas modifier d’autres configurations, ex. : ```CONF_SWAPSIZE=2048``` :
    ![swapsize](/img/Security/swapzire.png)
    - Enregistrez, puis réinitialisez le fichier swap :
    ```bash
    sudo dphys-swapfile setup
    sudo dphys-swapfile swapon
    - Redémarrez pour appliquer les changements :
    ```bash
    sudo reboot
  • Pour une raison quelconque, la date et l’heure étaient incorrectes. J’ai corrigé ça en exécutant :
        sudo date -s "2025-03-28 14:30:00"

Créer un script et installer des applications

  • Il faut vérifier ce que le Pi utilise actuellement pour l’affichage (Wayland ou X11) :

        sudo raspi-config

    raspconfig

  • Ensuite, allez dans 6 Options avancées - A6 Wayland - W1 X11 openbox gestionnaire de fenêtres avec backend X11 (parce que ça fonctionne mieux sur un Pi 3+).

  • Redémarrez !!

  • Ensuite, il faut installer ces applications :

    • La première pour supprimer le curseur de la souris :
          sudo apt-get install unclutter
    • La deuxième pour pouvoir exécuter des fonctions clavier (comme appuyer sur F5 ou Ctrl+Tab):
          sudo apt-get install xdotool
  • Il est temps de créer le script. Dans un nouveau fichier que j’ai gardé dans mon dossier utilisateur :

    • Je l’ai nommé run_fullsize.sh et j’y ai ajouté ceci :
          export DISPLAY=:0
      sleep 15
      /bin/chromium-browser --kiosk --start-maximized --noerrdialogs --disable-infobars --enable-features=OverlayScrollbar https://time.is/ http://yourZabbixserver &
    • Décomposons-le :
      • export DISPLAY=:0 (pour s’assurer que la variable $DISPLAY est définie sur le premier et, dans mon cas, le seul écran)
      • sleep 15 (puisque le script démarrera au démarrage, on veut que tout soit chargé avant de commencer… donc 15 secondes)
      • /bin/chromium-browser (lance Chromium avec les paramètres suivants) --kiosk (pas d’interaction) --start-maximized (plein écran) --noerrdialogs (pas de dialogues d’erreur) --disable-infobars (pas de barres d’onglets) --enable-features=OverlayScrollbar (pas de barre de défilement) https... (les sites web à afficher)
    • J’ai sauvegardé et rendu le script exécutable : sudo chmod +x run_fullsize.sh
  • Avant d’aller plus loin, je l’ai exécuté pour voir si ça fonctionne :

        ./run_fullsize.sh
    • Et ça marche !
    • NOTE : Je n’ai pas trouvé de moyen de me connecter automatiquement à Zabbix, alors j’ai branché un clavier et une souris, je me suis connecté et j’ai coché l’option “se souvenir de moi”.
  • Ensuite, j’ai tué le processus pkill -o chromium (-o pour le plus ancien) et j’ai créé deux autres scripts run_keystroke_sim.sh and run_through_tab.sh :

        sleep 35
    while true; do
    sleep 90
    xdotool key F5
    done
    • Et :
        export DISPLAY=:0
    while true; do
    sleep 60
    xdotool key ctrl+Tab
    done
  • Décomposons :

    • Je ne veux pas rafraîchir tout de suite, donc (sleep 35)
      • Ensuite, rafraîchir toutes les 90 secondes (sleep 90)
    • Sur le même écran et en s’assurant que la variable est la même (export DISPLAY=:0)
      • Ensuite, changer de page web toutes les minutes (sleep 60)

Lancer les scripts au démarrage

  • J’ai modifié le fichier autostart en ajoutant et supprimant certaines choses :

    Autostart

    • Décomposons :
      • Pas sûr de ce que font @xset s off @xset s noblank @xset s noblank mais on en a besoin.
      • Pour désactiver l’économiseur d’écran # @xscreensaver -no-splash
      • Supprimer le curseur de la souris @unclutter -idle 3 -root
      • Ajouter les 3 scripts :
        • @/home/user/run_fullsize.sh
        • @/home/user/run_through_tab.sh
        • @/home/user/run_keystoke_sim.sh

Pendant que j’utilisais SSH...

  • J’ai remarqué que le service laguait souvent et même plantait. Après quelques recherches, j’ai opté pour cette approche :
    • Il faut ajouter IPQoS cs0 cs0 à la fin du fichier /etc/ssh/sshd_config . Je suppose que ça a un rapport avec le paramètre de type de service (TOS).