Cómo compilar e instalar el último Kernel (3.12.1) en CrunchBang Waldorf / Debian Wheezy

Desde que soy user de Linux, o GNU/Linux, allá por el año 2004 de nuestro señor, es la primera vez que compilo un kernel para la distro que estoy usando. Osease, es la primera vez que uso un custom kernel.

En mi caso ha salido todo correcto y los pasos a seguir no son complicados para una compilación estándar.

El proceso ha sido realizado en CrunchBang Waldorf, o lo que es lo mismo, Debian Wheezy. Arquitectura 64-bit.

Kernel-Compilation-in-Debian

Veamos pues…

Algunas notas y advertencias:

El proceso se ha llevado a cabo sobre el siguiente Hardware.

Lenovo H520S

  • -Intel Core i5-3330 a 3.0GHz
  • -Memoria RAM 8GB DDR3 1600Mhz
  • -Disco duro 500 GB SATA 7200 rpm
  • -Intel HD Gráficos 2500
  • -VGA
  • -HDMI
  • -USB 2.0

He seguido los pasos, con alguna variación y corrección, del sitio tecmint.com: Kernel 3.12 Released – Install and Compile in Debian Linux

No tengo en el kernel cosas raras, lo uso tal y como lo entrega CrunchBang, lo único extra que tengo instalado son los build-essential y los linux-headers correspondientes a la versión del kernel que trae CrucnhBang Waldorf, la 3.2.0-4. Revisen por aquí para saber como tenerlo además de otras herramientas.

ADVERTENCIA: Los usuarios de Nvidia y ATI con los drivers propietarios instalados lo tendrán más complicado, deberán instalar los drivers en el nuevo Kernel, creo, no me pregunten sobre eso.

La ventaja de usar Intel es que los drivers son libres y van en el propio Kernel, y no hay que preocuparse al cambiar de rama del núcleo. Lo mismo que si usáis los drivers libres para Nvidia o ATI.

En el tutto original se trabaja con la versión 3.12 del kernel, como ya está la 3.12.1 trabajaremos con esta última.

El proceso, posterior instalación y uso, ha sido llevado con éxito en mi equipo. Que me funcione a mi no significa que le funcione a todos. Solo para valientes, no me hago responsable de posibles problemas en sus distros.

Al lío que se va el tío!!!

El kernel 3.12.x trae muchas mejoras, entre ellas para Nvidia Optimus, Radeon Kernel Graphics Driver, y mejoras en el sistema de archivos EXT4, y algunos cambios en XFS y Btrfs.

Cómo compilar e instalar el kernel 3.12.x en Debian y CrunchBang:

Lo primero, instalamos algunos paquetes necesarios. Con sudo o como root:

$ sudo apt-get install fakeroot kernel-package

Ahora nos descargamos el último tarball del kernel desde www.kernel.org, podemos hacerlo desde la propia terminal usando wget para descargarlo.

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

Se nos irá a nuestra /home, descomprimimos el paquete y nos dará una carpeta llamada linux-3.12.1.

Ahora entramos a esa carpeta desde la terminal y como root, usen para eso las propias opciones de su navegador de archivos o desde la propia terminal naveguen hasta el directorio.

Ahora vamos a configurar el kernel. Lo mejor es comenzar con la configuración que esté utilizando en su kernel y trabajar desde ahí. Para ello, vamos a copiar la configuración actual del directorio /boot en el directorio de trabajo actual (linux-3.12.1)y guardarla como .config.

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

Captura del archivo generado .config.

config

Para comenzar con la configuración real, tenemos dos opciones. Si tenemos instalado X11 podemos ejecutar make xconfig, y tendríamos un menú GUI agradable para ayudarnos a configurar el kernel (esta opción no me ha funcionado).

Si estamos ejecutando en un entorno CLI, podemos ejecutar make menuconfig. Necesitaremos el paquete libncurses5-dev instalado para utilizar menuconfig. (esta es la opción que me ha funcionado)

Instalamos y ejecutamos:

# apt-get install libncurses5-dev
# make menuconfig

custom-1

Como se puede observar, una vez que estemos en la configuración del kernel, las opciones son a nuestra elección, hay un montón de diferentes opciones disponibles para nuestro kernel. De hecho, hay demasiadas para nombrarlas en este tutorial.

Para seleccionar las opciones del kernel, la mejor manera es por ensayo y error, haciendo un montón de búsquedas en Google, es la mejor manera de aprender.

Si solo estamos tratando de actualizar el kernel a la versión más reciente, no tenemos que cambiar nada, y simplemente hay que seleccionar “Guardar configuración” (Save). Dado que hemos copiado el archivo de configuración del kernel actual al archivo de configuración del kernel nuevo, tendremos nuestro custom kernel con la misma configuración.

config

Hay que tener en cuenta de que esté seleccionada la opción “Kernel module loader” en “Loadable module support“. Si no lo está, y estamos utilizando los módulos del kernel, podríamos seriamente liar las cosas. (en mi caso venía marcado por defecto)

kernel-config

Los más entendidos podrán activar o desactivar opciones en el kernel según les haga o no falta 😉

Una vez hecho este paso, es el momento de limpiar el árbol de código fuente.

# make-kpkg clean

Por último, es el momento de compilar el kernel.

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

NOTA: Si estás usando un procesador de 4 núcleos, para acelerar el compilado del kernel puedes usar la opción:

# export CONCURRENCY_LEVEL=5

El resto de los comandos de compilación son bastante auto-explicativos. Con fakeroot, estamos haciendo los paquetes del kernel (make-kpkg), anexando una cadena para nombrar nuestro kernel (“customkernel“), que le da un número de revisión (“1“) y le estamos diciendo a make-kpkg que cree a la vez un paquete de imagen (linux-image) y un paquete de las cabeceras del kernel (linux-headers).

Una vez que la compilación está terminada, y en función del equipo y el número de módulos que se esté compilando, puede tardar bastante tiempo. Nos vamos al directorio donde se nos ha creado los paquetes de nuestro custom kernel Linux, si hemos seguido el tutto estarán en nuestra /home, y veremos ambos archivos .deb. Un archivo linux-image y otro archivo linux-headers.

yoyo - Administrador de archivos_002

Ahora solo debemos instalarlos con # dpkg -i *.deb, por ejemplo.

custom-7

En mi caso, al instalar el nuevo kernel vemos un aviso del firmware-realtek que se soluciona instalando el firmware en este nuevo kernel en caso de que sea necesario. La tarjeta de red me funciona perfectamente, solo es un aviso que después no me sale en el inicio del CrunchBang 😉

Nuestro nuevo kernel al instalarse creará automáticamente una nueva entrada en el GRUB y para iniciar con el solo debemos seleccionarlo durante el inicio.

GRUB

Después de iniciar con nuestro costum kernel debemos prestar atención a los mensajes de error, si los hubiera, durante el proceso de arranque, para que podamos solucionar los problemas en caso de haberlos. Si por cualquier razón nuestro sistema no arranca, siempre podemos recurrir a nuestro último Kernel y vuelva a intentarlo.

El kernel no funcional siempre se puede quitar con el comando apt estando en el kernel que si funcione.

# apt-get remove linux-image-(versión-kernel, versión headers)

Y ahora unas capturas del compilado del kernel 3.12.1 donde vemos que no he tenido ningún error. En mi máquina el proceso de compilado no ha tardado mucho, el tiempo dependerá de la potencia de vuestra máquina 😉

custom-2

custom-4

custom-6

Y finalmente aquí vemos a mi CrunchBang Waldorf / Debian Wheezy, usando el nuevo Kernel 3.12.1, con las ventajas que supone, sobre todo en una máquina moderna como mi Lenovo, saltar del Kernel 3.2.0 al 3.12.1 🙂

custom-final

Hazlo por ti mismo, en Linux es posible 😉

ACTUALIZACIÓN: Después de haber creado e instalado nuestro customkernel no se olviden de borrar la carpeta de trabajo, en este caso la carpeta del kernel llamada linux-3.12.1, pues el espacio que ocupa después de haber creado el kernel estará entre los 8 y 10 GB. Si notan que tienen menos espacio en la /home es por eso. También es recomendable vaciar la papelera del root, yo gané casi 20 GB haciendo esas dos cosas.

Anuncios

42 comentarios en “Cómo compilar e instalar el último Kernel (3.12.1) en CrunchBang Waldorf / Debian Wheezy

    • @Antonio

      Las mejoras, al menos las más destacadas, las he citado en el artículo. ¿Beneficios? los que repercuten de las mejoras y la satisfacción personal de tener un kernel compilado por ti.

      Aunque ya se sabe, esto es opcional para quien nos gusta “tocatear” si te va bien en tu kernel, no toques 😉

      Saludos!

      Me gusta

  1. Los usuarios de nvidia, tienen que instalar el driver en el nuevo núcleo, lo que ocurre es que haciendolo de la forma habitual en debian, “apt-get install nvidia-drivers”, no siempre es efectivo.
    Yo siempre me bajo el de la página de nvidia (de camino el más actualizado) y lo instalo con un simple: ./NVIDIA…….
    * Respecto al driver ati, nunca he utilizado, no puedo decir nada.

    Me gusta

    • @eliotime

      A mi el 3.2.0 de CB tampoco me daba problemas, al contrario, iba y va perfecto.

      Pero ya sabes que nos gusta experimentar y como mi hardware es reciente he querido meterle el kernel más reciente 😉

      Saludos!

      Me gusta

    • @vicktor

      Como solo ha sido una actualización del kernel no ha sido complicado, lo más difícil es si ya quieres activar o desactivar módulos, entonces tienes que adentrarte en las opciones del kernel y saber lo que hacer 😉

      Saludos!

      Me gusta

  2. No compilen kernel(excepto para aprobar la materia Sistemas Operativos quienes estudien sistemas) a menos que sepan qué módulos cargar,cuales activar,cuales no…etc;si lo sabes , tendrás un kernel liviano y muy eficiente para tus necesidades,pero si no,tendrás un kernel igual al que por defecto trae tu OS .
    Está bien saber cómo se hace,pero lo que en verdad es importante en el asunto es ‘toqutear’ el kernel.

    Me gusta

  3. Yo he hecho la prueba en una máquina bajo virtualbox, aviso, que hace falta mucho espacio en hd, tenía asignado 10Gb y lo he tenido que subir al doble. Además es que en la primera prueba como sin estar pendiente, cuando he ido a verlo había salido de la máquina, y luego no me mejaga logearme, había llenado el hd. Una vez duplicado ha funcionado todo perfecto.
    Gracias, yoyo.

    Me gusta

  4. Instale Debian Wheezy 7.3 y me lanze a seguir este post. Realmente todo me funciono todos los pasos, la compilación duro 4 horas, no encontré ningún inconveniente en un portátil acer con AMD dual C-50, 4GB de memoria, radeon 6250, hdmi. Al reiniciarlo arranco bien pero no funcionaba la red inalámbrica. Si me puedes orientar para solucionar esto te lo agradecería. Gran aporte como dije todos los pasos funcionaron perfectamente. gracias

    Me gusta

  5. hola Yoyo y a todos los apasionados a linux,dos días después investigando encontré una solución para la red inalámbrica que no funciono después del proceso de compilación del kernel. Dicha solución implica volver a compilar el kernel teniendo en cuenta unas entradas correspondientes a mi tarjeta inalámbrica atheros en el menuconfig. (La solución esta en este link http://wireless.kernel.org/en/users/Drivers/ath9k). Teniendo en cuenta la experiencia anterior puse a compilar el kernel antes de irme a dormir. Cuando me levante ya estaban los .deb listos para instalarlos. Los instale y reinicie y la red inalámbrica funciono perfectamente. Ahora tengo mi Debian 7.3 funcionando con el ultimo kernel perfectamente. Gracias por el aporte.

    Me gusta

  6. yoyo tengo una consulta, tengo de vuelta mi netbook con crunchbang y me dijeron que al intentar instalar algo desde synaptic les dio error, fui a hacer una prueba y al marcar por ejemplo xfce4 me lanza paquetes rotos el mismo xfce4…es un error o xfce4 no se puede instalar en crunchbang?

    Me gusta

  7. Hola Yoyo, disculpa, instalar este kernel requiere instalar dependencias aparte de las que mencionaste? Yo tengo instalado el build essential y las linux headers, lo que sucede es que instalé debian Wheezy sin conexión a internet, ni mirrors, quizás me falten algunas, gracias :).

    Me gusta

    • @Alfonso

      No creo que la requiera.

      No obstante, mantén tu sistema actualizado antes de aplicar el tutto y por supuesto, aplicalo al kernel más actual, en el tutto se menciona el 3.12.1 pero ya va por el 3.12.10 y en la rama 3.13 por el 3.13.2

      Me gusta

  8. lo solucioné, se me olvidó dar permiso de root en la carpeta donde estaba el archivo descargado. Se instalo todo sin problemas, salvo que se me ha llenado el disco. He probado de vaciar las papeleras (la del root tambien) pero nada…¿algo que se me ha olvidado?

    Me gusta

  9. Yoyo. Si usas la misma configuración del kernel antiguo y no activas ni desactivas ningún módulo del kernel… ¿De que sirve compilar un Kernel? Para ello instalas una distro que tenga el kernel 3.12 o 3.18 y tema solucionado.

    Me gusta

  10. Si Yoyo. En esto estoy conforme. Pero el beneficio no lo obtienes por compilar un kernel. El beneficio lo tienes porqué usas un kernel más actual.

    Aunque compiles un kernel.. el kernel compilado es un kernel standard y no se debe decir que es un custom kernel. Es un kernel estandard y el rendimiento que obtendrás es el mismo que con un kernel estandard que lleva cualquier distro.

    Si no es así dilo. Porqué mis conocimientos no son nada del otro mundo.

    Me gusta

    • No te quito razón pues la llevas.

      Tal y como menciono en el tutto, es actualizar el kernel con la misma configuración

      Lo de customkernel es una manera de llamarlo, actualmente los llamo yoyokernel.

      Ahora pongámonos en este ejemplo, si con el kernel 3.16.3 de Debian testing,que es mi actual Debian, me va todo el hardware perfecto, pues me compilo el nuevo kernel 3.18.2 que acaba de salir con la misma config que el 3.16.3 que tengo de los repos de Debian y el cual dejo como kernel secundario por si las moscas.

      Osease, tengo 2 kernels con la misma config pero uno es más moderno con nuevo soporte por ejemplo para los nuevos sistemas de archivos y nuevo software, además de mejor soporte para el mismo hardware aún conservando la misma configuración que mi kernel de Debian

      Así lo veo yo.

      Un saludo

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s