Archives de la catégorie ‘Kernel’

Essai anticipé du temps réel de Linux 6.12

Actualité, Buildroot, Kernel, Linux, Temps-réel | Publié par cpb
Oct 07 2024

La future branche 6.12 du noyau Linux, qui sera publiée à la fin du mois de novembre, contiendra plusieurs nouveautés par rapport au noyau actuel. La plus commentée depuis deux semaines concerne l’intégration complète du patch PREEMPT_RT dans le noyau. Annoncée lors du Maintainer Summit du 17 septembre dernier, cette intégration se manifeste par un patch sur la fonction printk() qui représentait le dernier point de blocage.

Il n’y aura donc plus besoin de patch pour bénéficier de la préemptibilité totale du noyau sur les trois architectures principales pour le temps réel : x86, riscv et aarch64 (ARM 64 bits). Il faudra néanmoins toujours appliquer un patch (du moins pendant quelques temps) pour l’architecture ARM 32 bits par exemple.

Comment tester cette nouveauté ? C’est très simple : je vous propose de faire un build rapide pour une machine virtuelle Risc-V 64 bits en utilisant Buildroot et la version release candidate 6.12-rc2 du kernel, disponible depuis quelques heures.

Lire la suite de cette entrée »

Un port Ethernet supplémentaire sur Raspberry Pi

Embarqué, Kernel, Linux, Raspberry Pi | Publié par cpb
Déc 20 2019
Wiznet w5500

J’ai eu l’occasion, pour le projet d’un client, de tester un petit circuit permettant de disposer d’un port Ethernet sur bus SPI. Je me suis amusé à l’installer sur un Raspberry Pi 3, cela fonctionne assez facilement. Peut-être serez-vous également tentés d’ajouter un port Ethernet à votre Pi ? Cela peut aussi être une bonne solution pour ajouter la connectivité Ethernet à un Compute Module 3 ou tout autre module du même style.

Lire la suite de cette entrée »

Bref aperçu de Linux 5.0

Actualité, Kernel, Linux | Publié par cpb
Mar 04 2019

Linus Torvalds a publié ce matin une nouvelle version du noyau Linux inaugurant la nouvelle branche « 5 ». Précisons que le passage de la branche 4 à la branche 5 n’a pas de signification particulière, il n’y a pas plus de différence entre le noyau 4.20 et le 5.0 qu’entre le 4.19 et 4.20 par exemple. C’est simplement l’histoire des numérotations de Linux qui est un peu particulière.

Lire la suite de cette entrée »

Solutions temps réel sous Linux (3ème édition)

Kernel, Linux, Livres, Raspberry Pi, Temps-réel | Publié par cpb
Jan 13 2019

Nouvelle édition de mon livre « Solutions temps réel sous Linux » aux éditions Eyrolles.

Pas d’énormes nouveautés, il s’agit d’une surtout d’une mise à jour des exemples avec les versions actuelles de Linux, de PREEMPT_RT et de Xenomai (3). La plupart des exemples utilisant des entrées-sorties physiques (GPIO par exemple) sont présentés sur Raspberry Pi 3.

Lien Amazon : https://amzn.to/2RSugA5


Pilotage de GPIO avec l’API Libgpiod (Partie 3)

Embarqué, Kernel, Linux, Microprocesseur, Raspberry Pi | Publié par cpb
Oct 29 2018

Après l’étude des outils disponible en ligne de commande pour piloter des lignes GPIO (partie 1), puis celles de l’accès depuis un programme avec l’appel système ioctl() ou la version context-less de la bibliothèque Libgpiod (partie 2), nous poursuivons en examinant les fonctions bas niveaux de cette bibliothèque. Nous aborderons également le thème des performances d’accès aux GPIO selon la méthode choisie.

Lire la suite de cette entrée »

Pilotage de GPIO avec l’API Libgpiod (partie 2)

Embarqué, Kernel, Linux, Raspberry Pi | Publié par cpb
Oct 22 2018

Dans l’article précédent de cette série, nous avons examiné les commandes disponibles au niveau du shell pour piloter des lignes GPIO avec la nouvelle API proposée par le noyau Linux.

Nous allons à présent nous intéresser à l’accès depuis un programme C/C++ en utilisant cette API.

Lire la suite de cette entrée »

Pilotage de GPIO avec l’API Libgpiod (partie 1)

Embarqué, Kernel, Linux, Raspberry Pi | Publié par cpb
Oct 15 2018

J’ai assisté il y a quelques jours, lors de l’édition 2018 des Kernel Recipes à une présentation par Bartosz Golaszewski  de la nouvelle interface des GPIO pour l’espace utilisateur de Linux. J’en avais eu un bref aperçu il y a quelques mois mais je n’avais pas encore pris le temps d’essayer cette API. Cet article est donc une brève présentation et mise en œuvre de ces outils.

Lire la suite de cette entrée »

[Kernel] Interruptions et tasklets

Kernel, Linux, Raspberry Pi, Temps-réel | Publié par cpb
Juin 06 2017

[Kernel Interruptions et tasklets

Il existe plusieurs mécanismes proposés par le noyau Linux pour programmer un traitement à réaliser lorsqu’un périphérique externe déclenche une interruption pour nous notifier de l’occurrence d’un événement. Gestionnaire monolithique, tasklet, workqueue, threaded interrupt, chaque solution a des avantages et des inconvénients, qu’il est intéressant de connaître pour optimiser l’efficacité de nos traitements.

Lire la suite de cette entrée »