Pasos para contribuir al Kernel de Linux
Uno de los proyectos de código abierto más grandes y de más rápido movimiento, el kernel de Linux, se compone de unos 53.600 archivos y casi 20 millones de líneas de código. Con más de 15.600 programadores contribuyendo al proyecto en todo el mundo, el núcleo Linux sigue un modelo de mantenedor para la colaboración.
En este artículo, proporcionaré una lista de comprobación rápida de los pasos necesarios para hacer su primera contribución al núcleo, y observaré lo que debe saber antes de enviar un parche. Para una mirada más profunda al proceso de envío para contribuir con su primer parche, lea el tutorial KernelNewbies First Kernel Patch.
Contribuyendo al núcleo
Paso 1: Prepare su sistema.
Los pasos de este artículo suponen que tiene las siguientes herramientas en su sistema:
- Editor de texto
- Cliente de correo electrónico
- Sistema de control de versiones (por ejemplo, git)
Paso 2: Descargue el repositorio de código del kernel de Linux:
git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
Copie su configuración actual:
cp /boot/config-`uname -r`* .config
Paso 3: Compilar / instalar el núcleo.
make -jX
sudo make modules_install install
Paso 4: Crea una rama y cambia a ella.
git checkout -b first-patch
Paso 5: Actualice su núcleo para que apunte a la base de código más reciente.
git fetch origin
git rebase origin/staging-testing
Paso 6: Realice un cambio en la base de código.
Recompile usando el comando make
para asegurarse de que su cambio no produzca errores.
Paso 7: Confirme sus cambios y cree un parche.
git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^
El sujeto consiste en la ruta al nombre del archivo separada por dos puntos, seguida de lo que hace el parche en el tiempo imperativo. Después de una línea en blanco viene la descripción del parche y la etiqueta obligatoria firmada y, por último, una diferencia de su parche.
Aquí hay otro ejemplo de un parche simple:
A continuación, envíe el parche mediante correo electrónico desde la línea de comandos (en este caso, Mutt):
mutt -H /tmp/0001-<whatever your filename is>
Para conocer la lista de mantenedores a los que enviar el parche, utilice el get_maintainer.pl guión.
Qué debe saber antes de enviar su primer parche
- Greg Kroah-Hartman’s staging tree es un buen lugar para enviar su primer parche, ya que acepta parches fáciles de nuevos colaboradores. Cuando se familiarice con el proceso de envío de parches, puede enviar parches específicos de subsistema con mayor complejidad.
- También puede comenzar corrigiendo los problemas de estilo de codificación en el código. Para obtener más información, lea la documentación del estilo de codificación del kernel de Linux.
- El script checkpatch.pl detecta errores de estilo de codificación por usted. Por ejemplo, ejecutar:
perl scripts/checkpatch.pl -f drivers/staging/android/* | less
- Puedes completar todos los que los desarrolladores hayan dejado incompletos:
find drivers/staging -name TODO
- Coccinelle es una herramienta útil para la coincidencia de patrones.
- Lea los archivos de correo del núcleo.
- Pasar por linux.git log para ver confirmaciones de autores anteriores en busca de inspiración.
- Nota: ¡No publique en la parte superior para comunicarse con el revisor de su parche! Aquí hay un ejemplo:
Camino equivocado:
Chris,
Sí, programemos la reunión mañana, en el segundo piso.
> El viernes, 26 de abril de 2013 a las 9: 25 AM, Chris escribió:
> Hey John, tenía algunas preguntas:
> 1. ¿Quieres programar la reunión de mañana?
> 2. ¿En qué piso de la oficina?
> 3. ¿A qué hora le conviene?(Observe que la última pregunta se dejó sin respuesta involuntariamente en la respuesta.)
Manera correcta:
Chris,
Vea mis respuestas a continuación…
> El viernes, 26 de abril de 2013 a las 9: 25 AM, Chris escribió:
> Hey John, tenía algunas preguntas:
> 1. ¿Quieres programar la reunión de mañana?
Sí mañana está bien.
> 2. ¿En qué piso de la oficina?
Mantengámoslo en el segundo piso.
> 3. ¿A qué hora le conviene?
09: 00 a. m. estaría bien.(Todas las preguntas fueron respondidas, y de esta manera se ahorra tiempo de lectura.)
- El desafío Eudyptula es una excelente manera de aprender los conceptos básicos del kernel.
Para obtener más información, lea el tutorial del primer parche de KernelNewbies. Después de eso, si todavía tiene alguna pregunta, pregunte en la lista de correo kernelnewbies o en el canal IRC # kernelnewbies.