Cómo agregar tus propios módulos al kernel
|----test
|---- cpu
|---- cpu.c
|---- prueba.c
|---- test_ client.c
| ---- test_ioctl.c
|---- test_proc.c
|---- test_queue.c
Para agregar un directorio al kernel y subdirectorios, necesitamos crear archivos Kconfig y Makefile para el nuevo directorio. Los archivos Kconfig y Makefile en el directorio principal del nuevo directorio también deben modificarse para que puedan hacer referencia a los nuevos archivos Kconfig y Makefile.
En el nuevo directorio de prueba, se debe incluir el siguiente archivo Kconfig:
#
#
# TEST Driver Configuration p>
#
Menú "Test Driver"
comentario "Test Driver"
config TEST
bool "TEST support "
config TEST_USER
tristate "TEST interfaz de espacio de usuario"
Depende de TEST
endmenu
Dado que el controlador de PRUEBA es una nueva función del kernel, primero debe crear un menú "controlador de PRUEBA" y luego mostrar "soporte de PRUEBA" y esperar a que el usuario seleccione y luego determinar si el usuario ha seleccionado el controlador de PRUEBA; y si es así (CONFIG_TEST =y), se muestran además las subfunciones: interfaz de usuario y soporte de función de CPU, dado que la función de interfaz de usuario se puede compilar en un módulo del kernel, la declaración de consulta aquí usa trieste.
Para que el archivo Kconfig funcione correctamente, es necesario modificar el archivo drivers/Kconfig y agregar el siguiente contenido:
fuente "drivers/test/Kconfig" p>
Script La fuente en indica que hace referencia al nuevo archivo Kconfig. El nuevo directorio de prueba debe contener el siguiente Makefile:
#drivers/test/Makefile
#
#Makefile de TEST
#
obj-$(CONFIG_TEST) += test.o test_queue.o test_client.o
obj-$(CONFIG_TEST_USER) += test_ioctl.o
obj- $(CONFIG_PROC_FS) += test_proc.o
obj-$( CONFIG_TEST_CPU) += cpu/
El script construye la lista obj-* en función de los valores de la configuración variables. Dado que el directorio de prueba contiene un subdirectorio cpu, el directorio de la cpu debe agregarse a la lista cuando CONFIG_TEST_CPU = y.
El directorio cpu en el directorio de prueba también debe contener el siguiente Makefile:
# drivers/test/cpu/Makefile
#
#
#Makefile de TEST cpu
#
obj-$( CONFIG_TEST_CPU) += cpu.o
Para cree el comando de compilación. Puede acceder a todo el directorio de prueba y también necesita agregar un archivo Makefile en el directorio principal del directorio de prueba:
obj-$( CONFIG_TEST) += test
Nuevo después de agregar los archivos Kconfig y Makefile El directorio del árbol de prueba es el siguiente:
|----test
|---- cpu
|---- cpu.c p>
|---- Makefile
|---- prueba.c
|---- prueba .c
|- --- prueba.c
|---- prueba.c
|---- test_client.c
|---- test_ioctl c
|---- test_proc.c
|---- test_queue.c
| ---- Makefile
|---- Kconfig