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.