 
 
 
 
 
 
 
 
 
 
A veces tiene sentido dividir el módulo del núcleo en varios ficheros de código. En este caso, tienes que hacer lo siguiente:
 nombre del módulo
nombre del módulo .o
.o 
         primer fichero fuente
primer fichero fuente .o
.o  segundo fichero fuente
segundo fichero fuente .o.
.o.
He aquí un ejemplo de módulo de este tipo.
/* start.c 
 * Copyright (C) 1999 by Ori Pomerantz
 * 
 * "Hola, mundo" - la versión módulo del núcleo.
 * Este fichero incluye justamente la rutina de comienzo
 */
/* Los ficheros de cabeceras necesarios */
/* Estándar en los módulos del núcleo */
#include <linux/kernel.h>   /* Estamos haciendo trabajo del núcleo */
#include <linux/module.h>   /* Específicamente, un módulo */
/* Distribuido con CONFIG_MODVERSIONS */
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include <linux/modversions.h>
#endif        
/* Inicializa el módulo */
int init_module()
{
  printk("Hola, mundo - este es el núcleo hablando\n");
  /* Si retornamos un valor distinto de cero, significa
   * que init_module falló y el módulo del núcleo
   * no puede ser cargado */
  return 0;
}
/* stop.c 
 * Copyright (C) 1999 by Ori Pomerantz
 * 
 * "Hola, mundo" - la versión módulo del núcleo. Este 
 * fichero incluye justamente la rutina de parada.
 */
/* Los ficheros de cabeceras necesarios */
/* Estándar en los módulos del núcleo */
#include <linux/kernel.h>   /* Estamos haciendo trabajo del núcleo */
#define __NO_VERSION__      /* Este no es "el" fichero 
                             * del módulo del núcleo */
#include <linux/module.h>   /* Específicamente, un módulo */
#include <linux/version.h>   /* No incluido por 
                              * module.h debido  
                              * a __NO_VERSION__ */
/* Distribuido con CONFIG_MODVERSIONS */
#if CONFIG_MODVERSIONS==1
#define MODVERSIONS
#include <linux/modversions.h>
#endif        
/* Limpieza - deshacemos todo aquello que hizo init_module */
void cleanup_module()
{
  printk("La vida de un módulo del núcleo es corta\n");
}
# Makefile para un módulo multiarchivo del núcleo CC=gcc MODCFLAGS := -Wall -DMODULE -D__KERNEL__ -DLINUX hello.o: start.o stop.o ld -m elf_i386 -r -o hello.o start.o stop.o start.o: start.c /usr/include/linux/version.h $(CC) $(MODCFLAGS) -c start.c stop.o: stop.c /usr/include/linux/version.h $(CC) $(MODCFLAGS) -c stop.c
 
 
 
 
 
 
 
 
