Cómo recompilar el kernel de Linux
Dado que Windows generalmente se instala en computadoras y todo el proceso de compilación debe implementarse en un entorno Linux, es mejor instalar Linux en una máquina virtual para completar este proceso. La máquina virtual que estoy usando es VMware-workstation-full-v7.1.4.
Luego, necesitamos descargar una versión superior del archivo de imagen del sistema Linux e instalarla en la máquina virtual como entorno de compilación. Estoy usando ubuntu-11.04-desktop-i386. Se eligió la versión superior porque tiene una interfaz más fácil de usar.
Luego descargue los archivos fuente del kernel de Linux y guárdelos en el sistema recién instalado en la máquina virtual. Luego extráigalo al directorio /usr/src. Estoy usando Linux-2.6.36 y la razón para descargar la versión inferior es que es pequeña, liviana y fácil de compilar.
El comando de descompresión es el siguiente:
bzip2 -d linux-2.6.36.tar.bz2
tar -xvf linux-2.6.36.ta
Modifique el archivo /usr/src/linux-2.6.36/kernel/sys.c y agregue una función de llamada al sistema al final del archivo. Escriba usted mismo un programa sencillo, sólo con fines de prueba.
Modifique /usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S para configurar el número de llamada del sistema para el programa recién agregado.
Configure la tabla de llamadas del sistema en /usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h.
Lo siguiente es la compilación e instalación del kernel más importante:
Primero, configure la información de compilación para generar un Makefile adecuado para la máquina actual escribiendo make oldconf ig.
Luego, también debes escribir make menuconfig y realizar las modificaciones menores necesarias en la interfaz del personaje.
Hay cuatro pasos de compilación (simplemente escriba el comando):
(1) make bzImage
Compile el kernel en una imagen comprimida y guárdelo en el archivo "System.map" en el directorio raíz de su código fuente.
(2) crear módulos
compilar módulos.
(3)sudo make module_install
Instalar módulos
(4)sudo make install
Instalar kernel
El tiempo de espera en los pasos (2) y (3) es largo y puede tardar varias horas, así que tenga paciencia.
Si no hay errores, reinicie GRUB y verá el kernel recién compilado.
Presione Enter para ingresar el kernel de destino que compilamos y use la búsqueda de palabras clave para verificar si la llamada al sistema recién agregada "my call" ya está en el kernel:
Escriba un programa de prueba para llamar a la nueva llamada al sistema agregada:
Una prueba exitosa significa que la llamada al sistema se agregó exitosamente y luego el kernel se compiló exitosamente.
Puedes probar el método anterior, espero que te ayude.