Ajouter un module noyau personnel dans Buildroot

Embarqué, Linux | Publié par cpb
Juil 22 2014

Module kernel dans BuildrootIl m’arrive fréquemment de développer de petits drivers Linux pour des clients afin de gérer des périphériques spécifiques. Ceci la plupart du temps dans un contexte de système embarqué.

Pour la construction d’un système Linux embarqué, ma préférence va généralement à l’environnement de production Buildroot. Celui-ci est plus léger (mais moins riche, il est vrai) que son principal concurrent Yocto.

La documentation de Buildroot est claire et bien fournie, toutefois il n’est pas très facile d’y trouver comment intégrer un driver Linux spécifique, développé pour une cible donnée. Voici donc un petit rappel des fichiers à ajouter ou modifier.
Lire la suite de cette entrée »

Du microcontrôleur au microprocesseur

Actualité, Embarqué, Linux, Microcontrôleur, Microprocesseur | Publié par cpb
Juil 10 2014

J’ai eu le plaisir aujourd’hui de présenter une conférence au séminaire Captronic « Du microcontrôleur au microprocesseur – Quelle architecture pour quel projet ? » à la C.C.I Nord Isère de Villefontaine.

Le contenu de ma présentation est disponible ici. J’avais déjà abordé ce thème en novembre dernier à Lille, mais j’ai pu enrichir la présentation avec divers approfondissements sur Linux embarqué, et quelques démonstrations de fonctionnement.

En outre, nous avons présenté avec mon ami François Beaulier une architecture hybride composée d’un microcontrôleur (STM32) couplé à un system-on-chip (Raspberry Pi), communiquant en utilisant une bibliothèque de notre création nommée LxMCU.

Cette bibliothèque libre, est prévue pour faire communiquer un système Linux (« Lx ») avec un microcontrôleur (« MCU ») en utilisant un lien SPI (ou I²C prochainement) et une GPIO. Elle sera bientôt mise en ligne.

PS: je n’ai malheureusement pas pu trouver le temps de rédiger d’article sur ce blog depuis bien longtemps, j’espère pouvoir y remédier dans les semaines à venir.

Utiliser un appel-système inconnu de la libC

Actualité, Linux | Publié par cpb
Avr 05 2014

Lundi dernier, Linus a publié le nouveau noyau Linux 3.14. Ce dernier contient de nombreuses nouveautés, dont un mécanisme d’ordonnancement temps réel EDF (Earliest Deadline First) qu’il me tarde d’essayer. Pour cela deux nouveaux appels-système sched_getattr() et sched_setattr() sont proposés au programmeur, mais ils ne sont pas encore supportés par les bibliothèques C actuelles. Qu’à cela ne tienne, nous allons les invoquer directement…
Lire la suite de cette entrée »

Compilation native de modules kernel sur Raspberry Pi

Embarqué, Linux, Raspberry Pi | Publié par cpb
Mar 06 2014

2014-03-06On m’a demandé à plusieurs reprises comment compiler les modules pour le noyau du Raspberry Pi que j’ai présenté dans différents articles ou ceux que je propose en illustration de mes sessions de formation. J’emploie généralement une cross-compilation, c’est à dire un compilateur spécifique installé sur un PC pour produire du code pour le processeur à cœur ARM du Raspberry Pi. J’ai déjà présenté cette solution dans plusieurs articles (par exemple celui-ci, celui-ci ou la série d’articles pour Linux Magazine).

Il existe toutefois une autre solution plus simple : la compilation native en utilisant une distribution courante pour Raspberry Pi.
Lire la suite de cette entrée »

GPIO du Raspberry Pi : mesure de fréquence

Embarqué, Linux, Microprocesseur, Raspberry Pi | Publié par cpb
Jan 22 2014

Raspberry Pi GPIO frequencyUn lecteur m’a interrogé par mail pour savoir comment mesurer la fréquence d’un signal reçu en entrée sur une broche GPIO du Raspberry Pi. Je lui ai répondu que le plus simple est de mesurer le temps s’écoulant entre deux interruptions successives déclenchées par des fronts montants et de calculer l’inverse. J’ai voulu vérifier que cela fonctionnait, et ai écrit un petit driver pour ce faire.

Lire la suite de cette entrée »

Comprendre le fonctionnement de select()

Linux | Publié par cpb
Déc 27 2013

Fonctionnement de select()

Dans un commentaire récent, Thomas m’interrogeait sur le fonctionnement de l’appel-système select() lorsqu’il est invoqué pour surveiller des entrées GPIO par l’intermédiaire du système de fichiers /sys.

C’est effectivement un sujet intéressant, un peu complexe, que je vais essayer de développer ici. Nous allons commencer par examiner comment select() fonctionne pour des fichiers spéciaux représentant des périphériques classiques puis verrons comment il se comporte lorsqu’il est invoqué pour surveiller un fichier de sysfs.
Lire la suite de cette entrée »

Optimiser le temps de boot d’un système embarqué

Embarqué, Linux, Raspberry Pi | Publié par cpb
Déc 04 2013

Couverture Open Silicium 9

J’ai le plaisir de voir mon article « Optimisation du temps de boot d’un système embarqué » faire la couverture d’Open Silicium numéro 9.

[EDIT 2017/01] L’article est dorénavant disponible au format PDF.

Les fichiers accompagnant les expérimentations de l’article sont disponibles dans cette archive ou individuellement ci-dessous.

 

Du firmware sur micro-contrôleur à l’application embarquée

Linux, Microcontrôleur, Microprocesseur | Publié par cpb
Nov 19 2013

Dans le cadre du séminaire « Du micro-contrôleur au PC embarqué » organisé à Villeneuve d’Ascq par Cap’Tronic et le Parc Scientifique de la Haute Borne , j’ai présenté aujourd’hui une conférence sur la transition que représente, pour un développeur accoutumé à la programmation de micro-contrôleur, l’évolution vers une application s’exécutant sur un système Linux embarqué.

Le contenu de ma présentation intitulée « Du firmware sur micro-contrôleur à l’application embarquée : Architectures, techniques et méthodes logicielles » est disponible ici.

Plates-formes pour Linux embarqué

Actualité, Embarqué, Linux | Publié par cpb
Oct 10 2013

Salon Enova ParisJe participe ce matin aux conférences « Les matinales de l’embarqué » du salon Enova Paris.

Je vais y présenter un tour d’horizon des cartes pour Linux embarqué disponibles « sur étagère » (Raspberry Pi, CubieBoard, BeagleBoard, OLinuXino, etc.) en essayant de dégager quelques critères de choix et en fournissant un aperçu des possibilités de ces Single-Board-Computers.

Le contenu de ma présentation est disponible ici.

Optimisation d’un système Linux industriel

Embarqué, Linux | Publié par cpb
Sep 27 2013

J’ai présenté ce matin une conférence « Optimisation d’un système Linux industriel » dans le cadre d’un séminaire Cap’tronic, LEA Valley et ID4CAR à Nantes. Les slides de ma présentation  sont disponibles. Je compte présenter plus en détails certains thèmes (accélération du boot, empreinte mémoire, etc.) dans des articles à venir.