Re: créer un /dev/xxx

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: guilde
Subject: Re: créer un /dev/xxx
Le vendredi 11 février, à 15h01 (+0100), Fabien Blanc-Paques a écrit :
> J'ai développé une petite appli en C permettant de piloter un écran LCD, et
> j'aimerais créer un /dev/xxx afin de pouvoir envoyer un message vers ce
> périphérique.
>
> par exemple: echo "vive linux" > /dev/lcd
>
> Si quelqu'un peut m'expliquer comment fonctionnent les /dev/xxx (je crois
> que c'est une communication par pipes), je suis vraiment preneur, et si vous
> avez des liens vers des exmples, c'est encore mieux !!!


En général ce ne sont pas des pipes mais des fichiers spéciaux, c'est à
dire des fichiers qui te font en fait communiquer avec un pilote de
périphérique qui est dans le noyau.

Dans ton cas, il est peut-être plus simple en effet d'utiliser un pipe.
Ça te permettra d'utiliser ton appli (processus utilisateur) en guise de
pilote de périphérique, au lieu d'aller programmer dans le noyau. Tu
crées le device avec "mkfifo /dev/lcd". Ton appli n'a plus qu'à lire en
permanence ce fifo et à recopier ce qu'il lit dans le LCD. Remarque
qu'il te fadra peut-être taper
    echo "Vive Linux" >> /dev/lcd
(Ça semble être le cas avec tcsh).


Ou alors tu peux essayer de faire un « vrai » pilote. Le bouquin
« Linux Device Drivers » <http://www.ora.com/catalog/linuxdrive/> peut
t'intéresser, ainsi que la doc du LDP :
* La section « Device Drivers » du Linux Kernel Hackers' Guide
<http://www.guilde.asso.fr/miroirs/LDP/LDP/khg/HyperNews/get/khg.html>
* Le Linux Kernel Module Programming Guide
<http://www.guilde.asso.fr/miroirs/LDP/LDP/lkmpg/mpg.html>.
Ce dernier contient un exemple de pilote en mode caractère, il te
suffira peut-être de l'adapter.

-- 
Edgar Bonet                         Tel :    +1 607 255-9349
LASSP -- Cornell University         Fax :    +1 607 255-6428
Clark Hall                          e-mail : edgar@???
Ithaca, NY 14853, USA               http://bonet.polycnrs-gre.fr/~edgar/