que estoy tratando de desarrollar controladores de dispositivos Linux y como mi primer intento Estoy tratando de desarrollar un controlador de dispositivo carbón que tiene las siguientes opciones de archivo,¿Cómo crear un dispositivo en/dev automáticamente al cargar el módulo kernel para un controlador de dispositivo?
struct file_operations fops{
.open=open_fun,
.release=release_fun,
.write=write_fun,
.read=read_fun,
};
Cuando cargo el controlador utilizando insmod
, veo que /proc/devices
enumera el controlador en dispositivos Char pero no puedo encontrarlo en /dev
. Una búsqueda en Google sugirió el uso de mknod
para crear una división en /dev
y asociarla con las principales y menores del controlador. Sin embargo, un intento de hacerlo dio como resultado el error "Permiso denegado" incluso cuando se realizó como un superusuario.
¿Qué debo hacer para que el dispositivo aparezca en /dev
cuando se carga el módulo kernel? Intenté tanto el más viejo (register_chrdev
) como la versión más nueva (cdev_init & cdev_add
) de registrar el dispositivo pero ninguno de ellos funciona.
Gracias,
Mir
Ver también: http://stackoverflow.com/questions/5970595/create-a-device-node-in-code/ – Eugene
Posible duplicado de [¿Cómo crear un nodo de dispositivo desde el código init \ _module de un módulo kernel de Linux?] (https://stackoverflow.com/questions/5970595/how-to-create-a-device-node-from-the-init-module-code-of-a-linux-kernel-module) –