Raspberrypi : bureaux virtuels

Le monde linux connaît bien les bureaux virtuels. Sur Raspberrypi, ils ne sont pas actifs par défaut. Pour les activer, il faut avoir recours à l’interface graphique de gestion du bureau « Open Box Configuration Manager » ou « Obconf » de son petit nom, qui n’est pas présente par défaut dans le menu framboise. Pour la faire apparaître, il faut se rendre dans le préférences de ce menu pour y sélectionner « Main Menu Editor ». Ensuite, dans cet éditeur de menu, il faut sélectionner les « Préférences » est cocher l’item « Open Box Configuration Manager ». Celui-ci apparaît alors dans les préférences du menu framboise.

En s’y rendant, sous l’onglet Bureau, on peut choisir le nombre de bureaux virtuels désirés et éventuellement les nommer.

Pour pouvoir les utiliser, il faut ensuite mettre un widget dans la barre de menus permettant de sélectionner celui sur lequel on veut se trouver. Pour cela, il faut cliquer-droit sur la barre de menus et choisir « Ajouter / Enlever des éléments au tableau de bord ». Ensuite, sous l’onglet « Appliquettes du tableau de bord », il faut choisir à gauche « Ajouter » et ajouter « Gestionnaire de bureaux virtuels ». On peut ensuite, en remontant l’appliquette dans la liste, la déplacer dans le tableau de bord pour une utilisation facilitée.

Reste que la sélection du bureau virtuel doit se faire avec la souris, ce qui n’est pas très agréable. Sous Debian, par exemple, choisir des équivalents claviers pour se déplacer d’un bureau virtuel à l’autre est facilité par un interface graphique. Sous Raspberry, il va falloir passer par l’édition d’un fichier de configuration d’Open Box. Il s’agit de :

~/.config/openbox/lxde-pi-rc.xml

Si ce fichier n’est pas présent, il faut créer dans le répertoire « .config » le répertoire « openbox » et y placer une copie du fichier :

/etc/xdg/openbox/lxde-pi-rc.xml

Ne travaillez pas directement dans le fichier sous etc, car il peut être mis-à-jour. Rendez-vous donc dans celui sous « .config ». Ce fichier contient énormément de choses. Notamment la liste des équivalents claviers. Cherchez-y donc la première ligne du code qui suit :

  <keyboard>
    <chainQuitKey>C-g</chainQuitKey>
    <!-- Keybindings for desktop switching -->
    <keybind key="C-A-Left">
      <action name="GoToDesktop"><to>previous</to><wrap>no</wrap></action>
 <!-- <action name="UnmaximizeFull"/>
      <action name="MaximizeVert"/>
      <action name="MoveResizeTo">
        <width>50%</width>
      </action>
      <action name="MoveToEdge">
        <direction>west</direction>
	    </action> -->
    </keybind>
    <keybind key="C-A-Right">
      <action name="GoToDesktop"><to>next</to><wrap>no</wrap></action>
<!--  <action name="UnmaximizeFull"/>
      <action name="MaximizeVert"/>
      <action name="MoveResizeTo">
        <width>50%</width>
      </action>
      <action name="MoveToEdge">
        <direction>east</direction>
            </action> -->
    </keybind>

Comme vous pouvez le voir, il s’agit de la partie consacrée au clavier. Oubliez les trois premières lignes. La quatrième définit l’équivalent clavier Ctrl-Alt-Left, c’est-à-dire ce qui va se passer quant on va presser simultanément sur Ctrl, Alt et la flèche gauche. En commentaire (<!– … –>) se trouve que que vous pouvez effacer, soit les actions prédéfinies pour cet équivalent clavier. À la place mettez la ligne :

<action name="GoToDesktop"><to>previous</to><wrap>no</wrap></action>

qui définit l’action du changement de bureau virtuel. Pour la flèche gauche, il s’agit de revenir sur le bureau précédent. C’est pourquoi l’action est « previous » et quelques lignes plus bas pour la flèche droite, l’action est « next ». Ainsi, au final, vous devriez avoir :

  <keyboard>
    <chainQuitKey>C-g</chainQuitKey>
    <!-- Keybindings for desktop switching -->
    <keybind key="C-A-Left">
      <action name="GoToDesktop"><to>previous</to><wrap>no</wrap</action>
    </keybind>
    <keybind key="C-A-Right">
      <action name="GoToDesktop"><to>next</to><wrap>no</wrap></action>
    </keybind>

En enregistrant ces modifications, vous pourrez alors changer de bureau directement au clavier, ce qui est très pratique.

Mot de passe raspberry perdu

Si vous avez perdu le mot de passe de votre raspberrypi, voici une méthode pour le récupérer.

La première chose à faire est d’accéder au fichier :

/etc/passwd

en sortant la carte sd du raspberry et en la mettant soit dans un adaptateur sd-usb, soit directement dans un ordinateur permettant d’utiliser une carte sd.

On peut alors avoir accès aux trois partitions de la carte et trouver le fichier en question (en cherchant un peu).

Dans ce fichier, il faut trouver la ligne :

pi:x: ...

et effacer le x de la ligne (mais pas les : de chaque côté), de manière à obtenir :

pi:: ...

On a ainsi effacé le mot de passe demandé pour la connexion en ligne de commande du raspberrypi. Il faut bien entendu ne pas oublier d’enregistrer.

Puis on éjecte la carte sd, on la remet dans le raspberry et on le démarre.

Si c’est l’interface en ligne de commande qui apparaît, on peut alors se connecter directement sous le compte pi, sans mot de passe. Si c’est l’interface graphique qui apparaît, ce n’est pas possible. Il faut alors utiliser les touches <Ctrl><Alt><F1> pour obtenir l’invite en ligne de commande et se connecter sur le raspberry sous le compte pi, sans mot de passe.

Le mot de passe pour la ligne de commande est donc maintenant vide, mais pas celui permettant de se connecter graphiquement. Cependant, on est maintenant connecté en ligne de commande sur le raspberry. On peut donc maintenant utiliser l’utilitaire de configuration du raspberry en entrant :

sudo raspi-config

Il va alors apparaître différentes options en ligne de commande permettant la configuration du raspberry, dont le changement du mot de passe. En choisissant celle-ci et en entrant deux fois le nouveau mot de passe, on peut changer définitivement celui-ci.

Il suffit alors de quitter la console par un « exit », puis de retrouver l’interface graphique par <Ctrl><Alt><F7 ou F8> et vous connecter. Si la console grahique n’est pas présente, redémarrez simplement.

Voilà. En vous souhaitant bonne chance dans vos manipulations, enjoy.

Raspberrypi : un cadre de photos

À l’aide de l’écran (tactile) officiel de raspberrypi, il est très simple de réaliser un petit cadre photo dont les images affichées résident sur un serveur distant. L’article dont je me suis inspiré est http://www.framboise314.fr/un-cadre-photo-avec-le-raspberry-pi/

Les paquets nécessaires sont :

apt-get install cifs-utils qiv pqiv

pqiv est semble-t-il une réécriture de qiv en python, dispose d’une interface graphique minimale et est en GPLv3 ; sxiv dispose aussi d’une interface graphique, semble être écrit en C, mais est en GPLv2. Pour ce projet sur raspberry, visiblement pqiv aurait été le meilleur choix. Je vais donc présenter les codes pour qiv et pqiv.

Pour le montage, je ne détaillerai pas plus qu’en précisant la commande :

sudo mount -t cifs -o username=... //serveur/photos/cadre /home/pi/cadre/

Pour le lancement du diaporama on a des options et le chemin du répertoire où sont montées les images :

qiv -f -R -S -n -s -r -d 10 -l -u -t -i -m /home/pi/cadre/

Les options choisies ici sont :

  • plein écran (–fullscreen -f),
  • lecture seule (–readonly -R),
  • mélange (-shuffle -S),
  • désactivation du filtre par extension (comme jpg, png, …) (–no_filter -n),
  • démarrage automatique de la présentation (-slide -s),
  • aléatoire (–random -r),
  • temporisé à 10 secondes (–delay -d),
  • rotation automatique (– autorotate -l),
  • sous-répertoires compris (–recursivedir -u),
  • mise à l’échelle de l’écran (si trop grand) (–scale_down -t),
  • sans barre d’état (–no_statusbar -i) et
  • mise à l’échelle de l’écran (si trop petit) (–maxpect -m).

Relevez que la barre d’état ne permet pas de changer de diapositives et n’affiche que des renseignements sur l’image.

Pour pqiv, les options sont les suivantes :

pqiv -f -s --shuffle -d 10 -F -t -i /home/pi/cadre/

avec les options :

  • plein écran (–fullscreen -f),
  • démarrage automatique de la présentation (–slideshow -s),
  • mélange aléatoire des images (–shuffle),
  • temporisé à 10 secondes (–slideshow-interval=n -d),
  • transitions douces (–fade -F),
  • mise à l’échelle (–scale-images-up -t),
  • sans barre d’état (–hide-info-box -i).

Il faut relever qu’avec pqiv les images présentés paraissent plus lumineuses et qu’en mode fenêtre, il est possible de rendre la bordure transparente (composite nécessaire !), ce qui devrait permettre d’afficher des images sur le fond d’écran à l’instar de conky. Par contre, malgré un raspberry ou l’économiseur d’écran est désactivée (avec la méthode précisée ici), avec pqiv l’écran devient noir au bout d’un certain temps, ce qui ne se produit pas avec qiv. Le problème peut être corrigé en installant le paquet xscreensaver, en lançant le démon éponyme et en le désactivant par son interface graphique.

D’autre options intéressantes sont présentes avec pqiv, comme une relecture automatique du répertoire permettant de prendre automatiquement en compte de nouvelles images. Mais je n’ai pas testé !

Raspberrypi : désactivation de la mise en veille de l’écran

Je reprends ici l’excellent post suivant :

http://framboisepi.fr/desactiver-la-veille-decran/

et le réécris pour mémoire.

Normalement le paquet

x11-xserver-utils

devrait être installé sur votre raspberry (stretch). Pour savoir si c’est le cas :

apt search x11-xserver-utils

Si ce n’est pas le cas, installez-le. Si c’est le cas, il faut ensuite modifier le fichier :

/etc/xdg/lxsession/LXDE/autostart

en retirant la ligne :

@xscreensaver -no-splash

et en ajoutant :

@xset s off
@xset -dpms
@xset s noblank

Finalement, il faut redémarrer le raspberry.

Pour terminer, voici la référence à une discussion technique très intéressante sur la désactivation de la mise-en-veille par écran noir qui peut dans certains cas se produire malgré la réalisation des opérations ci-dessus :

https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=18200

Raspbian : mise-à-jour jessie vers stretch

La mise-à-jour de rasbian sans réinstallation de tout le système est possible de jessie vers stretch.

Avant toute chose :

  1. faites une mise-à-jour de jessie soit en ligne de commande avec :
    apt-get update suivi de apt-get upgrade

    soit à partir de synaptic avec « Recharger », « Tout mettre à niveau » et « Appliquer ».

  2. faite une copie de votre carte SD avec SD Card Copier du menu Accessoires.

Puis, il est nécessaire de remplacer toutes les occurences de jessie par stretch dans les deux fichiers /etc/apt/sources.list et /etc/apt/sources.list.d/raspi.list. Pour cela, vous pouvez soit utiliser un éditeur de texte comme vi, soit le faire directement via synaptic via les « Dépôts » du menu « Configuration » où en changeant toutes les occurences de jessie en stretch vous agirez sur les deux fichiers « sources.list » et « raspi.list » simultanément.

Réalisez ensuite le rafraîchissement de la liste des paquets vers stretch par :

apt-get update

et effectuez la mise-à-jour avec :

apt-get -y dist-upgrade

(sous Debian, un simple upgrade après update réaliserait une mise-à-jour partielle moins risquée si on a peu de mémoire ou des paquets problèmatiques. Cela permet de gérer manuellement les problèmes avant une mise-à-jour complète avec dist-upgrade ; qu’en est-il sous raspbian, je n ‘ai pas testé !)

Référence : https://www.framboise314.fr/raspbian-stretch-pour-le-raspberry-pi-est-disponible/

Remarque : chez moi, la connexion distante en rdp ne fonctionne plus après mis-à-jour. Ce jour je n’ai pas trouvé de solution. Le reste est parfaitement fonctionnel.

Projet domotique : arrosage automatique 1

Introduction

Sans voiture depuis maintenant bientôt huit ans, très sensible à l’environnement, mais issu d’une culture scientifique, ingénieur physicien, j’ai tardivement pris conscience de la nécessité d’une indépendance alimentaire.

Mais j’ai décidé de reprendre les choses en main. Malgré mon intérêt immédiat pour la permaculture peu expansive en eau, s’est rapidement imposé à moi la nécessite d’une bonne gestion de l’eau. Notamment pendant mes absences.

Or une bonne gestion de l’eau n’est pas chose évidente pour plusieurs raisons.

  • Elle doit être automatique. Arroser est une opération à base fréquence mais sur un très long terme. Dans ces conditions, le recours aux machines est  judicieux.
  • La consommation énergétique doit être aussi faible que possible étant donné une volonté de diminution et une utilisation avec des panneaux solaires.
  • La consommation d’eau aussi doit être la plus faible possible. Outre une nécessaire permaculture, cela implique de ne pas utiliser de gicleurs.
  • Plusieurs séquences d’arrosage doivent être possible et leur programmation doit pouvoir se faire à distance.
  • Le coût ne doit pas être prohibitif. Notamment le coût en terme de déplacements, puisque il doit se faire exclusivement à vélo.
  • L’ensemble des logiciels utilisées doit être libre, étant donné mon adhésion au mouvement des logiciels libres.

    Par ailleurs, il faut mentionner que les surfaces en jeu sont petites étant donné une production strictement locale, mais en milieu urbain. Locale mais pas exclusivement personnelle puisqu’une partie est dévolue aux incroyables comestibles.

    Cette introduction montre clairement la complexité de la situation et, expérience faite, la sous-évalue même.

    Mais, c’en est justement l’intérêt, puisque des connaissances très multi-disciplinaires sont nécessaires. Les obtenir fut un enjeu et un réel plaisir que je vais tenter de vous faire ressentir dans la suite de cette série d’articles.