Lanzamiento del kernel 3.12: instalación y compilación en Debian Linux


Uno de los mayores atractivos del uso de Linux es su fácil personalización y una de las cosas más divertidas de personalizar es el propio Kernel, el corazón del sistema operativo Linux. Lo más probable es que nunca tenga que compilar su propio kernel. El que se envía con su distribución y actualizaciones a través de su sistema de administración de paquetes suele ser lo suficientemente bueno, pero hay ocasiones en las que puede ser necesario recompilar el kernel.

Algunas de estas razones pueden ser necesidades especiales de hardware, el deseo de crear un kernel monolítico en lugar de uno modular, optimizar el kernel eliminando controladores inútiles, ejecutar un kernel de desarrollo o simplemente para aprender más sobre Linux. En este caso, vamos a compilar un Kernel 3.12 recientemente lanzado, en Debian Wheezy. El Kernel 3.12 recientemente lanzado tiene varias características nuevas, incluidos algunos controladores nuevos para NVIDIA Optimus y el controlador de gráficos Radeon Kernel. También ofrece grandes mejoras al sistema de archivos EXT4 y algunas actualizaciones a XFS y Btrfs.

Cómo compilar e instalar el Kernel 3.12 en Debian

Para empezar, necesitaremos algunos paquetes, a saber, fakeroot y kernel-package:

# apt-get install fakeroot kernel-package

Ahora, tomemos un tarball fuente más reciente de www.kernel.org o puede usar el siguiente comando wget para descargarlo.

# wget -c https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.tar.xz

Ahora, descomprimamos el archivo.

# tar -xvJf linux-3.12.tar.xz

Después de la extracción, se creará un nuevo directorio de fuentes del kernel.

# cd linux-3.12

Ahora, querremos configurar el kernel. Es mejor comenzar con una configuración que esté utilizando actualmente y trabajar desde allí. Para hacer esto, copiaremos la configuración actual del directorio/boot al directorio de trabajo actual y la guardaremos como .config.

# cp /boot/config-`uname –r`.config

Para comenzar con la configuración real, tiene una de dos opciones. Si tiene X11 instalado, puede ejecutar make xconfig y tener un menú GUI agradable para ayudarlo a configurar su Kernel. Si está ejecutando en un entorno CLI, puede ejecutar make menuconfig. Necesitará el paquete libncurses5-dev instalado para usar menuconfig:

# apt-get install libncurses5-dev
# make menuconfig

Como verá, una vez que esté en la configuración de su elección, hay un montón de opciones diferentes disponibles para su Kernel. De hecho, hay demasiados para el alcance de este tutorial. Al seleccionar las opciones del Kernel, la mejor manera es mediante prueba y error, y haciendo muchas búsquedas en Google. Es la mejor forma de aprender. Si simplemente está intentando actualizar su Kernel a la versión más reciente, no tiene que cambiar nada y simplemente puede seleccionar "Guardar configuración". Dado que copiamos el archivo de configuración del kernel actual al archivo .config del nuevo kernel.

Tenga en cuenta que "Cargador de módulos del núcleo" está seleccionado en "Compatibilidad con módulos cargables". Si no es así, y está utilizando módulos del kernel, puede estropear seriamente las cosas.

Una vez que esté en orden, es hora de limpiar el árbol de origen.

# make-kpkg clean

Finalmente, es hora de construir el paquete del kernel.

# export CONCURRENCY_LEVEL=3
# fakeroot make-kpkg --append-to-version "-customkernel" --revision "1" --initrd kernel_image kernel_headers

Como verá arriba, hemos exportado una variable llamada CONCURRENCY_LEVEL. Una regla general con esta variable es establecerla como la cantidad de núcleos que tiene su computadora + 1. Por lo tanto, si está utilizando un núcleo cuádruple, debería:

# export CONCURRENCY_LEVEL=5

Esto acelerará enormemente el tiempo de compilación. El resto del comando de compilación se explica por sí mismo. Con fakeroot, estamos creando paquetes de kernel (make-kpkg), agregando una cadena para nombrar nuestro kernel ("customkernel"), dándole un número de revisión ("1") y le estamos diciendo a make-kpkg que construya un paquete de imagen y un paquete de encabezado. Una vez finalizada la compilación, y dependiendo de su máquina y la cantidad de módulos que esté compilando, puede llevar bastante tiempo, cambiar los directorios a uno desde el directorio fuente de Linux y debería ver dos nuevos archivos * .deb: un archivo de imagen de linux y un archivo de encabezados de linux:

Ahora puede instalar estos archivos como instalaría cualquier archivo * .deb con el comando dpkg.

# dpkg -i linux-image-3.12.0-customkernel_1_i386.deb linux-headers-3.12.0-customkernel_1_i386.deb

El nuevo kernel, dado que es un paquete Debian, actualizará todo lo que necesite, incluido el gestor de arranque. Una vez instalado, simplemente reinicie y seleccione el nuevo kernel de su menú GRUB/LiLO.

Asegúrese de prestar mucha atención a cualquier mensaje de error durante el proceso de arranque para que pueda solucionar cualquier problema. Si, por alguna razón, su sistema no arranca, siempre puede volver a su último Kernel en funcionamiento e intentarlo de nuevo. El kernel no funcional siempre se puede eliminar con el comando apt.

# sudo apt-get remove linux-image-(non-working-kernel)