Voilà 10 ans que je voyage avec mon informatique embarquée. Passionné de veille technologique, j’ai testé de nombreux logiciels pour les besoins du bord : navigation, gestion des données, multimédia, etc. Voici un petit résumé de mes outils préférés en 2023.
La configuration informatique du bord
Mon réseau informatique est constitué de serveurs et d’ordinateurs portable exclusivement sous Linux. Comme il faut optimiser la consommation électrique à bord, plutôt qu’un gros serveur, j’ai opté pour plusieurs petits boîtiers de type Raspberry PI et Odroid. Enfin, les tablettes et smartphones de l’équipage tournent sous Android.
Organisation et bureautique
- Après avoir essayé de nombreux logiciels de gestion de tâches, je me suis arrêté sur taskwarrior, un outil très complet en ligne de commande. Les projets et les tags sont très utiles pour organiser les entrées. On peut aussi gérer priorités, récurrences et dates, entre autre. Le moteur de recherche de taskwarrior est son point fort, un petit
task /pont/
affiche toutes les tâches en cours qui ont « pont » dans leur description. On peut l’utiliser en ligne de commande et via une interface web. Il a cependant deux défauts : l’impossibilité de synchroniser les tâches au format ICS et l’absence de champ « recherche » sur les interfaces web. - On ne présente plus la suite libreoffice, qu’on utilise pour pour nos documents. Libreoffice Draw est également très efficace pour faire des petits dessins et schémas rapidement.
- Pour des petits textes, un logiciel très léger de type mousepad est parfait, Typora pour les documents markdown, vim en ligne de commandes, evince pour visualiser des documents PDF et pandoc pour les générer.
Gestion des données et communication
- Je l’avais délaissé un moment à cause de ses problèmes de performances, mais Nextcloud est sans conteste le cloud personnel qu’il faut avoir. Doté de nombreux plugins, d’une synchronisation efficace et de clients pour de nombreux périphériques, c’est l’idéal pour les sauvegardes et la mutualisation des données : fichiers, agendas, photos et vidéos, etc. On peut l’installer chez soi (sur un serveur pas trop lent et avec des optimisations) et avoir une instance chez de nombreux hébergeurs.
- Pour la communication instantanée, j’ai testé de nombreuses solutions basées sur le protocole XMPP qui ne m’ont pas plu, soit parce que les clients sont trop instables, soit parce que l’absence de stockage central empêche d’avoir l’historique des discussions sur tous les périphériques. Aujourd’hui je trouve que Mattermost est une très bonne solution, en particulier une excellente alternative à Slack. On utilise aussi Signal, Telegram et l’affreux Whatsapp, parce qu’on a pas le choix. Pour finir, je n’ai pas encore essayé Matrix mais ça ne devrait pas tarder.
- Depuis des années, ma base de connaissance est basée sur TiddlyWiki, un carnet de note numérique non linéaire qui permet d’organiser efficacement l’information.
- Quelques outils très utiles pour gérer les fichiers : rmlint pour nettoyer et dédoublonner, rsync pour synchroniser, mon script « rename-simple » pour simplifier les noms de fichier, et les nombreuses commandes linux pour la gestion de fichiers et de données.
Photo, vidéo, multimédia
- Pour visualiser mes photos, j’utilise souvent geeqie, un programme simple, léger, qui précharge les photos pour plus de fluidité.
- Pour la retouche, voilà des années que j’utilise gimp, une petite merveille, qui permet de jouer sur les teintes, les demi-teintes, les courbes, la netteté via de nombreux filtres. Mais aussi recadrer, retourner, rectifier. Passer de photoshop a gimp prendra un peu de temps mais ça en vaut la peine.
- Depuis peu je me suis mis sur Inkscape, un logiciel de dessin vectoriel génial. Je l’utilise pour mes schémas, plaquettes, productions PAO et dessins vectoriels. Citons aussi Krita, un logiciel de peinture numérique idéal pour produire des BDs et dessins de type « dessin animé »… je l’utilise un peu moins mais certains passionnés produisent des choses incroyables avec ce logiciel.
- Côté vidéo, j’utilisais Cinelerra au début (et il n’est pas impossible que j’y revienne depuis que son développement a repris). Puis je me suis mis à kdenlive depuis qu’il s’est stabilisé : un logiciel de production vidéo simple et efficace qui dispose de tout ce qu’il faut pour produire des vidéos de qualité. Enfin, pour la lecture et le streaming des vidéos, rien de mieux que VLC.
- Côté musique, je suis un fan inconditionnel de mpd, un serveur de gestion et lecture de fichiers audio qui dispose de nombreuses interfaces. Citons par exemple gmpc pour linux, M.A.P.L. pour Android et mon favori : ncmpcpp, interface en ligne de commande avec de nombreux raccourcis clavier. Grâce à mpd, on peut gérer la musique, les playlists, le volume et les sorties audio depuis n’importe quel périphérique.
- Pour finir, je m’amuse de temps en temps à produire des musiques avec lmms. Il est un peu plus limité que les logiciels
craquéspropriétaires concurrents mais permet des productions musicales plus que correctes.
Navigation, météo
- On pourrait faire un article entier sur la navigation de bord. Depuis que je navigue avec Arthur, je me suis mis à OpenPlotter, une distribution Linux dédiée à la navigation de bord qui propose de nombreux logiciels et s’installe sur un Raspberry PI. J’ai été conquis par le protocole SignalK, une sorte de format intermédiaire qui permet, entre autre, de lire et produire n’importe quel format de donnée NMEA, Seatalk, IoT. L’interface de gestion SignalK permet de gérer les connecteurs, les données, les filtres, etc. et certains logiciels comme OpenCPN sont compatibles avec SignalK.
- Pour la navigation, je suis fidèle à OpenCPN, un logiciel simple et efficace malgré quelques petits défauts. Il a l’avantage de disposer d’un plugin pour mon pilote qui permet entre autre de faire un suivi de route. Il lit également les fichiers satellite .kap que je produis et utilise pour les zones peu ou pas cartographiées.
- Un service gpsd central permet d’utiliser l’antenne GPS du bord pour l’ensemble des périphériques et aussi de synchroniser les horloges des ordinateurs avec le GPS, ce qui est pratique en mer sans internet.
- J’ai définitivement adopté PyPilot, un pilote automatique 10 fois mois cher que les concurrents propriétaires et tout aussi efficace. Grâce au dysfonctionnement de mon ancien pilote qui m’a obligé à trouver la solution PyPilot.
- Grâce à SignalK :
- Je peux gérer mes données de navigation et de consommation électrique dans une base de données « time series » prometheus et de beaux graphs Grafana.
- Pour le journal de bord, j’utilise le plugin « logbook » de SignalK qui permet d’ajouter des entrées manuellement ou automatiquement en enregistrant automatiquement des données (position, état des capteurs, etc.). Les données du journal sont synchronisées avec un serveur externe dès qu’une connexion internet est disponible pour cela.
- Enfin, j’ai aussi mis en place un petit service sur l’ordinateur de bord qui enregistre notre trace en permanence. Aucune action n’est nécessaire si ce n’est s’assurer que l’ordinateur reste allumé.
- Citons aussi XyGrib pour les prévisions météo et QtVlm pour le routage.
Un peu de technique : le réseau du bord
- Qui dit plusieurs ordinateurs dit réseau. Et qui dit réseau dit communication entre les périphériques, partage d’internet, politique de sécurité, etc. Voici en gros la composition du réseau d’Arthur :
- L’ordinateur de bord, un OdroidN2+, reste allumé en permanence et gère le réseau local, le partage d’internet, la sécurité, la carto, l’enregistrement de la trace, la musique, les backups et plein d’autres services dont on a régulièrement besoin.
- Le serveur OpenPlotter, un Raspberry PI, est dédié au pilote et reste allumé en permanence. Il gère aussi le démon GPSD, le serveur SignalK et les données des capteurs, car un accès direct a ces informations permet au pilote d’être plus réactif.
- Le serveur Cloud, un OdroidC2, donne accès aux fichiers du cloud Nextcloud (médias, fichiers synchronisés, calendriers…) et aux outils de communication (Mattermost), pour les membres du bords mais aussi pour les amis de flottille. Souvent allumé, ce serveur secondaire peut être éteint en navigation.
- D’autres serveur Odroid et RPI servent également de bac à sable et de nœuds pour mes tests de logiciels et autres clusters.
- Un hébergement externe est utilisé pour nos sauvegardes importantes et nos sites arthur-expeditions.com et ma-planete.info.
- Un serveur Tinkerboard externe hébergé chez un membre de ma famille enregistre notre trace et le journal de bord régulièrement.
- Les périphériques du bord sont composés d’ordinateurs sous Linux et de smartphones et tablettes sous Android, en général assez vieux et de performance moyenne afin de favoriser la réutilisation et réduire la consommation d’énergie.
- Pour la gestion du réseau, j’utilise des outils linux classiques : dnsmasq, iptables, hostapd, les commandes net-tools et de gestion du wifi entre autre.
Distributions Linux
- Xubuntu est mon système de prédilection depuis de nombreuses années. Il est léger, optimisé pour les performances et la productivité. Il y a cependant deux raisons qui font que je commence à le bouder :
- Le système de releases nécessite des mises à jour contraignantes pour une configuration dotée de nombreux patchs et dépôts de données tiers comme les miennes. Parfois ces opérations rendent le système instable, nécessitant une réinstallation complète.
- Enfin, plus récemment le système informe l’utilisateur à chaque upgrade qu’avec « Ubuntu Pro » il aurait accès à de nombreuses mises à jour de sécurité supplémentaire… un petit pas vers la récupération forcée des utilisateurs de l’open-source par le monde « propriétaire ». L’accumulation de petits pas faisant les grands bouleversements, « Ubuntu Pro » prendra discrètement la main sur « Ubuntu », rendra l’utilisation de ce dernier obsolète en déplaçant de plus en plus de paquets dans sa mise à jour propriétaire, contraindra progressivement les conditions de son accès gratuit pour avoir de plus en plus d’utilisateurs payants. Non merci.
- MX Linux est certainement l’alternative à privilégier pour les utilisateurs de Xubuntu. Depuis plusieurs années ce système a le vent en poupe. On migrera certainement tous nos Xubuntu LTS vers du MX.
- Arch Linux est maintenant le système d’exploitation privilégié de nos serveurs ARM, en particulier les Odroids qui étaient jusqu’à présent limités à un Linux Mint opéré par le monde asiatique. Ses avantages sont d’être compatible avec tous les petits serveurs du bord et d’avoir un système de mise à jour « rolling » qui ne nécessite pas de gros upgrade dangereux. Le dépôt de logiciels d’Arch propose des versions très récentes, ce qui est parfait pour la veille mais augmente les risques d’instabilité.
- Enfin, Debian est toujours une très bonne alternative en particulier pour les serveurs. Un bon choix pour les systèmes qui doivent privilégier la stabilité, quitte à disposer de logiciels moins récents.
Idées pour l’avenir
- Arthur aurait besoin d’un bon routeur matériel pour le partage de la connexion GSM (avec une antenne extérieur) et la prise en charge native de services (dhcp, firewall, ntp, gnss secondaire, qualité de service, etc.) qui pour le moment sont gérés par l’ordinateur de bord.
- Le journal de bord électronique actuel comporte 2 petits défauts : comme il est lié à l’authentification SignalK, il me demande mon login / mot de passe régulièrement, ce qui est contraignant quand on est pressé. Enfin, il n’est pas très configurable et son interface de saisie pourrait être améliorée pour plus d’efficacité et de rapidité. C’est pourquoi je projette de créer ma propre petite application « journal de bord » permettant de saisir des entrées très rapidement (certainement en ligne de commandes), avec une pré-saisie efficace.
- Pour communiquer entre bateaux avec la flottille, un échange de données sur ondes courtes serait idéal. Le GSM et le WIFI des smartphones opèrent sur les bandes 2,4 GHz et 5 GHz, offrant de bons débits sur des distances limitées. Pour échanger la météo et quelques messages, les bandes de fréquence des réseaux IoT de type LoraWan ou WIFI 802.11ah d’environ 800 MHz seraient suffisants… voir les bandes VHF de 30 à 300 MHz utilisées par l’AIS et la norme WIFI 802.11af (anecdotique) qui permettraient de communiquer à des distances de 5 à 10 Mn.
- Enfin, il serait intéressant d’automatiser Arthur avec de l’IoT, déployer un cluster K3S, etc. des opérations amusantes pour un informaticien, mais qui ne sont pas d’actualité pour le moment.
Du bas de mes 71 ans, moi qui ai labouré avec des charrues à bœuf, làààà….
Voici ce que propose ChatGPT comme réponse :
« Comprendre les technologies modernes peut être un défi si l’on a une expérience principalement axée sur des méthodes plus traditionnelles, telles que labourer avec des charrues à bœufs. Cependant, avec une approche progressive et une volonté d’apprendre, il est tout à fait possible de se familiariser avec les technologies contemporaines. Voici quelques étapes que vous pourriez envisager :
Commencer par les bases de l’informatique : Familiarisez-vous avec les ordinateurs, les tablettes et les smartphones. Apprenez les concepts de base tels que les systèmes d’exploitation, la navigation sur Internet et la gestion des fichiers.
Explorer l’Internet : Comprenez comment fonctionne l’Internet, découvrez les moteurs de recherche et apprenez à utiliser des sites web pour trouver des informations. Les compétences en recherche en ligne sont cruciales.
S’initier aux médias sociaux : Les plateformes de médias sociaux sont devenues des outils de communication incontournables. Apprenez à utiliser des plateformes comme Facebook, Twitter, ou LinkedIn.
Apprendre les bases des logiciels : Familiarisez-vous avec des logiciels couramment utilisés tels que Microsoft Word, Excel et PowerPoint. Ces compétences sont souvent essentielles dans de nombreux contextes professionnels.
Explorer la communication numérique : Comprenez les bases des courriels, des appels vidéo et des messages instantanés. Ces outils sont devenus des moyens de communication standard dans le monde professionnel.
Découvrir les smartphones et les applications : Les smartphones sont des appareils polyvalents. Apprenez à utiliser les applications pour la communication, la navigation, la gestion des tâches, etc.
S’initier à la sécurité en ligne : Comprenez les principes de base de la sécurité en ligne, y compris la gestion des mots de passe, la protection contre les logiciels malveillants et la sensibilisation aux escroqueries en ligne.
Suivre des cours en ligne : De nombreuses plateformes proposent des cours en ligne gratuits ou payants sur une variété de sujets liés à la technologie. Cela peut inclure des cours sur l’informatique, les réseaux sociaux, la programmation, etc.
Demander de l’aide : N’hésitez pas à demander de l’aide à des amis, à la famille ou à des collègues qui ont plus d’expérience avec les technologies modernes.
Aller à son rythme : Apprendre de nouvelles technologies peut être intimidant, mais il est important d’aller à son propre rythme. Commencez par les bases et progressez au fur et à mesure que vous vous sentez plus à l’aise.
Se familiariser avec les technologies modernes demande du temps et de la patience, mais avec une approche progressive, vous pouvez acquérir les compétences nécessaires pour vous adapter à ce nouvel environnement. »