Creación de kernels personalizados con el sistema de empaquetado de kernels de Debian | ||
---|---|---|
Anterior | Siguiente |
Esta es la parte que mas tiempo tarda. Si posee un ordenador antiguo con un procesador lento puede llevarle incluso horas, por ello se provee la facilidad de crear el kernel en un ordenador rápido y luego copiarlo al ordenador lento. Esta parte no se cubrirá en este documento. Yo construí el kernel 2.2.19 en un pentium 120 con 128 MB de RAM y tardó unos 20-25 minutos.
Para crear el kernel se utilizará el programa make-kpkg. Antes de empezar se debe primero ver que son las revisiones y los flavours. Para obtener una información mas amplia se puede consultar la documentación que se instala con este paquete.
![]() | make-kpkg es parte del paquete "kernel-package". Los documentos mas importantes se pueden localizar en /usr/share/doc/kernel-package/. Una buena idea es consultar su manual con man make-kpkg. |
La revisión es una opción que se le pasa a make-kpkg, con la que se añade información extra al nombre del kernel que se va a crear. Esto tiene su importancia porque ayudará a mantener kernels distintos y a saber distinguirlos, sobre todo si se utiliza dselect o apt-get. Una cosa importante a recordar es que solamente se pueden utilizar caracteres alfanuméricos y el signo "+" para definir la revisión. Los guiones bajos "_" no se pueden utilizar. Además se puede preceder al nombre de la revisión con un dígito seguido de dos puntos ":".
A lo largo de este tutorial se utilizará como ejemplo la siguiente revisión --revision=custom.1.0 kernel_image. También se podría preceder al nombre con dos puntos ":".
![]() | Si desea utilizar la forma --revision=1:custom.1.0 kernel_image por favor lea antes /usr/share/doc/kernel-package/README. Esta acción provoca una marca de tiempo. Ahora mismo la discusión de ello se escapa al ámbito de este documento. |
![]() | Por favor lea /usr/share/doc/kernel-package/README si no entiende algo de esto o quiere agregar otras opciones. |
Los flavours tienen en común con las revisiones que añaden información extra al nombre del paquete. Tienen el mismo convenio para nombrarlos que las revisiones (caracteres alfanuméricos, "-" "+" "."). No use mayúsculas o guiones bajos. La razón principal para usar la opción de flavour es cuando va a compilar un kernel con el mismo número de versión que el que está actualmente corriendo.
![]() | PRIMERO se necesitará hacer un "make-kpkg clean" si desea recompilar el kernel usando la opción de flavour. Al utilizar flavour pueden aparecer conflictos de módulos que le creará problemas |
Si siguió el consejo que se le dió antes y consiguió una versión diferente del kernel
que la que esta corriendo, no tiene que preocuparse de la opción de flavour. Si no tiene
elección consulte la documentación sobre los flavours. Se espera que en futuras versiones
de este documento trate mejor este tema. Si posee conocimientos sobre esto y le gustaría
contribuir por favor contacte conmigo en
<newbiedoc-discuss@lists.sourceforge.net>
.
![]() | Lea /usr/share/doc/kernel-package/Flavours si esta compilando un kernel con la misma versión que la que esta corriendo. Puede encontrar la versión del kernel que tiene corriendo mirando al final de esta página. |
![]() | Puede conseguir un kernel sin utilizar la opción flavour si está dispuesto a deshacerse de sus módulos antiguos y sobreescribir su actual kernel. No se recomienda esto porque si comete un error su única solución es un disquete de arranque (si es que tiene uno), y reparar algunas cosas utilizando unas herramientas con las que probablemente no esté familiarizado. Si es aventurero y quiere intentarlo pues adelante, pero tenga en cuenta que debe hacer backup de sus datos mas importantes y tener a mano un disquete de arranque. |
Lo primero antes de compilar el kernel es hacer un disquete de arranque. De esta manera si algo va mal todavía se tiene la oportunidad de arrancar el ordenador y repararlo, sin tener que reinstalar el sistema. Para crear un disquete de arranque simplemente busque un disquete que no piensa borrar y escriba esto como usuario root:
bash# mkboot ruta_al_kernel |
Cambie ruta_al_kernel con la ruta absoluta hacia el kernel que quiere utilizar, por ejemplo /boot/vmlinuz-2.2.17. El directorio /boot contiene su kernel actual (a no ser que lo haya colocado en otro sitio). vmlinuz es el nombre de su kernel y la versión se le añade a este. Si ha compilado un kernel anteriormente puede tener el nombre de bzImage o zImage.
Por fin ha llegado el momento. Ya está todo listo para crear la imagen del kernel y sus módulos. Ejecute los siguientes comandos como usuario normal:
bash$ cd /usr/src/linux bash:/usr/src/linux$ make-kpkg --revision=custom.1.0 kernel_image |
No cambie kernel_image con la versión de su kernel. El comando se debe escribir exactamente como se indica, a no ser que decida ponerle otro número de revisión.
Ahora todo lo que tiene que hacer es esperar a que su ordenador termine de compilar.
![]() | Si ha utilizado este documento antes para crear un kernel empaquetado deberá cerciorarse de que incrementa el número de revisión. Por ejemplo, podría cambiar el número de revisión a 1.1 o 2.0. Se necesita hacer esto porque dpkg no actualizará su versión previa del kernel al observar que tienen el mismo número de revisión y pensará que es la misma. También deberá renombrar el directorio que contiene los módulos del actual kernel, por ejemplo a 2.2.19-old. Los módulos están en /lib/modules/. |