Les articles de ce blog sont fournis selon les termes de la Licence Creative Commons CC-BY-ND.
1 – Articles permanents
Ces articles sont mis à jour au gré de l’évolution des logiciels employés.
- Créer un système complet avec Buildroot : cet article présente une utilisation de la dernière version « Long Term Support » de Buildroot pour produire un système personnalisé pour une cible embarqué. La version actuelle (mise à jour en mars 2020) s’appuie sur Buildroot 2020.02 et présente des exemples d’exécution sur Raspberry Pi 4.
- Cours en ligne « Linux embarqué avec Yocto » : ce cours en ligne est prévu pour découvrir en profondeur l’outil Yocto Project qui permet de créer des systèmes embarqué avec Linux. La version prise en considération est celle de mai 2024 (« Scarthgap – Long Term Support »).
2 – Articles du blog
- 29 octobre 20204 : Application personnelle pour Zephyr OS sur Raspberry Pico : Dans ce deuxième article de notre série, nous examinons comment intégrer une application personnelle (minimale dans notre exemple) dans l’arborescence de Zephyr.
- 15 octobre 2024 : Découverte de Zephyr OS sur Raspberry Pi Pico : pendant quelques articles nous allons découvrir l’OS pour microcontrôleur Zephyr OS. Ce premier article est une prise en main sur une plateforme peu coûteuse et facile à se procurer : un Raspberry Pi Pico.
- 7 octobre 2024 : Essai anticipé du temps réel de Linux 6.12 : Dans la prochaine branche de Linux, le patch PREEMPT_RT a été entièrement intégré pour certaines architectures. Voyons, avec un peu d’avance, comment cela se configure en examinant une version release candidate.
- 1er octobre 2024 : Les variables de Bitbake – 2 – les variables contextuelles : Troisième et dernier article de cette série sur les éléments de configuration de `bitbake` pendant un build Yocto Project. Après les fichiers de configuration et les variables globales, nous étudions les variables contextuelles dont la portée est limité à la recette où elles sont définies.
- 17 septembre 2024 : Les variables de Bitbake – 1 – Les variables globales : l’outil Bitbake prend en compte énormément de variables de configuration, nous en étudions ici une petite partie, classées par fonctionnalités connexes. Dans cet article, on se concentre sur les variables globales disponibles durant tout le build.
- 3 septembre 2024 : Les fichiers de configuration de Bitbake : pendant un build pour Yocto Project, `bitbake` analyse de très nombreux fichiers. Ceux qui nous intéressent ici sont ses fichiers de configuration. Nous étudions leurs rôles et l’ordre du parcours.
- 23 juillet 2024 : Un LLM sur un Raspberry Pi : une petite expérience d’IA, où je souhaite faire fonctionner des LLM (Large Language Models) sur un système restreint comme un Raspberry Pi déconnecté d’Internet. J’ai été agréablement surpris par ses résultats.
- 25 juin 2024 : Signer ses modules kernel avec Yocto Project : la signature des modules du kernel sur un système embarqué est importante pour garantir l’intégrité du noyau. Cette opération est toutefois un peu plus compliquée qu’il n’y paraît de premier abord.
- 3 juin 2024 : Utiliser Git LFS avec Yocto kirkstone/Scarthgap : le téléchargement de fichiers volumineux à l’aide de Git LFS pose des problèmes dans les versions récentes de Yocto. Nous avons pu contourner le problème, mais les tâches à réaliser n’étaient pas intuitives.
- 19 février 2024 : Early-init, les premiers instants du réveil de Linux. L’emploi de Systemd en environnement embarqué pose souvent des problèmes de durée de démarrage trop variable. Pourtant il est souvent nécessaire pour le lancement des applications métiers. Le petit script Early-init présenté ici permet de lancer des tâches urgentes avant le démarrage effectif de Systemd.
- 21 février 2022 : Janvier 2038 et Linux 32 bits : les systèmes Linux sur processeur 32 bits risquent de passer difficilement le 19 janvier 2038. Ceci concerne surtout les systèmes embarqués industriels avec une longue durée de vie. Il est tout à fait possible de les protéger, au prix de quelques efforts de configuration, et d’une mise à niveau soigneuse pour les systèmes déjà déployés. Le point sur la situation actuelle…
- 3 février 2022 : Imbriquer des systèmes Linux avec Yocto Cooker. Comment générer avec Yocto Project une image pour émulateur ARM 64-bits contenant les packages nécessaires pour générer avec Yocto Project une image pour émulateur x86 64-bits. Et comment regouper tout cela dans un même menu pour Yocto Cooker.
- 27 janvier 2022 : Yocto Cooker (3/3) : détail des actions (commandes) proposées par Yocto Cooker.
- 20 janvier 2022 : Yocto Cooker (2/3) : présentation détaillée des fichiers-menus utilisés par
cooker
. - 13 janvier 2022 : Yocto Cooker (1/3) : présentation de Yocto Cooker, un outil pour simplifier la gestion des répertoires de compilation avec Yocto Project.
- 6 janvier 2022 : Live Embedded Event #3 : annonce de la prochaine édition du Live Embedded Event, le 18 mai prochain.
- 20 décembre 2019 : Un port Ethernet supplémentaire sur Raspberry Pi. Comment connecter, configurer et utiliser un petit module comprenant un contrôleur Ethernet sur bus SPI pour ajouter une interface réseau à un Raspberry Pi 3.
- 4 mars 2019 : Bref aperçu de Linux 5. Linus Torvalds a publié ce matin un nouvelle branche de Linux, en voici un essai très bref.
- 1er février 2019 : Un Raspberry Pi en production ? Le nouveau Raspberry Pi Compute Module 3+ offre quelques nouvelles possibilités et une pérennité accrue par rapport à ses prédécesseurs. Essayons-le avec une distribution Raspbian, une image Buildroot et une image Yocto.
- 8 novembre 2018 : Buildroot 2018.02 et Raspberry Pi 3 : mise à jour de mon article de décembre 2015 pour générer un système minimal pour Raspberry Pi avec la version « long terme » actuelle de Buildroot.
- 29 octobre 2018 : Pilotage de GPIO avec l’API Libgpiod (partie 3) : dans ce dernier article, nous observons comment piloter efficacement les lignes GPIO depuis un programme C en employant les fonctions bas-niveaux de la bibliothèque Libgpiod. Nous nous interrogerons également sur les performances que l’on peut attendre des différentes méthodes d’accès aux GPIO.
- 22 octobre 2018 : Pilotage de GPIO avec l’API Libgpiod (partie 2) : dans ce second article, nous examinons l’accès aux lignes GPIO depuis un programme, tout d’abord en utilisant des
ioctl()
vers/dev/gpiochip
puis en employant l’API context-less de Libgpiod. - 15 octobre 2018 : Pilotage de GPIO avec l’API Libgpiod (partie 1) : une petite exploration de la nouvelle interface proposée par le noyau Linux pour accéder aux GPIO en remplacement du traditionnel accès
/sys/class/gpio/
. Dans cette première partie : les outils de pilotage depuis la ligne de commande du shell. - 1er septembre 2018 : Projet Pi-Logger : ce petit outil permet d’enregistrer et horodater les changements d’états des broches GPIO d’entrée d’un système (pour surveiller un dispositif externe par exemple).
- 4 janvier 2018 : Petit ajout dans spi-tools : une option de l’outil spi-tools que j’ai présenté il y a quelques années ne marchait plus depuis plusieurs versions du noyau à cause d’une modification du comportement des drivers SPI. Voici un palliatif pour ce problème.
- 6 juin 2017 : [Kernel] Interruptions et tasklets : un article plutôt long pour inaugurer une nouvelle rubrique consacrée à la programmation noyau Linux.
- 1er mai 2017 : Dailyfile : Ce petit outil en ligne de commande permet de répartir la sortie d’un pipeline du shell dans des fichiers quotidiens.
- 10 avril 2017 : MSP-omodoro : ce petit Pomodoro construit autour d’un Launchpad T.I. MSP430 est avant tout un exemple pédagogique de conception de projet pour microcontrôleur.
- 1er avril 2017 : un poisson fantôme : et si le poisson d’avril de cette année était un fantôme sorti de notre clavier ?
- 20 mars 2017 : Xenomai sur Raspberry Pi 3 – bon espoir mais bilan mitigé : le support de Xenomai sur Raspberry Pi 3 était très attendu. L’installation du système est simple et il fonctionne bien. Néanmoins un point important fait encore défaut : la gestion des interruptions des GPIO.
- 13 mars 2017 : Un noyau 4.10 sur une Raspberry Pi 3 64 bits : si le passage en mode 64 bits n’est surtout qu’un challenge technique, l’utilisation d’un noyau Linux standard présente un intérêt plus important.
- 27 février 2017 : Un bête accident : N’oublions pas que la vie d’une carte Raspberry Pi 2 ne tient qu’à un fil…
- 19 février 2017 : [Bidouilles et nostalgie] USB-ifions un clavier de PC/XT : remise en service d’un vieux clavier mécanique des années 1980 grâce à un micro-contrôleur afin de le connecter en USB.
- 12 février 2017 : Raspberry Pi Zero et USB-net (2) : modifions la configuration pour accéder à Internet depuis le Pi Zero et automatiser l’affectation d’adresse IP du PC hôte.
- 5 février 2017 : Raspberry Pi Zero et USB-net (1) : configurons le petit Raspberry Pi Zero pour pouvoir y accéder sans autre matériel qu’un câble USB standard de téléphone portable.
- 26 décembre 2016 : Projet Nunmouse : un petit hack pour transformer un nunchuck de console Wii en souris ergonomique…
- 22 mai 2016 : Xenomai 3 sur Raspberry Pi 2 : le support de Xenomai sur le Raspberry Pi 2 était attendu depuis longtemps, il est enfin assez facile de procéder à l’installation…
- 8 décembre 2015 : Création d’un système complet avec Buildroot : utilisons la dernière version du projet Buildroot pour construire notre propre système minimal sur Raspberry Pi…
- 19 octobre 2015 : Renforcer une distribution Raspbian Jessie : Après un test de la nouvelle distribution Debian adaptée sur Raspberry Pi, j’aimerais la rendre plus robuste vis-à-vis des coupures d’alimentation et de l’usure de la mémoire flash…
- 24 février 2015 : Linux 4 : Après un vote public, Linus Torvalds a décidé que le prochain noyau ne serait pas numéroté 3.20, mais 4.0…
- 9 février 2015 : Le Raspberry Pi 2, un grand timide : Ce nouveau Raspberry Pi souffre d’un bug matériel : il se fige lorsqu’il reçoit une lumière intense comme un flash d’appareil photo. La preuve en vidéo…
- 9 février 2015 : 6 fois plus rapide ? vraiment ? Le nouveau Raspberry Pi 2 est sorti la semaine dernière. Il est annoncé comme 6 fois plus rapide que le précédent. C’est le genre de détail que j’aime bien vérifier…
- 15 décembre 2014 : Le système Overlayfs du noyau 3.18 : disponible depuis longtemps sous forme de patches externes, le système overlayfs a été intégré dans le noyau 3.18. Essayons-le…
- 14 novembre 2014 : Linux Magazine Hors Série 75 : j’ai le plaisir de signer quatre articles dans le numéro Hors Série 75 de Linux Magazine, consacré au « Raspberry Pi – niveau avancé ».
- 20 octobre 2014 : Extraction des fonctions d’un fichier C : écriture d’un petit script shell qui permet de répartir toutes les fonctions d’un fichier C dans des fichiers différents…
- 12 août 2014 : Projet Spi-tools : ce petit projet regroupe deux utilitaires permettant de configurer et d’exploiter un lien SPI depuis la ligne de commande, y compris en mode full-duplex.
- 6 août 2014 : B+ : Brève exploration des nouveautés du Raspberry Pi modèle B+…
- 22 juillet 2014 : Ajouter un module noyau dans Buildroot : il m’arrive assez souvent de développer des drivers spécifiques pour des clients. Voici comment je les intègre dans Buildroot pour produire les BSP correspondants.
- 5 avril 2014 : Utiliser un appel-système inconnu de la libC : lorsque le noyau Linux implémente un nouvel appel-système et que celui-ci est inconnu de la bibliothèque C, il faut faire une invocation directe. C’est ce que nous allons réaliser pour tester le nouvel ordonnancement Earliest Deadline First…
- 6 mars 2014 : Compilation native de modules kernel sur le Raspberry Pi : la mise en œuvre d’une chaîne de compilation croisée peut paraître un peu compliquée lorsque l’on veut juste compiler un module pour le noyau du Raspberry Pi. Il est alors possible de réaliser cette compilation nativement sur une distribution comme la Raspbian, mais il faut alors préparer un environnement de travail…
- 22 janvier 2014 : GPIO du Raspberry PI – mesure de fréquence : on peut utiliser une entrée GPIO du Raspberry Pi et un petit module kernel pour mesurer la fréquence d’un signal. En voici une implémentation simple…
- 27 décembre 2013 – Comprendre le fonctionnement de select() : l’appel-système
select()
permet d’attendre passivement la réalisation d’une condition sur un ou plusieurs descripteurs de fichiers. Mais son implémentation dans le kernel est un peu complexe, en voici une petite description. - 4 décembre 2013 – Optimisation du temps de boot d’un système embarqué : j’ai le plaisir de voir mon article faire la couverture du nouveau numéro d’Open Silicium (numéro 9), voici les fichiers accompagnant ces expériences.
- 19 novembre 2013 – Du firmware sur micro-contrôleur à l’application embarquée : dans le cadre d’un séminaire à Villeneuve d’Ascq, j’ai donné une conférence dont voici les slides…
- 10 octobre 2013 – Plates-formes pour Linux embarqué : voici les slides de la conférence que j’ai présentée pour les « matinales de l’embarqué » au salon Enova.
- 27 septembre 2013 – L’optimisation d’un système Linux industrIel : les slides d’une conférence que j’ai donnée ce matin dans le cadre d’un séminaire Cap’tronic, LEA Valley et ID4CAR à Nantes…
- 10 septembre 2013 – Raspberry Pi from scratch : les versions PDF des articles que j’ai écrit il y a quelques mois pour Linux Magazine sont disponibles.
- 19 août 2013 – Notifications rapides d’une variable-condition : un client m’a interrogé sur les mécanismes de notification disponible pour qu’un thread prévienne un autre thread en attente passive d’un événement asynchrone. La variable condition constitue une réponse évidente, mais sa mise en pratique fiable et robuste est plus compliquée que prévue…
- 12 juillet 2013 – Hard Reset sur Raspberry Pi : j’ai eu besoin (pour chronométrer et optimiser le temps de boot) de pouvoir réinitialiser le Raspberry Pi depuis un autre système. Il n’a pas de bouton Reset directement accessible, mais il est facile d’en ajouter un.
- 9 juillet 2013 – Bureau Gnome pour BeagleBone Black (article invité) : cet article rédigé par François Tremel décrit l’utilisation du bureau Gnome sur la distribution Angström pré-installée dans le BeagleBone Black.
- 6 juillet 2013 – BeagleBone Black et PWM : je me suis intéressé aux sorties PWM du BeagleBone Black. L’accès aux premières sorties est simple, mais ce n’est pas le cas pour les deux autres.
- 23 juin 2013 – Coffret pour le BeagleBone Black : mon confrère Nathaël Pajani a fait réaliser des coffrets par la Fabrique d’Objets Libres (Fablab) de Lyon pour protéger le BeagleBone Black.
- 1er juin 2013 – Entrées analogiques du Beagle Bone Black : j’ai commencé à explorer les possibilités et les limites du nouveau BeagleBone, en débutant par ses entrées analogiques.
- 17 mai 2013 – Console série de debug pour BeagleBone Black : Si vous désirez voir les messages de boot du noyau Linux, ou vous connecter sur l’interface du bootloader Uboot, ou encore ouvrir une console texte d’administration rapidement, vous pouvez facilement employer le connecteur Serial Debug du BeagleBone Black.
- 13 mai 2013 – Un nouvel os à ronger ! : je viens de recevoir la nouvelle carte destinée aux hackers Linux embarqué : le BeagleBone Black. Je vous propose un petit tour de piste rapide en le comparant à son concurrent immédiat : le Raspberry Pi.
- 29 avril 2013 – Configuration d’une application embarquée (2/2) : seconde partie d’un article co-écrit avec François Beaulier, afin d’étudier les possibilités de sauvegarde de la configuration et du paramétrage d’une application embarquée.
- 15 avril 2013 – Attentes passives sur GPIO : il est souvent utile d’attendre un changement d’état sur une broche d’entrée (capteur, bouton, etc.) en évitant la scrutation périodique. C’est facile grâce au système de fichier
/sys
et les appels-systèmeselect()
oupoll()
. - 8 avril 2013 – Optimiser les recherches récursives avec xargs : pour rechercher une chaîne de caractères par exemple, dans un grand nombre de fichiers d’une arborescence, plusieurs possibilités s’offrent à nous mais elles ne sont pas toutes aussi efficaces.
- 30 mars 2013 – Configuration d’une application embarquée (1/2) : cet article, co-écrit avec François Beaulier, étudie les possibilités de sauvegarde de la configuration et du paramétrage d’une application embarquée.
- 13 mars 2013 – Mesure de latences d’interruption à l’aide d’un STM32 : pour obtenir des statistiques sur la durée de latence des interruption d’un Raspberry Pi avec un driver RTDM/Xenomai, j’ai construit un petit outil simple à base de micro-contrôleur STM32.
- 28 février 2013 – Linux Mag’ 158 – Raspberry Pi from scratch : voici un nouvel article qui vient compléter ceux publiés dans le numéro 155 de Linug Magazine pour la création d’un système totalement personnalisé sur un Raspberry Pi.
- 15 février 2013 – Raspberry Pi – Interruptions GPIO avec RTDM : jusqu’alors le support Xenomai / RTDM pour gérer les interruptions des GPIO n’était pas satisfaisant en terme de performances. Grâce à de nouveaux patches, les choses ont nettement progressé cette semaine.
- 12 février 2013 – Paris Embedded Meetup #2 : la seconde édition du Paris Embedded Meetup s’est tenue ce mardi dans les locaux de la société Joshfire, ambiance décontractée et interventions de qualité.
- 10 février 2013 – A Free Digital Society : Richard M. Stallman a donné ce dimanche une conférence à Nanterre à l’invitation du Parti Pirate. J’y ai pris quelques notes que je vous retranscris ici.
- 26 janvier 2013 – Gérer les GPIO du Raspberry Pi avec RTDM : Un point sur la gestion des entrées-sorties GPIO du Raspberry Pi avec Xenomai. Tout ne fonctionne pas encore totalement, mais ça progresse…
- 1er janvier 2013 – Un écran de poche pour le Raspberry Pi : j’ai trouvé un petit écran peu onéreux, conçu en principe pour servir de radar de recul automobile, mais qui fonctionne à merveille pour un petit système embarqué.
- 30 novembre 2012 – Linux Mag’ – Raspberry Pi from Scratch : Quelques compléments sur les articles que j’ai écrits cet été pour Gnu/Linux Magazine France et qui paraissent ce mois.
- 26 novembre 2012 – Les GPIO du Raspberry Pi : L’accès aux ports d’entrée-sortie du Raspberry Pi est assez simple, tant depuis l’espace utilisateur qu’avec un module du kernel.
- 2 novembre 2012 – SPI sur Raspberry Pi – 1 : Le bus SPI est très utilisé pour communiquer avec des micro-contrôleurs ou des périphériques industriels. Employons-le sur le Raspberry Pi.
- 27 octobre 2012 – Câble RS-232 pour Raspberry Pi : Il n’y a pas de port RS-232 sur le Raspberry Pi, mais plusieurs solutions peuvent être envisagées…
- 22 octobre 2012 – Un Raspberry Pi de 512 Mo : Depuis quelques jours les Raspberry Pi sont produits et livrés avec 512 Mo de mémoire plutôt que 256 Mo auparavant…
- 19 octobre 2012 – Toolchain crosstool-NG pour Raspberry Pi : Suite logique de l’article précédent : créons la toolchain avec crosstool-NG…
- 12 octobre 2012 – Toolchain Buildroot pour Raspberry Pi : Suite à une demande, voici le détail de la création d’une toolchain pour Raspberry Pi à partir de Buildroot…
- 29 septembre 2012 – Scripts Shell Linux et Unix : la nouvelle édition de mon livre sur les scripts vient de paraître…
- 3 septembre 2012 – RS-485 Half-duplex sous Linux : l’utilisation d’un port RS-485 half-duplex en réception m’a posé récemment des problèmes inattendus…
- 27 août 2012 – Xenomai sur Raspberry Pi : J’avais évidemment envie d’installer Xenomai sur le Raspberry Pi et de vérifier ses limites. Voici un compte-rendu…
- 20 août 2012 – Essai de la distribution Raspbian pour Raspberry Pi : plusieurs distributions pour le petit système Raspberry Pi commencent à apparaître, l’une d’elles m’a semblé plus complète que les autres et je l’ai essayée rapidement.
- 23 juillet 2012 – Les latences de Xenomai : J’ai mesuré à plusieurs reprises les latences maximales des interruptions sous Xenomai. Toutefois il n’est pas inintéressant d’observer également les latences minimales.
- 16 juillet 2012 – Incrémentation et (non) atomicité : on pense parfois qu’en C les opérateurs ++ ou — sont atomiques vis-à-vis de l’ordonnancement. Est-ce-vrai ?
- 13 juillet 2012 – Xenomai 2.6.1 sur Pandaboard : une nouvelle version stable de Xenomai est sortie cette semaine, elle supporte un noyau Linux 3.2.21. Je l’ai testée sur une Pandaboard…
- 9 juillet 2012 – La Pandaboard au poteau de torture – 4 – Timers Xenomai : Comparons les résultats obtenus précédemment sous Linux-rt et ceux de Xenomai. Aurons-nous une meilleure stabilité des tâches périodiques ?
- 3 juillet 2012 – Une seconde pas si anodine… : Finalement Linux n’a pas très bien supporté la seconde intercalaire du week-end dernier.
- 29 juin 2012 – La Pandaboard au poteau de torture – 3 – Timers Linux et Linux-rt : j’ai continué les mesures sur de longues périodes des variations de timers logiciels pour les noyaux Linux standard et Linux-rt.
- 28 juin 2012 – Une petite seconde de plus en juin… : Une seconde intercalaire va se glisser entre les mois de juin et de juillet à minuit UTC, soit 2 heures du matin (dimanche) à Paris. Nous pouvons configurer un système Linux pour l’observer…
- 26 juin 2012 – Comment effacer involontairement un fichier source… : Je n’ai effacé ici qu’un petit programme d’essai, toutefois l’association maladroite de
rm
et de la tabulation pour compléter les noms de fichiers peut avoir des effets désastreux. - 18 juin 2012 – La Pandaboard au poteau de torture – 2 – Fluctuations de timers Linux : En observant les fluctuations d’un timer logiciel, des effets inattendus sont apparus à cause des traitements d’interruption…
- 11 juin 2012 – La Pandaboard au poteau de torture – 1 – Disjonction thermique : La carte Pandaboard seule ne supporte pas une charge à 100% du processeur de manière prolongée. Vérifions et corrigeons ce défaut.
- 4 juin 2012 – GPIO, Pandaboard et temps réel – 5 – Multiplexage des GPIO : Le processeur OMAP propose 192 GPIO, mais il dispose de beaucoup moins de broches. Il faut donc multiplexer les fonctionnalités.
- 28 mai 2012 – GPIO, Pandaboard et temps réel – 4 – Gestion des interruptions : comparons deux modules gérant les interruptions déclenchées par une entrée GPIO, l’un pour le noyau Linux standard, l’autre pour Xenomai avec l’API RTDM.
- 21 mai 2012 – GPIO, Pandaboard et temps réel – 3 – Lecture sur des entrées GPIO : après avoir écrit sur des broches de sortie du microprocesseur depuis l’espace utilisateur et le noyau, nous allons cette fois lire les valeurs présentes sur des entrées GPIO.
- 15 mai 2012 – Solutions temps réel sous Linux – mon nouveau livre traitant des solutions libres pour obtenir un comportement temps réel souple ou strict avec Linux.
- 14 mai 2012 – GPIO, Pandaboard et temps réel – 2 – Sorties depuis l’espace kernel : utilisons un GPIO en sortie pour vérifier la précision des API <timer.h> et <hrtimer.h> de Linux et celle de Xenomai / RTDM.
- 10 mai 2012 – GPIO, Pandaboard et temps réel – 1 – Sorties depuis l’espace utilisateur : cette série d’articles s’intéresse aux entrées-sorties électriques de la carte Pandaboard avec un comportement en temps-réel en point de mire. Ce premier article décrit l’accès aux ports de sortie GPIO depuis l’espace utilisateur, par ligne de commande, script et programme C.
- 7 mai 2012 – Mesure de précision des timers de RTDM / Xenomai : ce petit exemple d’utilisation de l’API RTDM (Real Time Driver Model) permet de programmer un timer kernel et de vérifier la précision de son déclenchement.
- 2 mai 2012 – Xenomai 2.6.0 sur Ubuntu 12.04 : La compilation de Xenomai sur la nouvelle version de la distribution Ubuntu se déroule de manière identique à la précédente édition (voir article du 28 décembre dernier).
- 30 avril 2012 – Configurer facilement la fréquence processeur : petite présentation rapide sur la configuration des fréquences du CPU, manuellement ou avec l’assistance d’un governor.
- 23 avril 2012 – [ACTU] Simulation de second tour de l’élection présidentielle : calculez le résultat du second tour en fonction de votre estimation des participations et reports des voix des électeurs du premier tour.
- 21 avril 2012 – Traitements parallèles dans un script shell : L’utilisation de tâches en arrière-plan n’est finalement pas très répandue dans les scripts shell, mais il peut arriver qu’elle soit nécessaire.
- 5 avril 2012 – [NOSTALGIE] Le ZX 81 : J’ai essayé de redémarrer mon vieux ZX-81. En vain. Mais je le conserverai dans mon bureau…
- 27 mars 2012 – [ACTU] Mais pourquoi la Freebox reste-t-elle à l’heure d’hiver ? Une hypothèse se confirmera peut-être dimanche prochain…
- 26 mars 2012 – Envoi d’un signal vers un processus depuis le kernel : mesurons le temps d’activation d’une tâche de l’espace utilisateur lorsqu’elle reçoit un signal provenant du noyau.
- 19 mars 2012 – Mesurons le surcoût d’un appel système : les opérations nécessaires à un aller-retour dans l’espace mémoire du kernel prennent du temps, mais combien ?
- 12 mars 2012 – Réveil d’une tâche utilisateur depuis un timer kernel : mesurons le temps nécessaire pour réveiller depuis le noyau un processus endormi dans un appel-système.
- 4 mars 2012 – [LECTURE] Code Clean: A Handbook of Agile Software Craftsmanship : Une réflexion très intéressante et des méthodes d’amélioration de la qualité du code.
- 26 février 2012 – Options de compilation pour Linux industriel (2) : suite de notre de liste de paramètre à considérer lors de la préparation d’un kernel pour système industriel.
- 19 février 2012 – Options de compilation pour Linux industriel (1) : une liste de paramètres de compilation à prendre en considération pour optimiser les aspects industriels de Linux (temps-réel, embarqué, boot rapide, etc.).
- 12 février 2012 – Mise au point de bibliothèque dynamique (3) : (or english translation) Tests et couverture de code.
- 8 février 2012 – [LECTURE] Version Control by Example : un livre gratuit (et très intéressant) sur les logiciels de gestion de versions.
- 4 février 2012 – Mise au point de bibliothèque dynamique (2) : (or english translation) Utilisons ltrace et gdb pour suivre l’exécution du code dans une bibliothèque dynamique.
- 28 janvier 2012 – Mise au point de bibliothèque dynamique (1) : (or english translation) Explorons la gestion des numéros majeur et mineur d’une bibliothèque dynamique et leur implication sur sa maintenance.
- 14 janvier 2012 – Parallélisation de compilations : (or english translation) Est-il intéressant de lancer plus de jobs simultanés de compilation que nous avons de CPU disponibles ? Vérifions…
- 7 janvier 2012 – Linux 3.2 – CFS CPU Bandwith : (or english translation) Essais de la nouvelle option de contrôle de la puissance CPU disponible pour chaque groupe de tâches.
- 16 décembre 2011 – Recommandations de lecture (1) : Mise en place d’une page de bibliographie (qui sera complétée par la suite…)
- 27 novembre 2011 – Xenomai sur Pandaboard : L’installation de Xenomai sur une carte Pandaboard n’est pas compliquée, mais j’ai rencontré pas mal d’embûches…
- 15 novembre 2011 – [ACTU] RTwiki de retour ! Après l’attaque d’août dernier, le site RTwiki est enfin de retour sur Kernel.org…
- 4 novembre 2011 – Expérimentations sur la préemptibilité du noyau Linux : Pour comparer les réponses aux interruptions d’un noyau Linux préemptible et d’un non-préemptible, nous utilisons une carte Pandaboard et une carte STK500 pour micro-contrôleur Atmel ATmega32…
- 25 octobre 2011 –
(defun message() (print "Bye John!")) (message)
: Après Dennis Ritchie il y a quelques jours, c’est John McCarthy qui vient de nous quitter… - 22 octobre 2011 – Prises de mutex et priorités : la synchronisation de plusieurs tâches temps-réel grâce aux mutex peut dissimuler des difficultés inattendues.
- 13 octobre 2011 –
printf("Bye Dennis!n");
– Dennis M. Ritchie, créateur du langage C et du système Unix s’est éteint le week-end dernier. - 9 octobre 2011 – Efficacité des IPC – sémaphore et mémoire partagée : la méthode la plus efficace pour transférer rapidement un volume de données potentiellement important entre les espaces mémoire de deux processus.
- 4 octobre 2011 – [ACTU] Kernel.org partiellement de retour : une partie du site des archives Linux est à nouveau en ligne.
- 2 octobre 2011 – Efficacité des IPC – les signaux temps-réel : nous continuons à estimer les temps de communication entre processus, en mesurant cette fois la durée de transfert d’un signal temps-réel.
- 26 septembre 2011 – [LECTURE] The Practice of Programming : J’ai relu récemment ce livre et je le recommande chaudement à tous les développeurs.
- 17 septembre 2011 – Efficacité des IPC – les files de message Posix : Je désire comparer les temps de transmission d’un message entre deux processus avec les divers mécanismes offerts par les systèmes Unix/Linux. Cette semaine : les message queues Posix.
- 9 septembre 2011 – [ACTU] kernel.org down : La sécurité du site kernel.org a été compromise ces dernières semaines, et une certaine inquiétude persiste concernant l’intégrité des sources du noyau Linux. Le site kernel.org est inaccessible depuis mercredi soir.
- 2 septembre 2011 – Création d’un système Gnu/Linux live personnalisé : Utilisation de l’environnement Live Build de Debian pour obtenir un système live autonome, fonctionnant sur clé USB, en ajoutant des packages et des fichiers personnalisés, et en conservant une persistance des données de l’utilisateur d’une exécution à l’autre.
- 20 août 2011 – Les versions « longterm » de Linux : Certaines version spécifiques du noyau Linux ont une période de mise à jour plus longue que les autres. Greg Kroah Hartman a proposé récemment de formaliser leur gestion…
- 5 août 2011 – Crash système et récupération : j’ai été confronté cette semaine à un problème de redémarrage impossible de mon poste de travail principal. Voici un petit récit du problème, du diagnostic, et – heureusement – de sa récupération…
- 29 juillet 2011 – Éviter les inversions de priorités causées par des mutex : les problèmes d’inversion de priorités sont à prendre en considération avec soin lors de la conception des systèmes temps-réel. Il existe également des remèdes pour corriger a posteriori certaines inversions, par exemple PIP…
- 26 juillet 2011 – [ACTU] 2.6 c’est fini… : le nouveau noyau Linux 3.0 a été publié, ainsi qu’un patch Preempt-RT pour améliorer son comportement temsp-réel.
- 15 juillet 2011 – Signes de vie d’un système embarqué : les cartes classiques pour Linux embarqué (Pandaboard, Igepv2, Beagle Board, etc.) proposent un accès plus ou moins direct à des LEDs sur lesquelles il est possible d’indiquer régulièrement le bon fonctionnement du système.
- 10 juillet 2011 – Compilation de Linux avec une toolchain embarquée native : Utilisons la chaîne de compilation obtenue précédemment pour construire directement sur la carte cible Pandaboard le noyau Linux sur lequel elle redémarrera ensuite…
- 1er juillet 2011 – Création et installation d’une toolchain native pour processeur Arm. La compilation croisée est très utile pour les projets embarqués, mais on peut aussi envisager d’intégrer une chaîne de compilation native sur notre cible. Ainsi on pourra y générer directement le code qu’elle exécutera ultérieurement.
- 17 juin 2011 – Construire son système personnel sur une carte Pandaboard (5) : Après le serveur Apache cross-compilé la semaine passée, nous allons nous attaquer à l’éléphant : PHP !
- 10 juin 2011 – Construire son système personnel sur une carte Pandaboard (4): Cette semaine : la cross-compilation et l’installation d’un serveur Apache personnalisé…
- 30 mai 2011 – [ACTU] 3.0 finalement… : Linus Torvalds s’est décidé, le nouveau noyau sera dans la branche 3.0, pour fêter les 20 ans de Linux…
- 27 mai 2011 – Buildroot vs Crosstool-NG – compilons notre cross-compiler : tout développement embarqué commence par l’installation d’une chaîne de compilation croisée. Plusieurs projets permettent de générer facilement cette toolchain, nous en étudierons deux différents dans cet article.
- 24 mai 2011 – [ACTU] 2.8 ou 3.0 ? : la numérotation des noyaux Linux va changer prochainement, a laissé entendre Linus Torvalds ce matin.
- 20 mai 2011 – Construire son système personnel sur une carte Pandaboard (3) : s’il existe déjà des images de Linux précompilées pour la carte Pandaboard, il peut toutefois être intéressant de reconstruire totalement son propre système en partant de zéro. Cette semaine : l’installation de services réseaux pour la connexion et la configuration à distance,.
- 19 mai 2011 – [ACTU] Bye-Bye Big Kernel Lock : Linus Torvalds a publié ce matin la version 2.6.39. On peut remarquer entre autres la disparition définitive du tristement célèbre Big Kernel Lock.
- 13 mai 2011 – Construire son système personnel sur une carte Pandaboard (2) : s’il existe déjà des images de Linux précompilées pour la carte Pandaboard, il peut toutefois être intéressant de reconstruire totalement son propre système en partant de zéro. Cette semaine : l’initialisation en espace utilisateur et les outils système fondamentaux.
- 6 mai 2011 – Construire son système personnel sur une carte Pandaboard (1) : s’il existe déjà des images de Linux précompilées pour la carte Pandaboard, il peut toutefois être intéressant de reconstruire totalement son propre système en partant de zéro. Cette semaine : les bootloaders U-boot et X-loader, la compilation et le boot du noyau.
- 29 avril 2011 – Expériences avec le cache (3) : suite des expériences sur le cache des processeurs : cette fois, nous testons le débordement du TLB (Translation Lookaside Buffer) de la MMU.
- 22 avril 2011 – [ACTU] Nouveau patch Linux Preempt RT 2.6.33.9-rt31 : application du nouveau patch Linux-RT publié par Thomas Gleixner, compilation et boot sur une carte Arm IGEPv2.
- 15 avril 2011 – Expériences avec le cache (2) : poursuite des expériences sur le cache : vérifions comme se partage le cache L1 entre les différents cœurs de nos processeurs.
- 8 avril 2011 – Expériences avec le cache (1) : expérimentations sur les temps d’accès à la mémoire, inspirées par un texte fameux d’Ulrich Drepper.
- 1 avril 2011 – [ACTU] Groupement automatique des processus : le noyau 2.6.38 fluidifie l’ordonnancement en regroupant automatiquement les processus lancés depuis le même terminal. Nous vérifions son fonctionnement.
- 25 mars 2011 – Partager le temps-réel ? : certains gardes-fou peu connus peuvent perturber le fonctionnement des tâches temps-réel sous Linux, et il peut être nécessaire de les désactiver.
- 16 mars 2011 – [ACTU] Linux 2.6.38 : compilation, installation et test de la nouvelle version stable du kernel Linux.
- 11 mars 2011 – Temps-réel et économies d’énergie (2) : suite des expériences précédentes et changement de governor pour la fréquence de fonctionnement du processeur.
- 4 mars 2011 – Temps-réel et économies d’énergie (1) : sur certains processeurs la fréquence peut varier dynamiquement pour limiter la consommation électrique, ce point doit être pris en considération pour le systèmes temps-réel, nous testons les différents governors.
3 – Articles publiés
Voici quelques articles publiés dans diverses revues. Vous pouvez en disposer librement pour tout usage non-commercial, à condition de mentionner leur origine. En raison du contrat passé avec l’éditeur, certains articles ne sont pas disponibles sous forme PDF.
Interactions entre espace utilisateur, noyau et matériel
Disponible en PDF, cet article est paru dans Gnu/Linux Magazine Hors Série 87 » Kernel – Le guide pour plonger au cœur de votre système Gnu/Linux » – Disponible sur le site des éditions Diamond.
Débogage kernel et applicatif avec l’outil de mise au point Ftrace sur système généraliste ou embarqué
Disponible en PDF, cet article est paru dans Open Silicium 18 – Avril / Mai / Juin 2016.
BeagleBone Black, GPIO et PWM
Open Silicium 16 – Octobre / Novembre / Décembre 2015 – Disponible sur le site des éditions Diamond.
Les licences des logiciels libres
Open Silicium 15 – Juillet/Août/Septembre 2015 – Disponible sur le site des éditions Diamond.
SPI et Raspberry Pi
Gnu/Linux Magazine Hors Série 75 « Raspberry Pi niveau avancé » de novembre 2014.
L’article est disponible au format PDF. Gardez bien en mémoire que les exemples sont présentés sur un Raspberry Pi modèle 1 B et que tout ne fonctionnera pas nécessairement à l’identique sur des cartes plus récentes.
Dialogue en SPI avec un MSP 430
Gnu/Linux Magazine Hors Série 75 « Raspberry Pi niveau avancé » de novembre 2014.
L’article est disponible au format PDF. Gardez bien en mémoire que les exemples sont présentés sur un Raspberry Pi modèle 1 B et que tout ne fonctionnera pas nécessairement à l’identique sur des cartes plus récentes.
Communiquer en i²c avec un capteur de température
Gnu/Linux Magazine Hors Série 75 « Raspberry Pi niveau avancé » de novembre 2014.
L’article est disponible au format PDF. Gardez bien en mémoire que les exemples sont présentés sur un Raspberry Pi modèle 1 B et que tout ne fonctionnera pas nécessairement à l’identique sur des cartes plus récentes.
Raspberry Pi et temps-réel
Gnu/Linux Magazine Hors Série 75 « Raspberry Pi niveau avancé » de novembre 2014.
L’article est disponible au format PDF. Gardez bien en mémoire que les exemples sont présentés sur un Raspberry Pi modèle 1 B et que tout ne fonctionnera pas nécessairement à l’identique sur des cartes plus récentes.
Optimisation du temps de boot d’un système embarqué
Open Silicium numéro 9 de septembre 2013.
L’article est disponible au format PDF. Gardez bien en mémoire que les exemples sont présentés sur un Raspberry Pi modèle 1 B et que tout ne fonctionnera pas nécessairement à l’identique sur des cartes plus récentes.
Raspberry Pi from Scratch (1, 2 & 3)
Ces articles parus dans les numéro 155 et 158 de Linux Magazine France (décembre 2012 et mars 2013) présentent la création d’un système Linux embarqué pour Raspberry Pi en partant de zéro.
Une version PDF des articles ainsi que les fichiers d’accompagnement peuvent être téléchargés ici.
Linux, histoire d’un noyau
Cet article, écrit pour le numéro hors-série 16 de Linux Magazine France (Août 2003), présente un modeste récapitulatif de l’histoire de Linux, à la veille de la sortie du nouveau noyau 2.6.
Version HTML | Version PDF |
Lancer une application dès le démarrage du système
Lorsqu’on veut démarrer une application dès l’initialisation du système, sans qu’un utilisateur n’ait besoin de se connecter pour la lancer, il convient de respecter certaines règles pour simplifier la mise en service et éviter les problèmes de sécurité. Cet article publié dans le numéro 24 (Janvier 2001) du journal Linux Magazine France explique ces détails.
Version PDF |
Sécuriser l’accès physique à une station Linux
Lorsqu’une station Linux doit être laissée en libre accès pour des utilisateurs sans surveillance, il faut prendre quelques précautions pour éviter les tentatives de fraudes. Cet article publié dans le numéro 21 (Octobre 2000) du journal Linux Magazine France rappelle quelques règles de prudence.
Version PDF |
Programmer un jeu de réflexion
Cet article présente le détail d’un script en langage Tcl/Tk qui implémente de manière simplifiée un jeu de réflexion africain : l’Awele.
Version HTML | Version PDF |
Virologie : Nimda
Cet article a été écrit pour le premier numéro du magazine MISC, de janvier 2002. Il décrit les divers mécanismes qu’utilisait le virus Nimda, lors de sa vague de diffusion de septembre/octobre 2002.
Version HTML | Version PDF |
Virus : nous sommes concernés !
Cet article, écrit pour le numéro hors-série numéro 8 de Linux Magazine France, Spécial Sécurité de Juillet 2001, examine les divers dangers dûs à des programmes néfastes comme les virus, vers, chevaux de Troie ou accès cachés… Le point de vue adopté est celui de Linux et des logiciels libres, et nous nous apercevons qu’il faut dès à présent être conscient des menaces de plus en plus grandes qui pèsent sur nos stations de travail.
Version HTML | Version PDF |
Renforcer une station Linux face à un risque d’arrêt intempestif
Cet article publié dans le numéro 20 (Septembre 2000) du journal Linux Magazine France présente quelques idées pour rendre une station Linux insensible aux problèmes posés habituellement par un arrêt brutal de la machine.
Version PDF |
Configuration d’une station X-Window avec xdm
Cet article présente une partie des possibilités offertes par l’utilitaire xdm pour configurer une station Linux graphique spécialisée pour travailler avec X-Window. Il a été publié dans le numéro 21 (Octobre 2000) du journal Linux Magazine France.
Version PDF |
An Application of Artificial Intelligence for the Safety in the Neighbourhood of Airport Runways
Il s’agit d’une présentation ayant eu lieu pendant un atelier de l’International Conference on Tools for Artificial Intelligence (ICTAI Novembre 1996) spécialisé sur l’aéronautique et l’espace. On trouvera un résumé de présentation en français, ou en anglais, ainsi que l’article complet en anglais.
Version PDF |
Concepts et outils pour le développement système sous Linux
Cet article paru dans le numéro 189 (Décembre 2000) de la revue L’Informatique Professionnelle présente sommairement les motivations principales qui peuvent inciter une entreprise à effectuer du développement logiciel sous Linux.
Version PDF |
Éliminer les failles de sécurité dès le développement d’une application.
Il est possible, en prenant quelques précautions dès la conception et l’écriture d’un programme, d’éviter que celui-ci ne présente par la suite des failles de sécurité évidentes. Cette série d’articles est écrite en collaboration avec Christophe Grenier et Frédéric Raynal pour Linux Magazine France. Les articles présentés ici sont au format PDF, une version HTML est disponible sur le site de Frédéric Raynal, et une version anglaise existe sur Linux Focus.
Le premier article, paru dans le numéro 23 de Linux Magazine France (décembre 2000) présente les concepts de sécurité sous Unix.
Version PDF |
Le second article, paru dans le numéro 24 de Linux Magazine France (janvier 2001) présente les shell codes, fondements des attaques par débordements de buffers.
Version PDF |
Le troisième article, paru dans le numéro 25 de Linux Magazine France (février 2001) met en œuvre les débordements de buffers.
Version PDF |
Le quatrième article, paru dans le numéro 26 de Linux Magazine France (mars 2001) présente les problèmes posés par les chaînes de format.
Version PDF |
Le cinquième article, paru dans le numéro 27 de Linux Magazine France (avril 2001) illustre les risques d’attaque par situations de concurrence (race condition).
Version PDF |
Le sixième et dernier article, paru dans le numéro 28 de Linux Magazine France (mai 2001) examine certaines failles liées aux scripts CGI.
Version PDF |
Secure Your rm Command
Ce petit texte en anglais publié dans le magazine Linux Gazette numéro 8 (mai 1996) présente un script shell que l’on peut utiliser en remplacement de la commande rm
, afin de stocker temporairement les fichiers effacés dans un répertoire de secours avant leur destruction effective. Ceci permet éventuellement de récupérer des données maladroitement perdues. On notera qu’il existe des packages plus performants en remplacement de rm
, et ce script était surtout présenté pour des raisons pédagogiques.
Une version plus performante de ce script est disponible dans mon livre Scripts shell par la pratique.
Version HTML |
The Easy Way to Set up a Local News Server
Cet article a été publié dans le magazine Linux Gazette numéro 9 (septembre 1996). Il s’agit d’une présentation du logiciel leafnode
, permettant d’installer facilement un serveur local de news Usenet. L’article inclut quelques scripts shell et awk pour faciliter la gestion du serveur, en modifiant automatiquement les adresses d’émetteur, ou en filtrant les groupes téléchargés.
Version HTML |