Réaliser son propre driver Linux, c'est pas sorcier !

 

Linux. Si ce mot fait partie de votre quotidien, c'est que vous avez choisi votre camp ! Ce système d'exploitation très puissant permet des développements sur-mesure infinis. Savoir réaliser un driver Linux est un moyen pour connecter des périphériques et donc une action récurrente dans vos développements. Quid de pourquoi et comment faire !

Ce webinar propose une approche simple pour permettre à chacun de comprendre et mieux appréhender comment développer son driver Linux. Pour réaliser un produit industriel par exemple, il sera probablement nécessaire d'intégrer ce driver, d'aller plus loin, de l'intégrer au kernell, de prendre en compte certaines contraintes : l'aspect basse consommation, l'endurance, la fiabilité...

 

Pourquoi choisir un système Linux embarqué ?

Pour fonctionner, les machines connectées d’aujourd’hui demandent un système embarqué de plus en plus puissant pour pouvoir proposer toujours plus d’intelligence. Pour ces machines qui demandent de la puissance, on va  naturellement se tourner vers un système Linux embarqué.

Contrairement à un microcontrôleur, qui est plus léger et que l’on doit entièrement customiser, le système Linux embarqué propose déjà une bonne base existante et permet d’être rapidement déployé et fonctionnel.

Un système Linux embarqué est composé d’une partie hardware, d’un noyau, le kernel, qui va faire le lien entre les différents périphériques et le hardware. Pour chaque périphérique à installer, il y a un driver spécifique à instaurer, avec un code spécifique lui aussi.

Chaque driver est un bout de code qui va permettre d’utiliser un périphérique hardware.

Dès lors que l’on a configuré un premier driver Linux, notre système peut déjà être fonctionnel en attendant d’en mettre d’autres au point pour compléter les fonctionnalités de notre produit.

Chez Rtone, nous travaillons beaucoup sur Linux. Par exemple, l’horodateur connecté de Flowbird embarque du Linux. Nos équipes ont du gérer certaines contraintes : très basse consommation (50mW en veille, réveil par le modem), fiabilité (et éviter le bouton on/off sur les milliers de kiosques disséminés dans la nature),... Nous avons également dû intégrer au kernel divers drivers comme le modem pour la connexion 4G, ainsi que d’autres drivers pour la vidéo ou encore les interfaces électroniques ou l'écran tactile...

Au cours de notre projet pour LACROIX City, nous avons également dû développer des drivers pour le contrôle des touches, les leds,...

 

Comment est fait un driver Linux ?

Le driver gère des ressources logicielles et matérielles. Les ressources matérielles sont par exemple les cartes d’extension, les périphériques (clock RTC, mémoire EEPROM). Le driver peut aussi allouer des ressources logicielles comme la mémoire physique ou la puissance de calcul.

Il existe 3 grandes familles de drivers :

Le plus courant, le driver en mode caractère: on échange des données de manière itérative. Il est le plus simple à mettre en œuvre, permet de dialoguer avec le périphérique en échangeant un nombre variable d'informations binaires (exemple d’utilisation : port série).

Le driver en mode bloc permet l’échange des informations avec les périphériques uniquement par blocs de données (exemple d’utilisation : le disque dur).

Il est donc spécifique pour manipuler un grand nombre de données.

Quant au driver réseau, il est lui, destiné à contrôler des ressources réseau.

 

Pour aller plus loin et savoir comment réaliser votre propre driver Linux, on vous laisse visionner cet extrait de webinar, avec l’exemple de faire clignoter une led.

 

 

Sinon, pour aller encore plus loin, vous pouvez retrouver le replay du webinar en entier ici.