ubiquitour.com

Cómo compilar un Driver de dispositivo de Linux

Cómo compilar un Driver de dispositivo de Linux

El kernel de Linux carga controladores de dispositivos y es el núcleo del sistema operativo en todas las versiones de Linux. Controladores de dispositivo se cargan automáticamente por hardware compatible en distribuciones más basadas de APT y RPM. Si su hardware no se carga automáticamente y el fabricante proporciona un controlador de dispositivo, se puede instalar manualmente. Módulos compilados pueden ser cargados y agrega inmediatamente a la configuración de kernel. Código fuente debe compilarse primero usando las cabeceras del kernel o el código fuente completo.

Instrucciones

Compilación de un módulo

1 Descargar el código fuente para el módulo del kernel.

2 Escriba el siguiente comando en una ventana de terminal para instalar las cabeceras del kernel:

RPM en base las distribuciones: su - c 'yum install kernel-devel'

APT en base las distribuciones: sudo apt-get instala linux-headers-$(uname-r)

Utilice el comando correcto para tu versión de Linux. Asegúrese de escribir los comandos exactamente como se indica entre comillas simples.

3 Escriba el siguiente comando para cambiar al directorio del código fuente:

CD /home/myuser/modulecode

Cambio "/ home/myuser/modulecode" a la ubicación del código fuente de módulo.

4 Escriba el comando siguiente para crear un "fichero makefile:"

VI Makefile

Esto abre el editor de texto vi y crea el archivo makefile. El "hacer" comando utiliza el archivo make para compilar el módulo.

5 Introduzca las siguientes seis líneas de código en el editor de texto:

obj-m = mymodule.o

KVERSION = $(shell uname - r)

todos:

make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules

limpiar:

make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

Reemplace "mimodulo" con el nombre del módulo que estás compilando. Guardar el archivo y salir de vi.

6 Escriba el comando siguiente para compilar el módulo:

hacer

7 Escriba los siguientes comandos para cargar y descargar el módulo:

Carga: su -c 'insmod mymodule.ko'

Descarga: su -c 'rmmod mimodulo'

Reemplazar "mimodulo" con el nombre del módulo que se carga o descarga.

Cargar módulos automáticamente en el arranque

8 Escriba el siguiente comando en una ventana de terminal:

su -c 'mkdir -p /lib/modules/$(uname-r)/kernel/drivers/mymodule'

Reemplace "mimodulo" con el nombre del módulo. Este comando crea un directorio para almacenar el módulo.

9 Escriba el comando siguiente para copiar el módulo en el directorio nuevo:

su - c ' cp /modulepath/mymodule.ko /lib/modules/$(uname-r)/kernel/drivers/mymodule /'

Reemplazar "modulepath" y "mimodulo" con el nombre correcto de la ruta de acceso y módulo.

10 Escriba el comando siguiente:

su - c ' vi/etc/modules'

Este comando abre el archivo de configuración del módulo de todo el sistema para la edición.

11 Agregue lo siguiente al final del archivo:

mimodulo

Reemplace "mimodulo" con el nombre del módulo. Cierre y guarde el archivo. Los cambios tendrán efecto la próxima vez que se reinicia el sistema. Ya no será necesario cargar y descargar el módulo manualmente.