martes, 12 de febrero de 2013

Creando parches para el kernel de Linux


Como parte del producto de mi trabajo de maestría en Computación, he requerido generar un parche para el kernel de Linux. El proceso es muy sencillo, y no es muy diferente al crear un parche de cualquier archivo o directorio común y corriente, utilizando el comando diff. Resumo el proceso en 3 pasos.

1. Preparar los directorios

Debes tener un directorio con el kernel vanilla y otro directorio con el kernel modificado. Por supuesto, deben corresponder a la misma versión. En mi caso, estoy trabajando con la versión 3.2.1, y he nombrado linux-3.2.1 a mi kernel modificado y linux-vanilla-3.2.1 al kernel vanilla.

Ambos kernels los tengo en el directorio /usr/src, pero esto no es necesario, pueden estar en un directorio cualquiera.

2. Limpiar ambos directorios

Asumiendo que los kernels se encuentran en /usr/src, basta con ejecutar:
cd /usr/src/linux-3.2.1
make mrproper
make clean
cd ../linux-vanilla-3.2.1
make mrproper
make clean

3. Generar el parche

Finalmente, usamos el comando diff para generar el parche:
cd /usr/src/
diff -Nur linux-vanilla-3.2.1 linux-3.2.1 > patch-3.2.1

¡Y eso es todo! El archivo patch-3-2.1 es nuestro parche.

NOTA: al usar el comando diff, el orden es importante, primero va el kernel vanilla y luego el modificado, no al revés.