GNU/Linux >> Tutoriels Linux >  >> Linux

Comment écrire un pilote de périphérique de bloc linux en espace utilisateur?

Regarde toujours la première erreur :

Dans votre cas, cela ressemble à un problème avec les fichiers inclus, par ex. request_queue_t n'est pas défini.

Comme il s'agit d'un type obsolète, vous utilisez probablement une version de linux/blkdev.h plus récente que l'exemple de code.

Essayez d'ajouter typedef struct request_queue request_queue_t;


Il n'y a pas de moyen "officiel" de créer des pilotes de bloc dans l'espace utilisateur, mais les gens le font souvent en (ab)utilisant le pilote NBD pour parler via un réseau de bouclage à un démon qui écoute sur un socket normal et parle le protocole NBD. Consultez les documents NBD pour plus d'informations.

Votre exemple concerne un périphérique bloc en mode noyau, qui devra être construit en tant que module noyau. Et comme les composants internes du noyau changent constamment, il est probablement maintenant incompatible.


Suivant la suggestion de MarkR, il est même possible de parler du protocole NBD sur un AF_UNIX paire de sockets, aucun démon local supplémentaire n'est donc nécessaire. Le programme implémentant ce protocole devra configurer la paire de sockets et débrancher un enfant. Le parent et l'enfant ferment une extrémité de la paire de sockets. L'un d'eux commence à prendre les requêtes à son extrémité du socket tandis que l'autre connecte le pilote NBD à son extrémité du socket.


Linux
  1. Comment écrire du texte sur une image à l'aide de la commande Linux

  2. Linux :Comment trouver le pilote de périphérique utilisé pour un périphérique ?

  3. Linux - Comment tester si un périphérique bloc est en lecture seule depuis /sys ou /proc ?

  4. Linux – Comment trouver le pilote (module) associé à un périphérique sous Linux ?

  5. Comment créer un périphérique de bloc virtuel (périphérique de boucle/système de fichiers) sous Linux

Comment suivre votre ordinateur portable Linux

Commande Lsblk sous Linux (liste des périphériques de bloc)

Comment bloquer un port à l'aide d'un pare-feu sous Linux

Comment écrire et exécuter un programme C sous Linux

Tutoriel Linux NBD :Guide de démarrage du périphérique de bloc réseau

Comment écrire sur une webcam virtuelle sous Linux ?