Red de conocimiento informático - Material del sitio web - Para realizar programación del kernel en Ubuntu, ¿qué paquete se debe instalar? ¿Cómo hacerlo?

Para realizar programación del kernel en Ubuntu, ¿qué paquete se debe instalar? ¿Cómo hacerlo?

1. gcc (compilador de C)

Instalar apt-get install gcc

2. make (herramienta de mantenimiento del código fuente, puede detectar automáticamente la necesidad de recompilar). los archivos fuente y vuelva a compilar el programa de acuerdo con las reglas de compilación que establezca)

Instale apt-get install make

3.kernel-source (paquete fuente del kernel. Puede usar apt-cache search kernel-source busca el paquete de código fuente del kernel y usa el comando uname -r para ver la versión actual del kernel del sistema, y ​​luego usa apt-get install kernel-source-xxxx para instalar el paquete de código fuente del kernel que es consistente con su versión del kernel)

Si no desea recompilar el kernel, no es necesario descargar el paquete de código fuente del kernel kernel-source.

4.kernel-headers (paquete de archivos de encabezado del código fuente del kernel, ya sea que desee desarrollar módulos del kernel o desarrollo de controladores, este paquete debe estar instalado. Porque como escritor de módulos del kernel, generalmente llama a algo en el kernel , como archivos de encabezado del kernel, declaraciones de estructura de datos del kernel, etc.

Contiene algunos archivos clave de encabezado del kernel)

Instalar apt-cache search kernel-headers

uname -r

apt-get instakk kernel-headers -xxxx

5.kernel-kbuild (usado para compilar módulos del kernel. Después de descargar e instalar este paquete, encontrará que hay un directorio adicional que comienza con kernel-kbuild-xxxx en el directorio /usr/src. Allí son solo el directorio de scripts, que son algunos scripts utilizados para compilar los módulos del kernel)

Instalar apt-cache search kernel-kbuild

uname -r

apt- get instale kernel-kbuild-xxxx

6.build-essential (contiene una lista de información sobre paquetes que desempeñan un papel clave en la creación de paquetes deb. Si no desea crear paquetes deb, no necesita para instalar esta lista. )

Instale apt-get install build-essential

7.kernel-package (Si desea utilizar la imagen del kernel como un paquete deb, debe instalarlo). este paquete)

Instala apt-get install kernel-package

8.initrd-tools (si quieres hacer una imagen initrd del proceso de inicio, este paquete es esencial)

p>

Instalar apt-get instakk initrd-tools

Supongamos que escribe un programa de módulo del kernel, el código fuente es el siguiente:

/* hola.c */

#include

#include

#include

static int hello_init(void)

{

printk(KERN_ALERT "Hola, módulo del kernel de Linux

");

devuelve 0;

}

vacío estático hello_exit(void)

{

printk(KERN_ALERT " Adiós, he creado un módulo del kernel de Linux con éxito

");

}

module_init(hello_init);

module_exit( hello_exit);

MODULE_LICENSE("GPL");

Necesitas escribir un archivo MAKE con este programa fuente, el contenido es el siguiente:

#Makefile para el archivo hello.c

#

KERNEL_DIR:=/usr/src/linux

obj-m:=hello.o

predeterminado:

$( MAKE) -C $(KERNEL_DIR) SUBDIRS=$(PWD) módulos

limpio:

$(RM) .*. cmd *.mod.c *.o *.ko -r .tmp

Nota: KERNEL_DIR aquí se refiere al directorio encima del directorio donde se encuentra el archivo de encabezado del código fuente del kernel, que generalmente se refiere al kernel directorio del código fuente.

registro. Este directorio generalmente incluye arch, drivers, fs, include, init, ipc, kernel, lib, mm, net, scripts, usr, sound, security y otros directorios.

En este ejemplo, /usr/src/linux es un enlace que apunta al directorio /usr/src/kernel-headers-2.6.8-3.

Después de escribir el archivo MAKE, puede ingresar el comando make para generar el módulo del kernel hello.ko y luego puede usar:

insmode hello.ko

comando para agregar el módulo Kernel y luego use:

rmmod hello

para eliminar el módulo kernel.