compilar modulo dentro del kernel.

Salvador Ortiz Garcia sog en msg.com.mx
Mar Ago 15 00:23:58 CDT 2000


On Mon, 14 Aug 2000, Ing. Romy Perez Moreno wrote:

> hola lista,
> 
> vuelvo a insistir con la pregunta, tengo el codigo en C del modulo para la
> NIC, como hago para compilarlo dentro del kernel y que no sea un modulo?

El volver a insistir no hace que pueda leer más rapido mi correo, así que
calma.

Bien, incluir un driver en el kernel no es trivial, pues la inicialización
de un módulo es distinta al proceso de prueba al arranque.

Basicamente y ademas de copias los fuentes de tu driver (*.[ch]), 
necesitas _modificar_ tres archivos en /usr/src/linux/drivers/net:

Config.in       # Para que el config te pregunte por NIC.
Makefile	# Para que tu driver sea compilado.
Space.c         # Para que el kernel sepa como buscar por tu NIC.

En Config.in necesitas insertar la pregunta por tu NIC asociandole un
macro con el que en Makefila agregas el codigo objeto a la lista L_OBJS y
en Space.c y mediante #ifdef's necesitas insertar en la estructura
<bus>_probes[] que le corresponda el nombre de la función xyz_probe de tu
tarjeta.

Asomate a esos archivos para que tengas una idea del asunto. 

En el sitio de donde bajaste el driver es probable que encuentres un
'patch' que automatiza el proceso.

Por otro lado, aún en una maquina diskless, seria mas cómodo hacer un
initrd que carge el módulo al boot, pues de algún lado tienes que
"bootear", no?    (c.f. /usr/src/linux/Documentation/initrd.txt)

Saludos

Salvador Ortiz


---------------------------------------------------------
para salir de la lista, enviar un mensaje con las palabras
"unsubscribe ayuda" en el cuerpo a majordomo en linux.org.mx



Más información sobre la lista de distribución Ayuda