Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo agregar tus propios módulos al kernel

Cómo agregar tus propios módulos al kernel

Supongamos que deseamos crear el siguiente directorio de árbol para el controlador de prueba en el directorio del controlador fuente del 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

#

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"

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

|---- Makefile

|---- prueba.c

|---- prueba .c

|- --- prueba.c

|---- prueba.c

|---- test_client.c

|---- test_ioctl c

|---- test_proc.c

|---- test_queue.c

| ---- Makefile

|---- Kconfig