GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menulis driver perangkat blok linux userspace?

Selalu perhatikan kesalahan pertama:

Dalam kasus Anda, sepertinya ada masalah dengan menyertakan file, mis. request_queue_t tidak ditentukan.

Karena ini adalah jenis yang tidak digunakan lagi, Anda mungkin menggunakan versi linux/blkdev.h yang lebih baru dari contoh kode.

Coba tambahkan typedef struct request_queue request_queue_t;


Tidak ada cara "resmi" untuk melakukan blok driver di ruang pengguna, namun orang sering melakukannya dengan (ab) menggunakan driver NBD untuk berbicara melalui jaringan loopback ke daemon yang mendengarkan pada soket normal dan menggunakan protokol NBD. Lihat dokumen NBD untuk info selengkapnya.

Contoh Anda adalah untuk perangkat blok mode-kernel, yang perlu dibangun sebagai modul kernel. Dan karena internal kernel selalu berubah, mungkin sekarang tidak kompatibel.


Mengikuti saran MarkR, bahkan dimungkinkan untuk membicarakan protokol NBD melalui AF_UNIX pasangan soket, jadi tidak diperlukan daemon lokal tambahan. Program yang mengimplementasikan protokol ini perlu menyiapkan pasangan soket dan mencabut anak. Kedua orang tua dan anak menutup salah satu ujung pasangan soket. Salah satunya mulai menerima permintaan di ujung soketnya sementara yang lain menghubungkan driver NBD ke ujung soketnya.


Linux
  1. Cara Menulis Teks Pada Gambar menggunakan Perintah Linux

  2. Linux:Bagaimana Menemukan Driver Perangkat yang Digunakan Untuk Perangkat?

  3. Linux – Bagaimana Kernel Linux Mengetahui Nomor Mayor dan Minor Perangkat?

  1. Cara menginstal driver perangkat di Linux

  2. Cara membuat perangkat blok virtual (perangkat loop/sistem file) di Linux

  3. Bagaimana cara menulis file dengan C di Linux?

  1. Linux – Bagaimana Menguji Apakah Perangkat Blok Apakah Hanya-Baca Dari /sys Atau /proc?

  2. Pengandar perangkat IOCTL Linux

  3. Bagaimana menemukan driver (modul) yang terkait dengan perangkat di Linux?