phone

    • chevron_right

      Rassemblement pour Paul dans toutes les villes de France

      news.movim.eu / LinuxFRJournaux • 18 October, 2024 • 1 minute

    Cher journal,

    Je t'écris aujourd'hui pour te parler d'une personne que je ne connaissais pas mais dont je me sens très proche aujourd'hui.

    Paul Varry était un développeur Android d'après sa biographie Linkedin. Paul était également un fervent défenseur des déplacements à vélos et militait dans l'association Paris en Selle.

    Mais Paul a été assassiné alors qu'il rentrait du travail à vélo.

    Il a été assassiné par un individu qui circulait sur une piste cyclable avec un SUV produit par Mercedes . Arme létal qui n'a laissée aucune chance à Paul qui est mort sur le coup.

    Ce meurtre me terrifie, mais il ne m'étonne pas. Je vois cette montée de la violence routière autour de moi, je vois cette propagande publicitaire qui incite à la violence routière. Et je vois ce laxisme des pouvoirs public qui ferment les yeux et se bouchent les oreilles. Je vois également ces politiques qui libèrent la violence routière .

    Il faut que cela cesse, la peur dois changer de camps.

    Halte au meurtres de cyclistes et de piétons !

    Pour dire stop à la violence routière, et pour rendre hommage à Paul, partout en France est organisée une minute de silence devant les mairies samedi 19 octobre à 17h45 .

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • wifi_tethering open_in_new

      This post is public

      linuxfr.org /users/martoni/journaux/rassemblement-pour-paul-dans-toutes-les-villes-de-france

    • chevron_right

      Le musée Rodin refuse de diffuser les numérisations de ses oeuvres

      news.movim.eu / LinuxFRJournaux • 18 October, 2024

    L'histoire est à lire ici en anglais:
    https://cosmowenman.substack.com/p/secret-3d-scans-in-the-french-supreme

    Ça parle d'un artiste qui se bat pour l'accès libre aux oeuvres du domaine public. Il a entrepris de se confronter au musée Rodin afin qu'ils diffusent les scans qu'ils ont réalisé avec de l'argent public dans le but mentionné de les diffuser au public. Il a donc déposé plainte en 2019 aux côtés des associations Communia, La Quadrature du Net et Wikimédia France.

    Le récit est très intéressant, il montre les arguments fallacieux du musée et les réponses de la cour à ceux-ci. Je ne divulgâche pas la fin et vous souhaite bonne lecture!

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • wifi_tethering open_in_new

      This post is public

      linuxfr.org /users/ted/journaux/le-musee-rodin-refuse-de-diffuser-les-numerisations-de-ses-oeuvres

    • chevron_right

      Microsoft et Outlook

      news.movim.eu / LinuxFRJournaux • 19 September, 2024 • 2 minutes

    Salut 'Nal,
    Aujourd'hui, je souhaite évoquer avec toi un mail que j'ai reçu de la part du service communication Outlook, sur ma boite mail du même fournisseur :

    Le 16 septembre 2024, les applications qui utilisent une technologie de connexion moins sécurisée ne pourront plus accéder à votre messagerie.
    La sécurité de vos informations est la priorité absolue de Microsoft. Pour préserver la sécurité de votre compte, Microsoft ne prendra plus en charge l’utilisation d’applications de messagerie et de calendrier tierces qui vous demandent de vous connecter avec uniquement les nom d’utilisateur et mot de passe de votre compte Microsoft. Pour accroître votre sécurité, vous devrez utiliser une application de messagerie ou de calendrier qui prend en charge les méthodes d’authentification moderne de Microsoft. Si vous n’agissez pas, vos applications de messagerie tierces ne seront plus en mesure d’accéder à votre adresse e-mail Outlook.com, Hotmail ou Live.com le 16 septembre 2024.
    Que devez-vous faire ?
    Si vous recevez cet e-mail, vous utilisez actuellement une application de messagerie ou de calendrier qui se sert d’une méthode d’authentification moins sécurisée pour la connexion à votre compte de messagerie Outlook.com. Vous devrez mettre à niveau vos applications de messagerie et de calendrier tierces vers une version qui prend en charge les méthodes d’authentification moderne.
    Microsoft propose des versions gratuites d’Outlook pour vos PC et appareils Mac, iOS et Android qui peuvent être facilement téléchargées et connectées à votre compte de messagerie. L’utilisation d’une version mise à jour d’une application Outlook garantit que vous vous connectez de la façon la plus sécurisée.
    Comment pouvez-vous configurer votre application de messagerie Gmail, Apple Mail ou tierce ?
    Différentes applications non-Microsoft comporteront leur propre procédure de connexion à votre compte de messagerie Outlook.com avec des méthodes d’authentification moderne. Consultez notre article d’aide, « Méthodes d’authentification moderne à présent nécessaires pour poursuivre la synchronisation de la messagerie Outlook dans les applications de messagerie non-Microsoft ». Toutefois, vous devrez peut-être contacter les créateurs de ces applications pour obtenir des instructions. Dans bien des cas, il suffira de supprimer et de rajouter votre compte avec la dernière version de cette application afin qu’il soit configuré pour utiliser les méthodes d’authentification moderne.

    Cette boite mail reste pour le moment ma boite principal, mais c'est promis, je vais bientôt m'en séparer.
    Cependant, je voudrais tout de même soulever une question : Nous sommes le 19 Septembre, Thunderbird, qui selon le message, ne devrait plus fonctionner, fonctionne toujours !
    Ainsi, vient donc ma question : Si Microcro..e veut privatiser, et m'obliger à utiliser son logiciel, pourquoi ne pas le faire jusqu'au bout ?

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • wifi_tethering open_in_new

      This post is public

      linuxfr.org /users/qrpipy/journaux/microsoft-et-outlook

    • chevron_right

      LinkedIn, c'est terminé ! Merci l'exploitation des données pour l'IA générative

      news.movim.eu / LinuxFRJournaux • 19 September, 2024 • 2 minutes

    Cher 'nal,

    Ceci est une prose que je ne pensais pas devoir rédiger aussi vite.

    Cependant, à voir l'impact massif que peut avoir cette nouvelle explosive (aucun lien avec l'actualité au Moyen-Orient ou en Europe de l'Est, détendez-vous 😅), je me dois de consacrer une partie de mon temps de cerveau disponible pour rédiger un avertissement à destination du public (du moins, pour les moules<).

    Pourtant, je le sentais venir ce coup-là. Ma procrastination va me perdre et le temps est maintenant vraiment compté pour me tirer du guêpier de la Grande Merdification.

    Bon, j'arrête de tourner autour du pot. Allons à l'essentiel.

    Le Facebook de la vie professionnelle détenu par la COGIP yankee a réactualisé ses CGU pour s'autoriser officiellement le droit d'exploiter les données de ses utilisateurs à des fin d’entraînement des grands modèles de langage, autrement dit une intelligence artificielle générative comme ChatGPT. Les modalités d'exploitation détaillées dans la FAQ ont de quoi me couper l'appétit pour ce midi. Cela pose des questions sur des sujets aussi vastes que le respect des droits d'auteur ou du secret de correspondance .

    Je ne suis pas convaincu par la clause "pas d'exploitation des données par défaut en UE et en Suisse", d'autant plus que la plupart de mes contacts sont domiciliés hors de la forteresse Europe. J'ai déjà assez d'expérience significative dans la gestion d'infrastructure informatique pour voir pas mal de possibilité de contournement technique afin de faire des expérimentations en douce.

    Je ne remercierais jamais assez le tabloïd de la Toile pour m'attirer l'attention sur ce tournant, en plus de me divertir sur le carnaval des trolls dans son forum en langue de Shakespeare.

    À vrai dire, cela me démange depuis un moment de me déconnecter définitivement de cette plateforme et de mettre en place un bon vieux infolettre à la place.

    Au moins, avec le changement de CGU, j'ai enfin un bon prétexte officiel assez convaincant pour justifier mon intention de fermeture de compte sans me faire passer pour un amiche nostalgique de la lampe à huile aux yeux de mes clients et de mes partenaires.

    Sur ce, je retourne à mes occupations IRLs habituelles. Prenez-soi de vos données.

    PS: Une vidéo en bonus pour illustrer mon humeur concernant la nouvelle du jour. À méditer, à commenter, ou/et à faire toute autre utilisation pour briller en société.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • wifi_tethering open_in_new

      This post is public

      linuxfr.org /users/vendrediouletrollsauvage/journaux/linkedin-c-est-termine-merci-l-exploitation-des-donnees-pour-l-ia-generative

    • chevron_right

      Installation personnalisée de Debian avec LUKS v2, volumes Btrfs, systemd-boot et Secure Boot

      news.movim.eu / LinuxFRJournaux • 18 September, 2024 • 22 minutes

    Sommaire

    Cher journal,

    Je me suis amusé en début d’été à réinstaller ma machine avec Debian Bookworm et j’ai pris quelques notes pour en faire un article sur mon blog. Nous voilà déjà à la fin de l’été et j’ai publié l’article que je vous ai retranscrit ici directement ci-dessous.

    Finalement, cet article que j’avais imaginé petit a pris bien plus de mon temps que prévu :)

    Installation personnalisée de Debian avec disque chiffré par LUKS v2, volumes Btrfs, systemd-boot et Secure Boot

    Introduction

    Dans cet article, je vais vous présenter comment j’ai fait pour installer Debian Bookworm de manière chiffrée avec les outils de sécurité les plus récents.

    Pour chiffrer une installation, l’installateur de Debian crée actuellement un conteneur LUKS v1 et installe l’outil GRUB 2 pour démarrer le système.

    L’installateur ne peut ni passer à la version 2 de LUKS ni utiliser l’algorithme de dérivation de clé Argon2id , car il doit d’abord attendre que GRUB 2 réimplémente lui-même ces deux spécifications.

    L’intérêt d’ Argon2id est qu’il protège la clé de déchiffrement du disque de manière à résister à la puissance des cartes graphiques. Quant à la version 2 de LUKS, son intérêt est qu’il permet justement d’utiliser Argon2id .

    Heureusement, Debian peut être installée manuellement (sans utiliser d’installateur) depuis un autre Linux grâce au système debootstrap . Ainsi, à la manière de la distribution Arch Linux , l’installation peut être totalement personnalisée.

    Pour pouvoir utiliser LUKS v2 et Argon2id , j’ai choisi d’utiliser systemd-boot pour démarrer mon système à la place du traditionnel GRUB 2 .

    systemd-boot ne doit ni implémenter LUKS v2, ni Argon2id , parce qu’il se contente d’exécuter le noyau Linux au format initramfs 1 . Le déchiffrement du disque sera géré directement par ce Linux qui a déjà son implémentation de tous les algorithmes nécessaires. 2

    Pour que ce système fonctionne, il faut installer systemd-boot et les noyaux Linux directement dans la partition système ESP (sans chiffrement). Cette partition est celle utilisée par le firmware de l’ordinateur pour démarrer le système d’exploitation de votre choix. Elle est définie par le standard UEFI (standard qui définit une interface entre le firmware de la machine et le système d’exploitation).

    La partition ESP ne peut pas être chiffrée, car elle doit être lisible par le firmware de la machine. D’un côté, c’est un avantage, car c’est grâce à ça que systemd-boot peut démarrer le noyau Linux facilement, mais d’un autre côté, c’est un désavantage, car il n’est plus possible de garantir que le contenu de la partition n’a pas été altéré par un logiciel ou un acteur malveillant.

    Bien qu’il ne soit pas possible de chiffrer le contenu de la partition ESP, il est possible de demander au système d’exploitation de signer numériquement le contenu qu’il installe dans cette partition. Ensuite, il faut que le système d’exploitation partage avec le firmware sa clé publique pour que le firmware puisse valider l’authenticité du contenu. Si le firmware détecte que le contenu de la partition ESP a été altéré (la signature est invalide), il doit refuser de démarrer le système d’exploitation.

    Le standard UEFI a déjà pensé à ce système de sécurisation du contenu de la partition ESP et l’a nommé Secure Boot . Si le démarreur a été altéré, le seul moyen de démarrer le système d’exploitation est de désactiver Secure Boot dans les paramétrages de la machine. Il est donc important de définir un mot de passe d’accès aux paramétrages de l’UEFI lors de l’installation de la machine (si non, toute personne qui a accès à la machine peut installer un logiciel malveillant dans la partition ESP et désactiver Secure Boot ). 3

    En résumer, dans cet article je vais vous montrer comment j’ai installé Debian Bookworm avec tous ces outils (LUKS v2, Argon2id , systemd-boot , Secure Boot ). Les étapes que j’ai suivies sont dans l’ordre :

    1. démarrer une image autonome (live) de Debian (avec Secure Boot désactivé)
    2. préparer le disque et les partitions
    3. installer le système de base avec debootstrap
    4. entrer dans ce système de base
    5. installer systemd-boot comme système de démarrage
    6. configurer et activer Secure Boot

    Démarrer une image autonome de Debian avec Secure Boot désactivé

    Depuis la page Obtenir Debian , je télécharge l’ « image autonome GNOME » . Ensuite, je vérifie l’authenticité de l’image téléchargée et je peux l’installer sur une clé USB avec l’outil Disques de GNOME .

    Maintenant que la clé est prête, je peux la brancher à la machine. Je démarre l’ordinateur en entrant d’abord dans son outil de paramétrage du UEFI . Il faut y faire les changements suivant :

    • autoriser le démarrage sur clé USB
    • configurer un mot de passe pour accéder à cette interface de configuration
    • modifier la configuration de Secure Boot pour le passer en « Setup Mode » Dans l’UEFI de ma machine, cette option s’appelle « Secure Boot ⭢ Reset to Setup Mode » et sa documentation explique bien que « la Platform Key sera supprimée, Secure Boot sera désactivé et passé en Setup Mode ».

    Enfin, je redémarre la machine et je lui fais démarrer Debian depuis la clé USB .

    Préparer les partitions sur le disque

    Organisation du disque dur

    Avec le système de démarrage UEFI et les partitions au format Btrfs , il est devenu possible de faire une organisation plutôt simple du disque dur.

    En effet, UEFI nécessite d’utiliser une table de partition de type GPT ce qui implique plus de souplesse dans la gestion du disque :

    • l’espace qui contient les démarreurs de système d’exploitation est lui-même une partition dont la taille peut être choisie
    • selon les implémentations, il est possible de créer beaucoup plus de partitions (le système précédent, MBR, était limité à 4 partitions seulement)
    • les identifiants uniques GUID sont utilisés pour désigner les partitions de manière univoque

    Btrfs quant à lui permet de créer des sous-volumes logiques qui permettent d’organiser les données dans le disque sans avoir besoin de créer des partitions avec des tailles arbitraires difficiles à changer par la suite.

    J’ai décidé de ne pas avoir de partition de type swap , parce que je ne l’utiliserai pas le système d’hibernation de la machine. Je ferais plus tard un fichier de type swap pour les cas où la mémoire vive ne suffit vraiment plus pendant le fonctionnement.

    Le schéma de mon disque est finalement le suivant :

    ┌       ┬                                   ┬           ┐
    │  ESP  │              Debian               │  Windows  │
    │       │  Btrfs dans un conteneur LUKS v2  │           │
    └       ┴                                   ┴           ┘
    

    La partition ESP contiendra l’outil systemd-boot , les images Linux au format initramfs et le démarreur de Windows.

    La partie Debian est une partition Btrfs installée dans un conteneur de chiffrement LUKS v2.

    La partie Windows sera un espace libre qui sera rempli automatiquement par l’installateur de Windows (au final 2 partitions).

    Créer la partition ESP pour démarrer le système

    L’image autonome GNOME de Debian Bookworm est fournie avec le logiciel Disques , je l’utilise pour préparer plus facilement la machine avec une interface graphique.

    D’abord, je sélectionne le disque de ma machine et je lui crée une nouvelle table de partition de type GPT ( attention, cette opération écrase toutes les données du disque : si des données existent déjà, faites une sauvegarde avant ! ).

    Pour la première partition, je crée la partition ESP avec le type « Compatible avec tous les systèmes et périphériques ( FAT ) » et assez large (10 Gio), parce que systemd-boot nécessite d’installer les images initramfs dans cette partition. Par exemple, maintenant, je n’ai qu’un seul noyau installé et il y a déjà une centaine de Mio d’utilisé (principalement 75 Mio pour un noyau et 27 Mio pour Windows).

    Après la création de cette partition, il faut la sélectionner dans Disques , cliquer sur la roue dentée en dessous et choisir le menu contextuel « Edit Partition ». Dans le dialogue qui s’ouvre, il faut alors changer le « Type » et choisir la valeur « Système EFI » pour que le firmware UEFI sache que cette partition contient les démarreurs des systèmes d’exploitations.

    Créer la partition chiffrée pour Debian

    Pour créer la partition de Debian avec Disques , il faut choisir la taille désirée, le type « Autre » et l’option « Pas de système de fichiers » sur la seconde partie de l’écran de configuration.

    Pour le choix de la taille de la partition, j’ai personnellement laissé environ 70 Gio à la fin du disque pour pouvoir installer Windows plus tard.

    Je sais que Disques permet aussi de créer facilement une partition Btrfs chiffrée par un conteneur LUKS, mais il ne sait créer que des conteneurs LUKS v1 et non pas v2 .

    Pour créer le conteneur LUKS v2, la commande sudo cryptsetup luksFormat /dev/sda2 de Debian Bookworm suit déjà par défaut les recommandations actuelles (l’identifiant /dev/sda2 est à adapter avec la valeur affichée par Disques ).

    Ensuite, il faut monter le conteneur avec la commande sudo cryptsetup open /dev/disk/by-uuid/${UUID} luks-debian ce qui prépare le périphérique /dev/mapper/luks-debian .

    Pour retrouver facilement le bon identifiant UUID à utiliser, j’utilise la commande lsblk -f ou le logiciel Disques .

    Il reste à créer la partition Btrfs sur ce périphérique avec sudo mkfs.btrfs /dev/mapper/luks-debian et la monter sur /mnt avec sudo mount /dev/mapper/luks-debian /mnt .

    Créer les sous volumes Btrfs

    Pour les sous-volumes, je suis les besoins de l’outil de sauvegarde Timeshift qui utilise @ pour la partition racine et @home pour la partition de données utilisateurs.

    $ sudo btrfs subvol create /mnt/@
    $ sudo btrfs subvol create /mnt/@home

    Monter les volumes et les partitions

    Avant d’entrer dans le chroot, il faut remonter les partitions pour être prêt à faire l’installation concrète de Debian aux bons endroits :

    $ sudo umount /mnt
    $ sudo mount /dev/mapper/luks-debian -o compress=zstd,subvol=@ /mnt
    $ sudo mkdir -p /mnt/home
    $ sudo mount /dev/mapper/luks-debian -o compress=zstd,subvol=@home /mnt/home
    $ sudo mkdir -p /mnt/boot/efi
    $ sudo mount /dev/disks/by-uuid/${ESP_UUID} /mnt/boot/efi

    Installer le système de base

    Pour débuter l’installation, je suis à peu près le manuel Debian pour Installer Debian GNU/Linux à partir d’un système Unix/Linux .

    Comme l’image autonome utilisée est elle-même une distribution Debian, j’installe debootstrap simplement avec apt :

    $ sudo apt update
    $ sudo apt install debootstrap

    Ensuite, je débute l’installation minimale :

    $ sudo debootstrap --arch amd64 bookworm /mnt http://ftp.ch.debian.org/debian

    Avant d’entrer dans le contexte de l’installation ( chroot ), je copie l’état actuel des points de montage qui ciblent le dossier /mnt du système autonome dans le fichier fstab du chroot (ce fichier a été créé par debootstrap ) :

    $ grep /mnt /etc/mtab | sudo tee -a /mnt/etc/fstab

    Pour la partie « Créer les fichiers des périphériques » du manuel d’installation, j’utilise la commande suivante (trouvée sur le wiki de Debian: GRUB EFI Reinstall ) pour partager les montages de l’image autonome avec le conteneur chroot :

    $ for i in /dev /dev/pts /proc /sys /sys/firmware/efi/efivars /run; do sudo mount -o bind $i /mnt$i; done

    Maintenant, je peux entrer concrètement dans le système installé avec la commande chroot :

    $ LANG=C.UTF-8 sudo chroot /mnt /bin/bash

    D’abord, je modifie le fichier /etc/fstab avec les entrées nécessaires pour monter la partition ESP et les sous-volumes Btrfs .

    Comme j’ai prérempli le fichier avec les lignes du système autonome au-dessus, il faut remplacer les cibles de montages /mnt , /mnt/home et /mnt/boot/efi par / , /home et /boot/efi respectivement.

    Par exemple, sur mon ordinateur le fichier contient :

    $ cat /etc/fstab
    # /etc/fstab: static file system information.
    #
    # file system    mount point   type    options                  dump pass
    /dev/nvme0n1p1 /boot/efi vfat rw 0 0
    /dev/mapper/luks-debian / btrfs rw,relatime,compress=zstd:3,ssd,space_cache=v2,subvolid=256,subvol=/@ 0 0
    /dev/mapper/luks-debian /home btrfs rw,relatime,compress=zstd:3,ssd,space_cache=v2,subvolid=257,subvol=/@home 0 0

    Pour confirmer que le fichier est correct, le plus simple est de forcer un montage de toutes les partitions :

    $ mount -a

    Comme le manuel d’installation le propose, je configure le fuseau horaire avec :

    $ dpkg-reconfigure tzdata

    Ensuite, j’ajoute un serveur DNS de Quad9 temporairement pour continuer l’installation avec un réseau fonctionnel :

    $ echo "nameserver 9.9.9.10" > /etc/resolv.conf

    Je profite aussi de donner un nom à mon ordinateur :

    $ echo togepi > /etc/hostname

    Je modifie les listes de source des paquets Debian pour ajouter le dépôt non-free-firmware (mon matériel a besoin de firmwares privateurs pour démarrer correctement) :

    $ editor /etc/apt/sources.list

    et ajouter non-free-firmware à côté de main .

    Comme proposé par le manuel, j’installe les locales pour avoir la locale fr_CH.UTF8 disponible sur ma machine :

    $ apt update
    $ apt install locales
    $ dpkg-reconfigure locales

    Enfin, j’installe comme conseillé console-setup et l’image du noyau Linux :

    $ sudo apt install console-setup linux-image-amd64

    Préparation des fichiers de configuration avant d’installer systemd-boot

    Au lieu d’installer GRUB comme dans le manuel d’installation de Debian , j’installe systemd-boot en suivant les conseils du blog Md at debian.org .

    Je commence par créer les fichiers de configuration avant d’installer systemd-boot pour que, au moment de son installation, tout se configure directement comme nécessaire.

    Le premier fichier à configurer est /etc/kernel/cmdline qui contiendra les options de démarrage de Linux . Ces options expliquent à l’image Linux initramfs comment démarrer le noyau Linux complet.

    Mon fichier contient une ligne comme celle-ci :

    cryptdevice=UUID=${UUID}:luks-debian root=/dev/mapper/luks-debian rootflags=subvol=@ quiet splash

    Quelques explications :

    • cryptdevice=UUID=${UUID}:luks-debian Cette option permet de faire le lien entre la partition désignée par la valeur ${UUID} (à remplacer par l’identifiant du conteneur LUKS) et son alias luks-debian (sa valeur peut être différente, mais elle doit se retrouver dans les fichiers /etc/fstab et /etc/crypttab ). Cette option sera utilisée par le module cryptsetup pour demander la phrase de passe pour déchiffrer le système (selon les détails retrouvés dans le fichier /etc/crypttab , voir plus bas)
    • root=/dev/mapper/luks-debian Cette option annonce où se situe la source de la racine du système de fichier « / » pour démarrer le noyau Linux complet (avec l’utilisation de l’alias de l’option précédente).
    • rootflags=subvol=@ Cette option précise d’utiliser le volume Btrfs @ comme point de montage pour la racine du système de fichier « / ».
    • quiet Cette option permet de réduire la quantité de messages affichés au démarrage. Dans un premier temps, il vaut mieux l’omettre pour pouvoir voir les messages d’erreur. Elle peut être ajoutée dans un second temps, quand le démarrage aura réussi une première fois.
    • splash Cette option permet de remplacer le texte de démarrage par une animation graphique proposée par la distribution (via le logiciel Plymouth ) à la place des messages de démarrage. Pour les mêmes raisons que l’option quiet , il vaut mieux l’activer dans un second temps.

    Le second fichier à configurer est /etc/crypttab pour que l’image initramfs et le module cryptsetup sachent comment déchiffrer le conteneur LUKS. Par exemple, le contenu de mon fichier est :

    luks-debian UUID=${UUID} none cipher=aes-xts-plain64,size=512,hash=sha256

    Il faut de nouveau remplacer ${UUID} par l’identifiant du conteneur LUKS et luks-debian par l’alias choisi.

    Ce fichier répète le lien entre la partition et l’alias, mais il précise surtout qu’il n’y a pas de fichiers contenant une clé de déchiffrement et quels sont les algorithmes à utiliser pour pouvoir déchiffrer les données.

    Pour retrouver les bonnes options, j’ai utilisé la commande cryptsetup pour afficher les informations du conteneur LUKS (il faut installer le paquet cryptsetup d’abord si vous exécutez cette commande dans le chroot ) :

    $ cryptsetup luksDump /dev/disk/by-uuid/${UUID}

    Installation des outils personnels et de ceux nécessaires pour l’image initramfs

    L’environnement Debian dans le chroot est bien configuré, mais il est encore très minimal. Je lui ajoute les outils standards de Debian :

    $ tasksel install standard

    Je profite pour installer un environnement de bureaux (personnellement j’apprécie GNOME ) :

    $ tasksel install gnome-desktop

    Quelques outils spécifiques au matériel de ma machine :

    $ tasksel install laptop # mon ordinateur est un portable
    $ apt install amd64-microcode firmware-amd-graphics # mon ordinateur utilise du matériel AMD
    $ apt install firmware-misc-nonfree # mon ordinateur a une carte wifi MediaTek

    Enfin, il est important d’installer dans le chroot et dans l’image initramfs le module cryptsetup qui permet de gérer les conteneurs LUKS. Sans cet outil, il est impossible de déchiffrer les partitions.

    $ apt install cryptsetup cryptsetup-initramfs

    Avec cette commande Debian reconstruit l’image initramfs avec tous les outils nécessaires pour déverrouiller le disque au démarrage. Il ne reste donc plus qu’à installer le démarreur systemd-boot .

    Installation de systemd-boot

    Depuis la version 12 (alias Bookworm ) de Debian , il suffit d’exécuter :

    $ apt install systemd-boot

    Ensuite, la configuration de cet outil se fait directement dans la partition ESP en modifiant le fichier /boot/efi/loader/loader.conf .

    Configuration de Secure Boot

    Pour configurer Secure Boot j’ai également suivi les conseils du même article du blog Md at debian.org .

    L’utilisation de l’outil sbctl permet de configurer Secure Boot sans installer GRUB , mais, comme cet outil ne se trouve pour l’instant pas dans Debian , il faut le télécharger et l’installer à la main.

    Je documente ici comment je l’ai fait, mais si c’était à refaire, je pense que j’essaierais d’installer quand même l’outil shim prévu par Debian même s’il installe GRUB en trop. Je ne sais pas si ça peut fonctionner, c’est à essayer.

    sbctl est un outil crée en go , il est donc possible de récupérer le binaire pré-compilé et distribué par le projet. J’utilise une version amd64 de Linux , j’ai donc procédé ainsi pour l’ajouter à mon système 4 :

    $ sudo apt install curl # je n’avais pas encore installé curl
    $ curl -L -O 'https://github.com/Foxboron/sbctl/releases/download/0.14/sbctl-0.14-linux-amd64.tar.gz'
    $ tar xf sbctl-0.14-linux-amd64.tar.gz
    $ sudo mv sbctl/sbctl /usr/local/sbin/
    $ sudo sbctl status
    Installed:      ✘ sbctl is not installed
    Setup Mode: ✘ Enabled
    Secure Boot:    ✘ Disabled
    Vendor Keys:    none

    La sortie de la dernière commande explique que Secure Boot est bien en mode configuration ( Setup Mode: Enabled ) et qu’il est désactivé. Si ce n’est pas le cas, il faut redémarrer dans l’ UEFI et activer la gestion des clés.

    Je crée ma clé personnelle ( propriétaire ) pour la machine, elle sera à ajouter comme clé de confiance dans l’ UEFI :

    $ sbctl create-keys
    Created Owner UUID e15b9fe0-6bdd-421d-8f4f-f582257a8f14
    Creating secure boot keys...✔
    Secure boot keys created!
    $ sbctl status
    Installed:      ✔ sbctl is installed
    Owner GUID: e15b9fe0-6bdd-421d-8f4f-f582257a8f14
    Setup Mode: ✘ Enabled
    Secure Boot:    ✘ Disabled
    Vendor Keys:    none

    Pour ajouter cette nouvelle clé dans l’ UEFI , j’ai choisi d’utiliser l’option --microsoft pour ajouter aussi les clés de Microsoft , car je vais installer Windows également sur le disque :

    $ sbctl enroll-keys --microsoft
    Enrolling keys to EFI variables...
    With vendor keys from microsoft...✔
    Enrolled keys to the EFI variables!
    root@debian:/# sbctl status
    Installed:      ✔ sbctl is installed
    Owner GUID: e15b9fe0-6bdd-421d-8f4f-f582257a8f14
    Setup Mode: ✔ Disabled
    Secure Boot:    ✘ Disabled
    Vendor Keys:    microsoft

    La configuration des clés est terminée dans l’ UEFI . Il faut maintenant utiliser les clés pour signer les fichiers de démarrage actuellement installés :

    $ for file in /boot/efi/*/*/linux /boot/efi/EFI/*/*.efi; do sbctl sign -s $file; done
    ✔ Signed /boot/efi/9ee8db2eeacf4118a2d7f194bfbc3e43/6.1.0-25-amd64/linux
    ✔ Signed /boot/efi/EFI/systemd/systemd-bootx64.efi

    Pour le faire à chaque mise à jour de noyau, il faut ajouter le script 91-sbctl.install (il faut faire attention à récupérer le même numéro de version que le binaire sbctl) dans le dossier /etc/kernel/install.d et le rendre exécutable ( chmod +x 91-sbctl.install ).

    J’ai eu besoin de personnaliser ce script pour utiliser le chemin complet de l’installation du binaire /usr/local/sbin/sbctl à la place de juste sbctl pour m’assurer que le script fonctionne avec tous les environnements utilisateurs (notamment _apt ). Pour faire ça, j’ai ajouté en début de script une ligne qui crée l’alias nécessaire :

    #!/bin/sh
    #  This file is part of sbctl.
    
    # Adrien: set full path for sbctl so it works within apt user environment
    alias sbctl=/usr/local/sbin/sbctl
    
    # reste du script

    Enfin pour s’assurer que le script est bien exécuté lors de la mise à jour du noyau, je force la mise à jour des images initramfs :

    $ sudo update-initramfs -k all -u
    update-initramfs: Generating /boot/initrd.img-6.1.0-25-amd64
    Updating kernel version 6.1.0-25-amd64 in systemd-boot...
    sbctl: Signing kernel /boot/efi/9ee8db2eeacf4118a2d7f194bfbc3e43/6.1.0-25-amd64/linux
    $ sudo sbctl list-files
    /boot/efi/9ee8db2eeacf4118a2d7f194bfbc3e43/6.1.0-25-amd64/linux
    Signed:     ✔ Signed
    
    /boot/efi/EFI/systemd/systemd-bootx64.efi
    Signed:     ✔ Signed

    Quand des mises à jour de systemd-boot sont proposées par Debian , il faut également signer le fichier que le paquet installe dans /boot/efi .

    Je ne sais pas comment faire pour déclencher automatiquement une ligne de commande lors de la mise à jour d’un paquet. Par contre, avec systemd , il est assez facile de demander au système de surveiller les modifications sur un fichier et d’exécuter un service à ce moment-là.

    J’ai créé le service /etc/systemd/system/systemd-boot-sign.service avec la commande pour signer le binaire de systemd-boot :

    [Unit]
    Description=Sign the systemd-boot binary in ESP partition
    
    [Service]
    ExecStart=/usr/local/sbin/sbctl sign -s /boot/efi/EFI/systemd/systemd-bootx64.efi

    Pour déclencher ce service automatiquement, j’ai créé l’unité /etc/systemd/system/systemd-boot-sign.path avec :

    [Unit]
    Description=On update of systemd-boot binary in ESP partition, sign it
    
    [Path]
    PathModified=/boot/efi/EFI/systemd/systemd-bootx64.efi
    
    [Install]
    WantedBy=default.target

    Enfin, il faut demander à systemd d’activer et démarrer cette dernière unité :

    $ sudo systemctl daemon-reload
    $ sudo systemctl enable --now systemd-boot-sign.path

    Conclusion

    La démarche était longue, mais le résultat est vraiment bien: ma machine démarre de manière sécurisée une Debian stable installée par mes soins avec Secure Boot et une interface graphique pour entrer la phrase de déchiffrement.

    J’ai écrit cet article depuis l’historique des commandes entrées dans mon terminal pendant l’installation de ma machine. Il est probable que j’ai oublié certains détails, mais l’essentiel devrait être là.


    1. Le noyau Linux au format « initramfs » (ou « image initramfs ») contient une petite copie du noyau Linux à charger en mémoire vive pour démarrer le noyau complet et la distribution.

    2. Le fonctionnement de GRUB est bien plus complexe, car il n’installe pas les noyaux Linux dans la partition de démarrage. Ceci est dû à sa compatibilité avec les anciennes tables de partition de type bios qui ne disposait que d’un espace très réduit pour les démarreurs (l’espace MBR en début de disque).

    3. Il faut bien faire attention que l’application de Secure Boot est seulement de permettre au firmware de n’exécuter que les systèmes d’exploitations choisis par le propriétaire de la machine. Par exemple, si quelqu’un s’empare du disque dur et le démarre sur une autre machine, Linux va démarrer sans remarquer qu’il n’est plus dans la machine prévue et il va permettre à l’attaquant d’essayer de déchiffrer le disque dur. Dans ce cas, Secure Boot est inutile, car il ne sécurise que le démarrage que pour une machine.
      Si l’on voulait que Linux refuse de démarrer quand le matériel change, il faudrait appliquer un système de vérification du démarrage : chaque composant logiciel doit vérifier que l’état du système est celui attendu et mettre à jour l’état actuel pour indiquer qu’il s’est bien exécuté. Le principe est de créer une chaîne de confiance qui nécessite une puce TPM pour sauver l’état de la chaîne entre chaque démarrage.
      C’est une présentation sommaire de ce que j’ai compris en lisant l’article Roots of Trust are difficult de Matthew Garrett qui présente le système de vérification de démarrage prévu par le Trusted Computing Group et pointe les difficultés pour le mettre en place.

    4. J’ai fait cette installation en juillet 2024, la version la plus récente de sbctl était celle documentée dans cet article (0.14). Pendant les relectures, j’ai essayé d’utiliser la version 0.15.4 pour refaire les procédures dans une machine virtuelle, mais ce bug m’a empêché d’utiliser la version 0.15.4 de sbctl , j’ai donc préféré garder les références à la version 0.14 pour cet article.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • wifi_tethering open_in_new

      This post is public

      linuxfr.org /users/trim/journaux/installation-personnalisee-de-debian-avec-luks-v2-volumes-btrfs-systemd-boot-et-secure-boot

    • chevron_right

      Traduire un flux rss à la volée

      news.movim.eu / LinuxFRJournaux • 18 September, 2024 • 3 minutes

    Bonjour à tous,

    Dans le cadre de ma veille technologique, je suis abonné à plusieurs flux RSS anglophones. Bien que la lecture en anglais ne me pose pas de problème majeur, elle nécessite néanmoins une concentration accrue, ce qui demande plus d'énergie et de temps.

    Un flux RSS étant une liste d'articles parmi lesquels on sélectionne ceux qui nous intéressent, la navigation est rapide en français dans mon agrégateur (FreshRSS). En revanche, le processus est plus lent pour les contenus en anglais.

    J'ai donc eu l'idée de créer une version traduite en français de ces flux. La solution s'est avérée étonnamment simple à mettre en place. Les prérequis sont :
    1. Un système Linux (dans un Docker, un VPS ou autre)
    2. Python 3.x
    3. Un endpoint d'inférence (Ollama, Groq, Together AI, OpenAI, etc.)
    4. Un serveur web basique (Apache suffit)
    5. Le script que je vais vous présenter

    Dans mon cas, Linux tourne sur la même machine physique que mon instance FreshRSS (un Proxmox hébergé chez moi qui gère plusieurs services). Pour l'inférence, j'utilise habituellement une instance d'Ollama sur une machine Linux puissante équipée de deux cartes NVIDIA Quadro Pro 5000. Cependant, cette configuration étant énergivore, je ne l'active qu'en cas de besoin. Pour ce script, j'ai donc opté pour l'API compatible OpenAI de Groq, qui est gratuite et fonctionne bien avec le modèle LLaMA 3.1 70B (la version 8B devrait également convenir, moyennant un ajustement du prompt).

    Voici le script en question :

    import requests
    import json
    import sys
    
    # Configuration de l'API compatible OpenAI
    API_KEY = 'VOTRE CLE'  # Remplacez par votre clé API OpenAI
    MODEL = 'llama-3.1-70b-versatile'  # Modèle de traduction à utiliser
    #URL = 'https://api.openai.com/v1/chat/completions'
    URL = 'https://api.groq.com/openai/v1/chat/completions'
    
    #fonction de traduction
    def traduire_texte(texte):
        headers = {
            'Content-Type': 'application/json',
            'Authorization': f'Bearer {API_KEY}',
        }
        data = {
            'model': MODEL,
            'messages': [{
                'role': 'user',
                'content': f'Voici un flux rss à traduire en français. Ne traduis pas les balises. Retourne le résultat sous format RSS brut sans formatage Markdown, retourne le texte encodé en utf-8: {texte}'
            }]    
         }
        #print(texte)
        response = requests.post(URL, headers=headers, json=data)
        #print(response.text)
        return response.json()['choices'][0]['message']['content']
    
    
    #fonction qui écrit le fichier rss
    def ecrire_fichier_rss(articles, nom_fichier):
        with open(nom_fichier, 'w', encoding='utf-8') as f:
            f.write(articles)
    
    if __name__ == "__main__":
        if len(sys.argv) != 3:
            print("Usage: python script.py <url_flux_rss> <nom_fichier_sortie>")
            sys.exit(1)
    
        url_flux = sys.argv[1]
        nom_fichier_sortie = sys.argv[2]
        # Faire une requête GET à l'URL spécifiée
        response = requests.get(url_flux)
    
        # Vérifier si la requête a réussi
        if response.status_code == 200:
            # Charger le contenu de la page dans une variable
            page_content = response.text
            print("Contenu de la page chargé avec succès.")
        else:
            print(f"Erreur lors du chargement de la page : {response.status_code}")
    
    
        articles_traduit = traduire_texte(page_content)
        ecrire_fichier_rss(articles_traduit, nom_fichier_sortie)

    voici ma ligne de crontab pour l'appeler:

    10 * * * * /usr/bin/python3 /opt/scripts/traductionrss.py https://techcrunch.com/feed /home/docker-data/apache/techcrunch.rss 2>&1
    Une fois le script en place, il suffit de s'abonner à l'URL http://192.168.2.202:8880/techcrunch.rss dans FreshRSS, par exemple.

    Ce script, bien que rudimentaire, me rend déjà un grand service. Je surveillerai son efficacité et sa fiabilité à l'usage, et l'améliorerai si nécessaire.

    N'hésitez pas à partager vos retours ou suggestions d'amélioration !

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • wifi_tethering open_in_new

      This post is public

      linuxfr.org /users/jobpilot/journaux/traduire-un-flux-rss-a-la-volee

    • chevron_right

      Firefox mis en danger par les déboires de Google.

      news.movim.eu / LinuxFRJournaux • 8 August, 2024 • 1 minute

    "Mozilla pourrait être une victime collatérale de la défaite de Google aux États-Unis. La position dominante du géant de la recherche pourrait couper la fondation de 86% de ses revenus."
    […] Si Google n’a plus le droit de continuer de tels accords en raison de sa position dominante, Mozilla pourrait perdre l’accès à une part très importante de ses revenus.

    J'en parlais dans les commentaires d'un autre journal au sujet de uBlock0 vs Chrome : Si la MOFO coule, est-ce qu'il n'est pas temps de sortir un beau navigateur tout neuf sur une base Webkit ? D'autres attendent https://ladybird.org/ mais Webkit est déjà là. Il faudrait un navigateur avec des conteneurs, sessions séparées par onglet, gestion avancée des onglets (stacking, disposition verticale, …), bloqueur de pubs efficace ( pas gagné chez Safari ),…
    Ou peut-être que Mozilla retournera à ses premiers amours, une petite team proche des geeks et centrée sur les standards et la vie privée plutôt que sur «the next big thing» (l'IA après le Metaverse ou l'OS pour téléphones…)
    Autre solution pas idéale : tout le monde chez Blink et les développeurs s'arrangent pour faire un navigateur respecteux par dessus (à la Brave sans la blockchain …)

    Bref, je balance des trucs en vrac, je ne sais pas trop où l'on va ni où l'on devrait aller mais ça me saoule de devoir jongler entre les navigateurs parce que tel site a décidé qu'il était Chrome-only. Et de voir Mozilla se perdre dans je ne sais quoi.


    Journal posté depuis Chromium parce que j'avais une visio Teams (ouille) et que ça ne marche pas dans Firefox (Ouillouillouille)

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • wifi_tethering open_in_new

      This post is public

      linuxfr.org /users/faya/journaux/firefox-mis-en-danger-par-les-deboires-de-google

    • chevron_right

      hacker sa pompe de relevage !

      news.movim.eu / LinuxFRJournaux • 5 July, 2024 • 12 minutes

    Sommaire

    Avec un titre accrocheur et sachant que votre curiosité est aussi grande que votre intérêt pour le terme "hacker", je vous présente ce petit journal reprenant les bases techniques en ces temps clivants. Rien d'extravagant, juste l'essentiel.

    Station de relevage KSB Evamatic

    Ce journal couvrira légèrement les aspects électriques, mécaniques et informatiques d'un projet basé sur un ESP32. c'est fait à l'arrache car ce n'est pas un projet de longue date, c'est une panne imprévue qui a lancé le projet. Le code n'est pas écrit dans les règle de l'art, voir pas du tout je ne pense pas que vous apprendrez qqchoses avec celui ici, à mon grand regret

    A. Présentation

    Une pompe de relevage est une pompe située dans un réservoir attenant à une maison (principalement) qui permet d'évacuer les eaux usées dans un collecteur situé plus haut que la maison.

    C'est assez courant, souvent oublié, et cela tombe régulièrement en panne si la maintenance n'est pas effectuée. pas tous les jours mais plutôt en années

    J'en ai une pour ma maison avec un réservoir de 100 litres. c'est plutôt petit comme réservoir mais suffisant, par contre c'est très chère :O

    B. Premier problème : commande marche/arret

    Il y a un flotteur de déclenchement pour le niveau haut et pour le niveau bas, constitué d'une bille en acier qui fait contact selon la position du flotteur. Comme le montre ce petit schéma fait sous xfig, avec ce principe, la capacité totale de la cuve n'est pas utilisée, elle ne se vide jamais complètement et ne se remplit jamais complètement. En rouge sur la 1ere photo :

    1. Problème de gaz stagnant dans la cuve, attaquant les éléments comme le corps de pompe, les câbles et toutes les autres parties métalliques.
    2. Problème de boue stagnant au fond de la cuve, favorisant la création de gaz (H2S).
    3. La fréquence de marche/arrêt du moteur est plus élevée, entraînant une usure prématurée de la pompe.
    4. Chez moi, la pompe ne vidait que 30 litres à chaque fois. une vaste blague !

    img

    C. Première panne et 1ere solution Arduino

    Suite à une panne et un flotteur défectueux, j'ai dû rapidement (de suite!) lancer le projet sur un Arduino, finalisé dans le weekend . Pour régler ce problème de fréquence de fonctionnement, j'ai placé un flotteur en haut de la cuve qui déclenche la pompe une fois la cuve pleine, et je coupe le moteur au bout de 38 secondes pour éviter de devoir détecter le niveau bas. le tuyau en acier de la pompe était rongé par l'h2s, le câble d’alimentation était aussi détérioré on voyait le cuivre des câbles, pourtant prévu pour être très résistant, h07rnf https://www.nexans.fr/fr/products/Building/Industrial/Flexibles-cables/TITANEX%C2%AE---TITANEX%C2%AE-H07RN-F.html
    ou en partie.

    J'ai ajouter par dessus chaque câble au contact de l'H2S dans la cuve de la gaine thermorétractable sur toute la longueur, gaines thermo en polyoléfine+colle, et d'après les recherches sur internet, cela résiste plutôt bien aux attaque chimiques corrosives.

    J'utilise un Arduino, avec un Raspberry Pi A+. L'Arduino gère uniquement le déclenchement de la pompe et son arrêt, avec les sécurités suivantes :

    1. Le relais de sécurité de surveillance de courant haut et bas ne se déclenche pas.
    2. Le flotteur n'est pas bloqué en position haute.
    3. Si trop de sécurités se déclenchent de manière régulière, le moteur est coupé de façon définitive, un peu comme un fail2ban.

    le code mais attention au yeux, vraiment :

    https://github.com/ygueparm/lift_pump/blob/main/asservissementpompe.ino

    img

    on peut utiliser un relais Harmony RM35-J RM35JA32MW pour le contrôle de courant. On règle le courant tolérable le plus bas et le plus haut, en dehors desquels un contact se fait . J'utilise un modèle pas chère qui fonctionne correctement
    GEYA GRI8-03/04 (15€ au lieu de 140€)

    Pour commander mon moteur de 4A (et 8A par la suite avec 2 moteur), j'utilise un relais de commande jour nuit de ballon d'eau chaude de 25A Finder.

    Le Raspberry Pi est utilisé uniquement pour m'envoyer un mail à chaque démarrage avec le temps de fonctionnement réel de la pompe. La difficulté réside dans le fait que cela doit fonctionner de manière fiable en production, car il n'est pas agréable de travailler avec une cuve d'eaux usées qui ne se vide pas.

    Ça fonctionne parfaitement bien et remplit son rôle. J'ai eu des cheveux qui ont bloqué l'arbre de pompe, ce qui a coupé la pompe, envoyé un mail, et j'ai pu intervenir. Cela reste toujours satisfaisant, sans avoir à racheter une pompe (1000€) qui aurait griller a force de forcer sans réussir a vider la cuve.

    Lors de ce dépannage, j'ai constaté que la cuve était quand même pleine de boue sur environ 15 cm et que les odeurs ne diminuaient pas, la cuve restait sale. Petit échec sur ce point malgré l'utilisation complète de la capacité de la cuve. Mauvais diagnostique de ma part et mauvaise solution pour le résoudre /o.

    code rpi pi pour envoyer les mail avec le temps de fonctionnement de la pompe en utilisant msmtp https://marlam.de/msmtp/ :

    #!/bin/bash
    # controle du fonctionnement de la pompe de relevage
    # initialisation port gpio
    echo "4" > /sys/class/gpio/export 2>&1
    echo "in" > /sys/class/gpio/gpio4/direction 2>&1
    
    echo "initialisation port IO"
    echo "demarrage surveillance"
    #envoi mail initialisation
    cat mail1 | msmtp login@domaine
    
    while true
      do j=$((`cat /sys/class/gpio/gpio4/value`))  ;  
         i=$((j))
    #debut test de la valeur du relais si 0 tourne en boucle
            while [ $i = 0 ]
     do i=$((`cat /sys/class/gpio/gpio4/value`))  ;  
            done
    
    #si la valeur change j'imprime la date dans un nouveau mail et dans le fichier log
    echo "Subject : pompe relevage" > mail
     printf -v DateDebut '%(%A %d %B à %H:%M:%S)T' -1  
     echo "démarrage le $DateDebut" >> log.txt
     printf -v start '%(%s)T' -1
    #tant que la valeur reste a 1 j'attend
      while [ $i = 1 ]
     do j=$((`cat /sys/class/gpio/gpio4/value`))  ;
     i=$((j))
     done
    
    #on ecrit le temps total de fonctionnement
    printf -v DateFin '%(%A %d %B à %H:%M:%S)T' -1  
    printf -v stop '%(%s)T' -1
    duree=$(($stop-$start))
    printf -v duree '%dh:%dm:%ds\n' $(($duree/3600)) $(($duree%3600/60)) $(($duree%60))
    echo -e "$duree\n" >> log.txt
    echo -e "temps de fonctionnement\n $duree\n" >> mail  
     echo -e "           "
    #la on envoie le mail 
    cat mail | sudo msmtp nom@domaine
    done

    étrangement je n'ai pas réussi a ce qu'il se lance et fonctionne au démarrage, je me connecte sur le rpi pi et lance un screen en root pour lancer le script puis me détacher, simple efficace. Comme je vais passer a un esp32 je n'ai pas approfondi le truc, j'ai des enfants et une femme a nourrir le week end et je sentais un peu de pression de ce coté au vue du temps passé :), le manager était pas trop chaud que je continue sur cette affaire.

    Comme le montre la photo, faire les choses à l'arrache c'est bien, mais maintenant que tout fonctionne correctement, j'ai décidé de passer à un ESP32 pour simplifier cela et que cela soit plus propre. Enfin je l'espere :)

    D. ESP32

    Donc, je passe à un ESP32, surtout grâce à ChatGPT, qui m'aide à faire l'interface HTML et le serveur HTML. Pour ne pas m'embêter avec les variables et pensant que cela serait plus simple, je prends la stratégie de tout mettre dans un seul fichier .ino (arg ! très mauvaise idée).

    copie d’écran du site internet img , un bouton marche forcé et arrêt forcé, le point gris passe au vert lorsque la pompe fonctionne. la possibilité aussi de régler le temps de fonctionnement de la pompe. afin d’éviter de devoir reprogrammer l'esp32 si on change de pompe et quelle tourne plus vite ou plus lentement

    Le webdesign est un métier que je respecte beaucoup maintenant; actuellement, c'est très moche mais fonctionnel.

    img

    L'ensemble est effectivement plus simple et un peu mieux fini. Je teste le tout pendant 3 mois avant de le passer en production car c'est la merde si ça ne fonctionne pas littéralement. Après 3 mois de test réel sur une maquette, tout marche bien, pouf je le passe en prod. Je me vois lancer une entreprise pour modifier les pompes de relevage de l'ensemble de la région, acheter un utilitaire et devenir riche, merci ESP32 et Arduino !

    j'ai toujours une petite appréhension, car supprimer qqchose qui fonctionne par qqchoses qui devrait fonctionner mieux est toujours délicat, comme je suis mon propre décideur, aucun pb la dessus !

    le code à 60% aidé avec chatgpt n'ayant pas de connaissance sur la partie serveur (attention les yeux)
    https://github.com/ygueparm/lift_pump/blob/main/pompe-serveur.ino

    E. Le drame

    Et là, c'est le drame : l'ESP32 se bloque de temps en temps et ne se relance pas. Entre 1 jour et 3 jours, il se met dans un mode figé et ne commande pas la pompe. J'ai juste connecté la maquette sur la vraie pompe ; avant, c'était sur une pompe de test. En diminuant la fréquence de fonctionnement à 80 MHz de l'esp32, ça ne se bloque plus mais arrive à redémarrer comme un grand tous les 1, 2 ou 3 jours. Je perds l'historique des démarrages car je n'utilise pas de fichier pour les stocker c'est directement dans la mémoire, ça fonctionne et c'est le plus important. Adieu mon business plan. Ça arrive assez souvent, pas mal de personnes ont ce problème de blocage de carte pour d'autre projet. J'ai supprimé la résolution du nom pompe.com dans l'esp32 pour me connecter directement a l'adresse ip, ca a l'air aussi d'aider un peu.

    je mettrais des optocoupleur pour bien séparer les entrée et sortie sur l'esp32, car il n'y a pas de raison qu'a 5 mètres ca fonctionne parfaitement bien et là cela ne fonctionne plus :/

    F. Suppression des boues eau vannes

    Un autre problème qui me paraît important à résoudre est la présence de boue dans la cuve.
    cela a une viscosité comme de la purée, de la boue qui ne se laisse pas entrainer par la pompe. Cela favorise le gaz H2S et C'est un vrai problème : le gaz H2S va détériorer les câbles présents dans la cuve ainsi que le corps de pompe et ce serait bien que cela soit aussi recyclé vu le prix du traitement des eaux que je paye.
    Il existe une solution mécanique avec une bille dans une espece de Y qui bouche le conduit de lavage petit à petit et laisse le conduit d'évacuation au fur et à mesure, mais le prix est dissuasif et plutôt utilisé dans un environnement professionnel. C'est très élégant. c'est une sorte de vanne 3 voies automatique. La solution avec des vannes 3 voies motorisé est aussi beaucoup trop couteuses a cause du diamètre de 63mm, et qui dit moteur dit panne.

    Ayant maintenant 2 pompes de relevage de secours en stock, j'ai placé une pompe en plus dans la cuve, branchée en parallèle de celle qui relève. Je l'ai laissée libre, c'est-à-dire qu'elle est juste posée au fond. Lorsque les pompes démarrent pour vider la cuve, l'une évacue le liquide (avec les morceaux) et l'autre, en aspirant vers le bas et refoulant à l'horizontale, provoque des remous suffisants pour mettre en suspension les boues qui vont être aspirées par la première.

    Ça fonctionne plutôt bien, les 2 pompes sont gérées par le même relais de contrôle et l'ESP32, elles ont donc la protection nécessaire. Gros avantage : si je remplis la cuve avec de l'eau, cela lave la cuve en une fois et je peux travailler dessus sans aucune odeur. Autre effet intéressant : lorsque la cuve est presque vide a 30%, le jet important de la pompe qui tourne à vide fait comme un Kärcher ou un jet d'eau puissant. Les graisses et autres particules collantes sont décrochées de la cuve. On pourrait manger dedans ! j'y ai placé un réducteur de 63mm vers 50 mm pour augmenter la pression du jet et laisser les morceau passer. et ca fait un petit mixer pour tous ce qui est papier, et autres objet solide mais fragile.

    img

    G. Maintenance de la pompe

    C'est peu connu, mais les pompes de relevage ont un réservoir de glycérine entre l'hélice et le moteur pour l'étanchéité de la pompe sur le raccord tournant. Ce réservoir devrait être contrôlé et rempli au moins une fois par an. Il faudrait également nettoyer la cuve au moins une fois par an aux jet d'eau pour limiter les boue.

    https://www.ksb.com/resource/blob/1897120/d3c152c712eb774bacac1db48d4e577e/dow-produkt-2-seiter-fr-data.pdf
    C'est la même pompe que moi, le réservoir de glycérine se trouve dans la partie orangé qui semble vide, il y a une petite vis de remplissage qui n'est pas sur le document. (prix 800€ la pompe qd même ca vaut le coup de faire le plein de glycérine a 5€)

    Bon courage à tous ceux qui en ont une et qui probablement tombera en panne dans les 5 ans ou plus !

    H. Futur

    Apprenant de mes erreurs, en ce moment je redéveloppe de zéro, tranquillement, pour avoir un peu plus de respect pour le code, avoir des fichiers entête et des fichiers dédiés aux fonctions, et un peu de factorisation de tous cela.

    Utiliser un CSS, ne plus placer en RAM le code HTML, bref, faire quelque chose de plus facile à maintenir et plus propre. Forcément, c'est plus long pour mes faibles capacité.

    mais ca traine un peu donc je poste en l'etat ce que j'ai deja fait.

    Et si jamais la nouvelle version plus propre ne plante plus l'ESP32, je me lancerai dans l'artisanat pour corriger et aider les milliers de pompes de relevage qui n'attendent que moi. €€€€
    une gestion de pompe c'est dans les 500€, un esp32 5€, voyez vous la licorne qui pointe le bout de son nez ;) ?

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • wifi_tethering open_in_new

      This post is public

      linuxfr.org /users/chocolatineflying/journaux/hacker-sa-pompe-de-relevage

    • chevron_right

      Dix ans de Degooglisons : la grosse mise à jour

      news.movim.eu / LinuxFRJournaux • 13 June, 2024 • 3 minutes

    Souvenez-vous il y a (déjà) dix ans, Framasoft lançait son grand projet Degooglisons Internet. Aujourd'hui, dans un long article , Framasoft publie un état des lieux, propose de nouveaux services et renforce ses actions.

    Dégafamiser

    Le projet Degooglisons et Le collectif des CHATONS (Collectif des hébergeurs alternatifs transparents ouverts neutres et solidaires) ont-t-il cassé les GAFAM (and co.). Non, bien entendu. Ce n'était pas cela qui était en jeu. Bien plutôt l'idée qu'il est possible de reconstruire des chaînes de confiance entre les utilisateurs et les fournisseurs de service. Et de ce point de vue, grâce aux efforts des membres de ce collectif, c'est un succès.

    De son côté, Framasoft n'a pas chômé. Petit à petit, tout en maintenant ses services (de plus en plus utilisés) et en soutenant une charge de travail importante, Framasoft s'est positionnée vis-à-vis de l'économie solidaire et l'éducation populaire. Parce que les enjeux ne sont pas seulement dans les usages, mais aussi dans la numérisation de la vie sociale et la manière dont cela change assez radicalement nos rapports sociaux.

    Numérique et société

    Réfléchir sur le rapport entre les techniques numériques et la société implique de ne pas se cantonner à l'affichage de « solutions » numériques, mais fournir des services en réfléchissant à la manière dont ils peuvent influencer le cours des transformations sociales (là où d'autres s'enrichissent en prétendant « changer le monde »).

    Que constatons-nous ? Et bien par exemple que de nombreux collectifs militants ou associations diverses sont littéralement noyautés par les services en ligne proposés par les multinationales du numérique. Le problème est double : non seulement il y a un risque évident de se voir museler la liberté d'expression et d'association par la surveillance et le contrôle qu'impliquent de tels usages, mais aussi un paradoxe, celui d'utiliser des services numériques aux antipodes des valeurs partagées par ces mêmes collectifs et associations.

    Alors que faire ? Accompagner, oui, mais aussi réfléchir davantage à ce que nous pouvons offrir. C'est ainsi que nous avons lancé Frama.space , un espace collaboratif (basé sur Nextcloud) dédié aux collectifs et associations militants. Nous avons aussi donné un coup de fouet aux canaux de communication avec Framagroupes qu consolide Framalistes et rend plus pérenne le service. Nous avons aussi continué à développer des services comme Mobizon ou Peertube … et j'en passe (je ne cite pas les mises à jour et les migrations vers les nouvelles version).

    Mais ce n'est pas fini, la lutte continue

    … et nous vous proposons de lutter avec nous en nous soutenant et en faisant connaître autour de vous nos services.

    En effet, Qu'est-ce qui mobilise et permet de s'organiser ? Nous sommes loin d'avoir fait le tour de la question mais nous avons déjà identifié plusieurs services qui seront utiles :

    • Framapétitions qui va être encore amélioré ces prochains mois ;
    • i Hate Money : on peut haïr l'argent, mais c'est le nerf de la guerre, alors plutôt que de dépendre de Tricount et ses pisteurs, autant que les collectifs utilisent un logiciel vraiment libre. Pour donner le choix, il y a aussi Spliit , une question de préférences ;
    • Draw.io et Excalidraw : parce que s'organiser, cela passe aussi par des schémas et des diagrammes,
    • Signature PDF et Stirling PDF : pour manipuler des PDF assez simplement sans avoir à dépendre d'Adobe ni à sortir des logiciels compliqués ;
    • Liberaform : pour créer des formulaires et aussi parce que Framaform est arrivé aux bout de ses capacités (et nécessiterait une mise à jour trop lourde, autant ne pas réinventer la poudre) ;
    • Et pour aller plus loin nous avons monté Framalab , pour expérimenter des logiciels, considérer leurs potentiels, y contribuer (surtout!) et les fournir aux utilisateurs.

    D'autres projets sont encore en phase d'élaboration : ils sont sortis des cartons, et on commence à les monter. Pour en apprendre davantage, je vous invite à lire le grand article paru ce jour sur le Framablog « Dégooglisons Internet fête ses 10 ans : mises à jour et nouveaux services ».

    Et pour tout cela, merci de nous soutenir , même modestement ! C'est important pour nous, pas uniquement pour le soutien financier qui fait vivre Framasoft, mais aussi parce que c'est notre moyen d'évaluer et d'orienter nos actions, avec vous.

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    • wifi_tethering open_in_new

      This post is public

      linuxfr.org /users/framatophe-0/journaux/dix-ans-de-degooglisons-la-grosse-mise-a-jour