¿Cómo crear archivos de encabezado del kernel de Linux para el desarrollo de módulos del kernel a partir del árbol de código fuente de Linux?
shana@shana:~$ uname -r
2.6.22-14-generic
Si instala Cuando el sistema esté instalado, el código fuente se instalará automáticamente. Hay un directorio correspondiente a la versión utilizada en el directorio /usr/src. Por ejemplo (lo hice yo mismo)
shana@shana:/usr/src$ ls
linux-headers-2.6.22-14
linux- encabezados -2.6.22-14-generic
linux-source- 2.6.22
linux-source-2.6.22.tar.bz2
shana@ shana :/usr/src$
Si no tienes el código fuente. (Usualmente ubuntu no lo tiene).
Ver el paquete de código fuente descargable (no use este comando como superusuario, de lo contrario...
shana@shana:/usr /src$
Elegí linux-source-2.6.22: el código fuente del kernel de Linux de la versión 2.6.22, incluidos los parches de Ubuntu ~
Luego instálelo
shana@shana:/usr/src$ sudo apt-get install linux-source-2.6.22
Una vez completada la descarga, en /usr/src, el nombre del archivo es: linux-source- 2.6.22.tar.bz2, es un paquete comprimido Después de la descompresión, puede obtener el código fuente de todo el kernel:
Tenga en cuenta que ha cambiado al modo de superusuario
root@shana: /usr/src#tar jxvf linux-source-2.6.20.tar.bz2
Después de la descompresión, se creará un nuevo directorio /usr/src/linux-source-2.6.22 , todas las fuentes El código está en este directorio.
Ingrese al directorio
Comience a configurar el kernel y elija la forma más rápida de configurar el kernel original (predeterminado) (esto es lo que hice). )
root@shana:/usr/src/linux-source-2.6.22# make oldconfig
Por supuesto, también puedes configurar el kernel a tu manera, como menuconfig, menuconfig y menuconfig Por supuesto, también puedes usar tu configuración favorita, como menuconfig, xconfig (debes tener un entorno GTK, ¿verdad?) En resumen, no tienes que cortar nada, así que puedes configurarlo. como quieras.
Después de completar, comienza la producción. El tiempo de producción aquí suele ser relativamente largo, aproximadamente 1 hora (asegúrate de tener suficiente espacio. Usé 1.8G después de la compilación). 30G de espacio en el directorio /, pero no hay espacio. Este problema Yo no encontré este problema, pero mi amigo
shana@shana: /usr/src/linux-source-2.6. .22$ make
shana@shana:/usr/src/linux-source-2.6.22$ make bzImage
Por supuesto, no es necesario crear bzImage para primer tiempo.
Por supuesto, también puedes crear solo bzImage sin ejecutar la primera creación. Una vez completada la ejecución, puede ver que se crea un nuevo archivo en el directorio actual: vmlinux con el atributo -rwxr-xr-x.
Entonces:
root@shana:/usr/src/linux-source-2.6.22#make module
root@shana:/usr/src /linux-source-2.6.22#make module_install
Después de la ejecución, se creará un nuevo directorio /lib/modules/2.6 en /lib/modules -generic/
22. -14. El directorio de compilación bajo esta ruta se utilizará para la compilación de archivos de módulo posteriores. En este punto, se completa la compilación del kernel. Puede reiniciar el sistema.
El árbol del núcleo ya está construido.