tengo tarjeta saber que para instalar dispositivo crear como actualizar linux module kernel driver device

tarjeta - ¿Cómo escribir una llamada al módulo de controlador de Linux/usar otro módulo de controlador?



como saber que tarjeta de video tengo en ubuntu (2)

Estoy desarrollando un módulo cargable de controladores Linux y tengo que usar otro dispositivo en mi controlador. (Tipo de controlador apilado en otro controlador)

¿Cómo llamo / uso otro controlador en mi controlador? Creo que ambos están en el kernel, por lo que podría haber una manera de que pueda usar otro controlador directamente.


Olvidó mencionar que también debe estudiar try_module_get / module_put / symbol_get / symbol_put / symbol_request, para garantizar la carga del otro módulo y el hecho de que no se descarga durante el uso. Sin embargo, no recuerdo los detalles exactos; Creo que modprobe se asegurará de que el otro módulo esté cargado, pero no estoy seguro de si se agregará la dependencia del tiempo de ejecución para la descarga. Supongo que esas API podrían ser necesarias para otros casos, pero es necesario conocerlos para verificar esto.

Por cierto, el libro gratuito Linux Device Drivers está disponible aquí, y responderá a esta pregunta y mucho más: http://lwn.net/Kernel/LDD3/


Necesitará la EXPORT_SYMBOL (o EXPORT_SYMBOL_GPL ). Por ejemplo:

/* mod1.c */ #include <linux/module.h> #include <linux/kernel.h> #include "mod1.h" .... void mod1_foo(void) { printk(KERN_ALERT "mod1_foo/n"); } EXPORT_SYMBOL(mod1_foo); /* mod2.h */ .... extern void mod1_foo(void); .... /* mod2.c */ #include <linux/module.h> #include <linux/kernel.h> #include "mod1.h" #include "mod2.h" int init_module(void) { mod1_foo(); ...

Esto debería ser sencillo, pero debe tener cuidado con el espacio de nombres, pisar los símbolos del módulo del kernel de otra persona sería desafortunado.