Publié le 19 novembre 2017 - par

Développer des Device Drivers pour Linux

Avec ce livre « Linux Device Drivers Development » vous apprendrez à développer des pilotes de périphériques personnalisés pour un système Linux intégré. Même si les exemples ne sont pas directement applicables au Raspberry Pi, il constitue une base solide pour qui veut se frotter au développement de drivers sous Raspbian.

L’auteur

John Madieu est ingénieur Linux et noyau pour l’embarqué. Il vit à Paris. Ses activités principales consistent à développer des drivers et des BSP (Board Support Package) pour des entreprises dans des domaines tels que l’automatisation, le transport, les soins de santé, l’énergie et l’armée : Développement Kernel, Yocto/OE – Maîtrise de Buildroot. Ecriture de drivers et mise en œuvre de cartes. Développement d’applications en C/C++, Shell/Python. Utilisation courante de Gstreamer, OpenCV, Qt …

John travaille chez Tokhatek (groupe Expemb), une société française pionnière dans la conception de cartes électroniques basée sur des computer-on-module et dans des solutions Linux embarquées. Il est passionné par les systèmes embarqués et open source et convaincu que c’est qu’en partageant ses connaissances que l’on en apprend plus.

Le livre

Il vous apprend à développer des pilotes de périphériques Linux personnalisés. Vous y découvrirez les concepts de base des pilotes de périphériques : gestion de la mémoire, mise en cache du noyau, gestion avancée des IRQ, etc. Au travers d’exemples, il vous apporte une expérience pratique sur Linux embarqué.

Ce que vous y apprendrez

  • Utiliser les outils Kernel pour développer des pilotes puissants
  • Développer des pilotes pour les périphériques I2C et SPI (très utilisés) et utiliser l’API regmap
  • Utiliser le devicetree à partir de vos pilotes
  • Programmer des pilotes avancés pour les périphériques réseau et la mémoire tampon de trame (frame buffer)
  • Utiliser l’API Linux irqdomain et écrire des pilotes de contrôleur d’interruption
  • Améliorer vos compétences avec les cadres de réglementation et PWM
  • Développer des pilotes de système de mesure avec le cadre IIO
  • Tirez le meilleur parti de la gestion de la mémoire et du sous-système DMA
  • Accéder et gérer les sous-systèmes GPIO et développer des pilotes de contrôleur GPIO

Le noyau (kernel) Linux est un logiciel complexe, portable, modulaire et largement utilisé, qui tourne sur environ 80% des serveurs et dans plus de la moitié des systèmes embarqués à travers le monde. Les pilotes de périphériques jouent un rôle essentiel dans la performance d’un système Linux. Comme Linux s’avère être l’un des systèmes d’exploitation les plus populaires, l’intérêt pour le développement de pilotes de périphériques propriétaires augmente régulièrement.

Pour qui est ce livre ?

Si vous êtes débutant avec le Raspberry Pi, ce livre n’est pas pour vous. Il est plutôt destiné à des développeurs qui savent ce qu’est une structure, un pointeur ou une allocation de mémoire.

Si vous souhaitez vous lancer dans le développement de drivers pour le Raspberry Pi ou tout autre système utilisant Linux, ce livre vous aidera dans un premier temps à comprendre les bases des pilotes et à préparer votre long voyage à travers le noyau Linux. Ce livre couvre ensuite le développement de pilotes basés sur divers sous-systèmes Linux tels que la gestion de la mémoire, PWM, RTC, IIO, la gestion de l’IRQ, etc. Le livre offre également une approche pratique sur l’accès direct à la mémoire et les pilotes de périphériques réseau.

À la fin de ce livre, vous serez à l’aise avec le concept de développement de pilote de périphérique et devriez être en mesure d’écrire un pilote de périphérique à partir de zéro, en utilisant la dernière version du noyau (v4.13 au moment de la rédaction de ce livre).

Le contenu

Je vous invite à parcourir les chapitres du livre pour vous faire une meilleure idée de son contenu. Seule la première page est affichée, mais les intitulés des chapitres et les premières pages sont à mon avis suffisamment explicite pour vous faire découvrir les contenus.

 

 

 

 

 

 

Conclusion

Depuis une quinzaine de jours que je parcours ce livre, j’ai mieux compris l’organisation de Linux et de ses sous ensembles. Je n’ai jamais fait de développement de drivers en Linux mais j’ai des bases pour avoir commis quelques drivers du temps du DOS (eh oui) et des premières versions de Windows. Par la suite j’ai écrit des programmes en C à usage industriel, dont certains pour Linux, mais pas des drivers… Après, mon parcours m’a éloigné de ces activités qui m’ont occupé bien des nuits, à l’époque 🙂

Tout ça pour vous dire que ce livre très détaillé et clairement expliqué (si vous lisez l’anglais technique) est une bonne approche quand on a des bases et qu’on souhaite se lancer dans l’écriture de drivers sous Linux.
Un driver, dans un premier temps, peut être aussi simple que la gestion de l’appui sur un poussoir, la lecture du GPIO et l’allumage d’une LED ! Il ne faut pas être trop pressé et y aller doucement.

Si vous avez parcouru les pages qu’on trouve sur ces sujets, souvent écrites par des spécialistes pointus dans ce domaine, on reste toujours un peu sur sa faim quand on a fini de lire et qu’on regarde son Raspberry Pi avec une moue dubitative. Ce n’est pas le cas ici. Je regarde le Raspberry Pi qui est à côté de moi et qui me fait un petit signe qui semble vouloir dire « alors on y va ? » 😀

Même si la route semble longue encore, j’espère bien un des jours (de ces semaine ou de ces mois 😉 ) vous proposer un article sur la rédaction d’un driver sous Raspbian. Le livre de John m’accompagnera forcément dans cette aventure.

Le livre est disponible chez Amazon en version numérique (~37$) ou en version papier (~45$).

Sources

 

 

À propos François MOCQ

Électronicien d'origine, devenu informaticien, et passionné de nouvelles technologies, formateur en maintenance informatique puis en Réseau et Télécommunications. Dès son arrivée sur le marché, le potentiel offert par Raspberry Pi m’a enthousiasmé j'ai rapidement créé un blog dédié à ce nano-ordinateur (www.framboise314.fr) pour partager cette passion. Auteur de plusieurs livres sur le Raspberry Pi publiés aux Editions ENI.

3 réflexions au sujet de « Développer des Device Drivers pour Linux »

    1. Franck R.

      Merci pour l’info, commandé au format papier avec version électronique offert, le 22/11 et reçu le 5/12. Téléchargeable au format PDF et ePub.

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Complétez ce captcha SVP *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.