Pilote de périphérique sous Linux
Table des matières
Introduction
Le sujet de ce projet est de créer un pilote de périphérique factice sous un noyau Linux 2.6. Etant donné que l'on n'accédera pas directement à un vrai périphérique, nous utiliserons la mémoire centrale afin de simuler son comportement. Ainsi, lorsque l'on écrira vers le périphérique, notre pilote devra enregistrer ces données, et être capable de nous les restituer lors d'une prochaine lecture. Il est à noter que l'écriture se fera dans un fichier spécial différent de celui de la lecture, et que notre pilote devra être capable de gérer ainsi plusieurs paires de fichiers spéciaux (une par périphérique).Lors de son chargement, le pilote devra prendre en compte deux paramètres:
- DeviceName, est le préfix du nom du périphérique apparaissant dans le répertoire /dev (car on utilise le système DevFS)
- DeviceCount, est le nombre de paires de périphériques que l'on utilisera.
insmod dummy.ko DeviceName="VinMart" DeviceCount=3
crw-rw-rw- 1 root root 253, 1 1970-01-01 01:00 /dev/VinMart_R0 crw-rw-rw- 1 root root 253, 3 1970-01-01 01:00 /dev/VinMart_R1 crw-rw-rw- 1 root root 253, 5 1970-01-01 01:00 /dev/VinMart_R2 crw-rw-rw- 1 root root 253, 0 1970-01-01 01:00 /dev/VinMart_W0 crw-rw-rw- 1 root root 253, 2 1970-01-01 01:00 /dev/VinMart_W1 crw-rw-rw- 1 root root 253, 4 1970-01-01 01:00 /dev/VinMart_W2
En ce qui concerne ce rapport, nous ne nous attarderons pas sur "comment faire un pilote de périphérique sous Linux", puisqu'il s'agirait ni plus ni moins de paraphraser le cours. En revanche, nous nous pencherons dans les sections suivantes sur ce que l'on considère spécifique à notre travail personnel. Enfin, nous invitons le lecteur à consulter la page de Doxygenation du source dummy.c pour tout ce qui concerne la description de notre code, ainsi que la page de Doxygenation de l'entête dummy.h pour tout ce qui concerne les structures de données et les variables globales.
- Avertissement:
- Il faudra bien éviter la confusion entre les périphériques et les fichiers spéciaux. Ce qui veut dire qu'il y a DeviceCount périphériques pour 2xDeviceCount fichiers spéciaux.