GNU/Linux >> Linux Esercitazione >  >> Linux

Come scrivere un driver di dispositivo a blocchi Linux in spazio utente?

Controlla sempre il primo errore:

Nel tuo caso sembra un problema con i file include, ad es. request_queue_t non è definito.

Poiché si tratta di un tipo deprecato, probabilmente stai utilizzando una versione di linux/blkdev.h più recente dell'esempio di codice.

Prova ad aggiungere typedef struct request_queue request_queue_t;


Non esiste un modo "ufficiale" per bloccare i driver nello spazio utente, tuttavia le persone spesso lo fanno (ab) utilizzando il driver NBD per parlare su una rete di loopback con un demone che ascolta su un normale socket e parla il protocollo NBD. Consulta i documenti NBD per maggiori informazioni.

Il tuo esempio è per un dispositivo a blocchi in modalità kernel, che dovrà essere compilato come modulo del kernel. E poiché gli interni del kernel cambiano continuamente, è presumibilmente ora incompatibile.


Seguendo il suggerimento di MarkR, è persino possibile comunicare il protocollo NBD tramite un AF_UNIX coppia di socket, quindi non è necessario alcun demone locale aggiuntivo. Il programma che implementa questo protocollo dovrà impostare la coppia di socket e eseguire il fork di un figlio. Sia il genitore che il figlio chiudono un'estremità della coppia di socket. Uno di loro inizia a ricevere richieste alla sua estremità del socket mentre l'altro connette il driver NBD alla sua estremità del socket.


Linux
  1. Come installare un driver di dispositivo su Linux

  2. Come scrivere testo sull'immagine usando il comando Linux

  3. Linux:in che modo il kernel Linux conosce i numeri maggiori e minori del dispositivo?

  4. Driver di dispositivo Linux IOCTL

  5. Come trovare il driver (modulo) associato a un dispositivo su Linux?

Come monitorare il tuo laptop Linux

Comando Lsblk in Linux (Elenca dispositivi a blocchi)

Come bloccare una porta utilizzando un firewall in Linux

Come scrivere ed eseguire un programma C in Linux

Esercitazione NBD su Linux:Guida di avvio rapido del dispositivo a blocchi di rete

Come scrivere su una webcam virtuale in Linux?