linux linux-kernel kernel

linux - Declaración implícita de la función ''create_proc_entry''



linux-kernel kernel (1)

Estoy tratando de usar la función create_proc_entry () para crear un directorio bajo / proc. Cuando intento compilar el código, aparece el siguiente error: declaración implícita de la función ''create_proc_entry''.

Estos son los encabezados que he incluido en mi archivo .c:

#include <linux/module.h> #include <linux/kernel.h> #include <linux/proc_fs.h> #include <linux/string.h> #include <linux/vmalloc.h> #include <linux/uaccess.h>

La versión del kernel en la máquina que estoy tratando de compilar es: 3.10.33-g7954807-dirty

¿Me faltan los encabezados necesarios para llamar a este método? ¿O está el método en desuso en mi versión del kernel?


El sistema de archivos / proc ha sido refactorizado en 3.10, la función que está buscando ha sido eliminada, debe usar la familia de funciones proc_create con proc_create funciones. Tenga en cuenta que las firmas son diferentes.

Versión 3.10: http://lxr.free-electrons.com/source/include/linux/proc_fs.h?v=3.10

Versión 3.9: http://lxr.free-electrons.com/source/include/linux/proc_fs.h?v=3.9

Puede encontrar una explicación más detallada sobre el uso de funciones / proc con todas las funciones en el libro Linux Device Drivers 4 o, si desea una solución más breve, consulte este enlace ( https://github.com/jesstess/ldd4/blob/master/scull/main.c ) donde se puede ver cómo se ha utilizado la struct file_operations . No tiene que configurar todos los campos de la estructura.