F2FS sous Raspberrypi

Pour rappel, F2FS est un système de fichier qui préserve les cartes SD en variant les opérations d’écritures sur de multiples blocs. Il a été développé par Samsung et est beaucoup utilisé pour les mémoires des téléphones.

L’objectif de ce petit texte n’est pas de convaincre de l’utilité de F2FS, mais de présenter comment l’utiliser avec Raspberrypi.

Cependant, il faut savoir que F2FS ne prend pas en charge le redimensionnement des partition. Par ailleurs, l’outil de sauvegarde SDCard copier de raspbian ne fonctionne pas avec ce système de fichier, ce qui est une vraie limitation, tant celui-ci est utile.

L’idée est ici d’effectuer les opérations sur la carte contenant le système du Raspberry, mais sans qu’il soit en fonctionnement. Il faut donc soit retirer la carte du Raspberry et la monter sur un autre ordinateur, soit faire une copie du système sur une autre carte montée sur un adaptateur USB à l’aide de « SD Card Copier » du menu « Accessoires » (pour cela il est nécessaire de reformater entièrement la nouvelle carte en Fat32 si ce n’est pas déjà fait) et modifier le système de fichier de cette carte.

Par ailleurs, seule la partition root (à l’exception des partitions SETTINGS et boot) sera reformatée.

Deux possibilités s’offrent à nous :

  1. en ligne de commande :
    Préalablement, le logiciel de gestion des fichiers F2FS est à installer en root par :

    apt-get install f2fs-tools

    Comme le formatage effacera toutes les données sur la partition modifiée, il est nécessaire d’en effectuer la copie. Pour cela, on crée un répertoire d’accueil par :

    mkdir ~/backup_root

    puis, en root, on effectue la copie par :

    cp -v -a /lien_vers_la_partition_root_montée ~/backup_root

    Outre la verbosité (-v), on crée une archive (-a) qui conservera exactement le contenu de la partition. Cela peut être long.
    Puis, on utilise l’utilitaire de formatage mkfs.f2fs après avoir déterminé le nom de la partition, ici /dev/sdb2, par exemple, en root avec :

    fdisk -l

    et après avoir préalablement démonté la partition en root :

    umount /dev/sdb2

    La création du système de fichier F2FS se fait évidemment encore en root par :

    mkfs.f2fs /dev/sdb2

    On remonte ensuite en root la partition :

    mount -t f2fs /dev/sdb2 /lien_vers_la_partition_root_monté

    et on y remet en root le contenu précédemment sauvegardé :

    cp -v -a ~/backup_root /lien_vers_la_partition_root_monté

    Enfin, il faut modifier deux fichiers pour que le système prenne en compte le nouveau type de système de fichiers. Il s’agit de /etc/fstab sur la partition root et de /boot/cmdline.txt (ceux de la carte modifiée évidemment !). Dans fstab, il faut changer Ext4 par f2fs à la ligne contenant mmcblk0p2, de même qu’à la ligne contenant rootfstype= dans le fichier cmdline.txt. Cela est réalisable avec un éditeur de texte comme vi, par exemple.

  2. en mode graphique :
    Je ne décrirai pas la création du répertoire de sauvegarde, la copie de fichiers et la modification des fichiers textes en mode graphique. Pour le formatage, l’utilitaire nécessaire est gparted. Après la sauvegarde de son contenu, il permettra de trouver la partition, la démonter, la formater en f2fs pour autant que le paquet f2fs-utils soit installé, et la remonter. Restera à en recopier le contenu et à modifier les fichiers texte.

Voilà. Si le formatage vous reporte une erreur disant que la partition ne peut être inférieure à une certaine taille, vérifiez que vous tentez de formater la bonne partition, soit /root 🙂

Enfin, signalons qu’une fois toutes les opérations effectuées, gparted indiquera un problème au niveau de la partition en f2fs par un petit triangle d’attention et cela malgré l’installation du paquet f2fs-tools. Cela est probablement du au fait que le système de fichier ou f2fs ne prend pas en charge l’agrandissement, la réduction, la vérification, l’étiquetage et l’UUID de la partition, comme indiqué dans le menu « Affichage » sous « Prise en charge des systèmes de fichiers ». Évidemment, ne pas pouvoir redimensionner la partition est une mauvaise chose. Mais ce n’était pas nécessaire pour moi.

Bon courage.

Imprimante HP Photosmart C4580 sous Debian

Cette imprimante est pleinement fonctionnelle sous linux (testé sous Debian, Triskel et Raspberrypi). Cependant, sa configuration peut être quelque peu complexe. En voici la procédure pour l’utiliser en réseau, car elle ne pose pas de problèmes avec une connexion filaire USB.

Le problème essentiel est d’effectuer la configuration du Wifi pour lui permettre de recevoir une adresse IP du serveur DHCP. Si le wifi est crypté, la connexion de l’imprimante ne peut se faire directement via le petit panneau d’administration qui se trouve sur la machine. On peut cependant avoir un état de la connexion en utilisant ce panneau. Il faut activer le wifi à l’aide du bouton wireless qui se trouve au-dessus du petit écran. Puis choisir « Paramètres de configuration du réseau » et « Imprimer la page de configuration du réseau ». Si celle-ci donne pour URL du serveur web intégré l’adresse http://0.0.0.0, c’est que la connexion au point d’accès ne s’est pas faite. Pour choisir le point d’accès, lui transmettre la clé de cryptage, y connecter l’imprimante et lui attribuer une adresse IP, une connexion filaire USB est nécessaire.

Il faut donc brancher l’imprimante à l’ordinateur via un câble USB. Puis, utiliser l’utilitaire HPLIP, dont la version graphique installable sous linux est hplip-gui. Sous les trois systèmes d’exploitation mentionnés ci-dessus on installe par :

apt-get install hplip-gui

Puis on lance l’utilitaire « HP device manager » qui apparaît sous la forme d’un petit rond HP dans la barre des tâches. Dans le menu « Device », il faut choisir « Setup device ». S’ouvre alors une fenêtre « Device discovery » qui permet de choisir « Wireless/802.11 (requires a temporary USB connection and is only available for selected devices), puis presser sur Next et suivre les étapes de configuration où les identifiants du réseau wifi seront demandés. Il est possible que le mot de passe root soit demandé ou qu’il soit nécessaire de mettre l’utilisateur dans le groupe d’administration de l’imprimante (c’est ce qu’il a fallu faire sous raspberrypi) par :

sudo adduser pi lpadmin

ou régler les paramètres du firewall avec « gufw », par exemple, en le désactivant et réactivant pendant la procédure de test du scanner avec sane. Je ne décrirai pas ici l’installation de sane, mais un problème de firewall a été résolu ainsi lors du test de scan avec gimp (lançant sane).

Quand la configuration de l’imprimante est enregistrée, celle-ci devrait apparaître dans le panneau latéral gauche du « Device manager ». Si ce n’est pas le cas, il faut la rechercher sur le réseau dans le « Device manager », en lançant le « Device Discovery » du menu « Device » et choisissant cette fois « Network/Ethernet/Wireless network (direct connection or JetDirect) ». Il devrait alors être possible de la sélectionner et la faire apparaître dans le panneau latéral.

Ensuite, en cliquant dessus vous avez accès à l’impression et au scanner qui est sur l’imprimante. Relevez que le pilote d’impression est ici « HP Photosmart c4500 Series hpijs, 3.14.6 » sous Debian 8 (actuellement old stable). Il semblerait que cela soit ce pilote qui permet au scanner de fonctionner et que le pilote CUPS ne le permette pas. Mais je n’ai pas testé.

Quoi qu’il en soit, cette imprimante est chez moi parfaitement fonctionnelle sous linux.

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.

    Raspberrypi : correcteur orthographique dans texmaker

    Pour texmaker, le correcteur orthographique est installé par le paquet « hunspell-fr-… ». Différents paquets sont proposés (classical, compréhensive, modern et revised). Une description des différences est disponibles en cliquant dans synaptic sur le paquet (à ne pas installer, car il constitue une dépendance) « hunspell-fr ». Je propose d’installer « hunspell-fr-modern ». Vous pouvez aussi l’installer en ligne de commande par :

    sudo apt-get install hunspell-fr-modern

    Il est possible qu’il vous soit demandé de désinstaller myspell-fr. Autorisez-le, puisque myspell est aujourd’hui déprécié (voir http://www.dicollecte.org/faq.php?prj=fr): Puis, il faut se rendre dans le menu « Options » de Texmaker pour « Configurer Texmaker ». Dans l’onglet « Éditeur » sous « Dictionnaire » saisissez :

    /usr/share/hunspell/fr_CH.dic

    et validez par OK. Peut-être faudra-t-il relancer Texmaker. Une fois cela fait, votre dictionnaire devrait être actif.

    Raspberrypi : correcteur orthographique dans bluefish

    Peut-être avez vous remarqué, pendant vos longues heures de programmation sous Bluefish, que certains mots étaient soulignés par une petite ondulation rouge. Si ces mots sont des mots courants, c’est que le correcteur orthographique est dans une autre langue que le français ou qu’il n’a pas été installé.

    En effectuant un clic droit sur le texte souligné en rouge, le menu contextuel qui s’ouvre vous proposera de choisir le « Dictionnaire de langue ». Si fr_CH est présent, sélectionnez-le. Sinon, il faut installer le paquet aspell-fr soit à l’aide de synaptic, soit par :

    apt-get install aspell-fr

    puis sélectionner fr_CH dans le « Dictionnaire de langue ».

    Raspberrypi : barre de lancement du tableau de bord

    Objectif : ajouter un élément à la barre de lancement d’applications du tableau de bord. Il s’agit de mettre une icône pour lancer une application donnée depuis la barre des tâches.

    On peut penser qu’il suffit de faire un click droit sur la barre des tâches, de sélectionner « Ajouter/Enlever des éléments au tableau de bord », de sélectionner la « Barre de lancement d’applications » et d’en choisir les préférences pour accéder à la possibilité d’ajouter une « Application installée » au « Lanceur » pour que cela soit réglé. Mais non, pour moi cela ne fonctionne tout simplement pas, l’application sélectionnée ne s’ajoutant tout simplement pas au lanceur.

    Pour y parvenir, j’ai dû tout d’abord trouver le nom exact de l’application que je voulais voir figurer dans la barre de lancement : Firefox. Pour cela, en allant dans le menu des applications, sous « Internet » j’ai pu faire un click droit sur Firefox ESR et sélectionner ses « Propriétés ». Le lien vers le fichier cible m’a renseigné sur le nom que je cherchais :

    firefox-esr.desktop.

    Ensuite, d’une manière ou d’une autre, en mode root, j’ai ouvert avec un éditeur de texte le fichier :

    /home/pi/.config/lxpanel/LXDE-pi/panels/panel

    et ajouté au plugin de type launchbar le bouton pour Firefox selon le code ci-dessous :

    Plugin {
      type=launchbar
      Config {
        ...
        Button {
          id=firefox-esr.desktop
        }
    }

    Finalement, dans la console de l’utilisateur pi, j’ai rafraîchi l’affichage par :

    lxpanelctl restart

    et le bouton est apparu comme désiré.