Inicio > Linux, Software, Tutoriales > Compilar la ultima version del Kernel

Compilar la ultima version del Kernel

domingo, 15 de enero de 2012

Hace unos pocos dias salió la última versión del kernel, la versión 3.2 que incorpora estos arreglos, para que lleguen al sistema de paquetes de la distribución que estés usando puede tardar un tiempo, además puedes parcharlo para arreglar cosas como el bug donde el aircrack-ng siempre permanece en canal –1, eso último lo explicaré en otro post.

El Kernel compilado será usado en Linux Mint, derivada de Ubuntu que a su vez es derivada de Debian, así que el kernel es compatible con esas tres distro.

Primero debes ir a http://kernel.org y descargar el código fuente de la última versión, en este caso bajaré la versión 3.2, para eso hay que hacer clic en “Full Source”

image

Descargar el kernel

cd /usr/src
sudo wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.tar.bz2
tar xvjf linux-3.2.tar.bz2
cd linux-3.1.5/

Ahora hay que configurar el kernel agregandole los modulos que uno va a usar, primero copiamos la configuracion del kernel actual

sudo cp /boot/config-`uname -r` ./.config
sudo make menuconfig

En el último comando puedes agregar módulos al kernel para soportar dispositivos y funciones adicionales. Si luego de compilado te falta algún módulo repite el comando cd /usr/src… luego sudo make menuconfig, habilitas el módulo que falte y compilas de nuevo, para no comenzar desde 0 no ejecutes el comando make-kpkg clean.

Para la primera compilación limpiamos y luego finalmente compilamos

sudo make-kpkg clean
sudo fakeroot make-kpkg –initrd –append-to-version=-alexisabarca kernel-image kernel-headers

(antes de initrd y append-to-version van guiones dobles, asegúrate de copiarlos así)

Ahora espera que se compile, puede tardar por lo menos 30 minutos dependiendo de la velocidad del procesador. La parte en negrita la debes cambiar por un nombre que identifique tu kernel, en el grub y para el sistema se llamará linux-image-3.2-alexisabarca siguiendo el ejemplo anterior.

Luego de finalizada la compilacion puedes instalar tu nuevo kernel y reiniciamos para iniciar el sistema con él

cd /usr/src
sudo dpkg -i *.deb
reboot

(Antes de i va un guión simple)

Finalizado!, ya estás corriendo tu propio kernel  y la última versión del mismo. No desinstales el kernel obtenido de los repositorios o junto a la distro por si tienes problemas o te faltan módulos. En ese último caso debes ingresar a la configuración nuevamente, agregar el módulo que falta, compilar nuevamente, desinstalar el kernel y volver a instalarlo.

Este procedimiento lo probé exitosamente en mi computador corriendo Linux Mint Katya, debería funcionar en otra distro con sistema de paquetes deb.

  • felipe

    Hola muy buen aporte, en cuanto a la instruccion sudo make-kpkg clean, m marca un error, “sudo: make-kpkg: command not found”, eso a q se debe. en cuanto al menu q sale para escoger la configuracion, deberias de dar una configuracion promedio para cualqier makina, lo digo porq habemos muchos q no sabemos y q estamos comensando.
    y pos la instuccion: sudo fakeroot make-dpkg –initrd –append-to-version=-HaRrY kernel-image kernel-headers
    /usr/bin/fakeroot: línea 176: make-dpkg: orden no encontrada
    me sale ese error. seria mucho pedir tu ayuda. gracias por todo

  • Midway

    Gracias, muy buen aporte

  • jeronimo

    hola como estas esta muy bueno el tutorial , me sale este error, sabes cual es el problema.chau gracias
    jeriko@jeriko-desktop:~/Descargas/linux-3.2.1$ sudo fakeroot make-kpkg –initrd –append-to-version=-enya kernel-image kernel-headers
    Error: Unknown target –initrd Unknown target –append-to-version=-enya
    use –targets to display help on valid targets.
    jeriko@jeriko-desktop:~/Descargas/linux-3.2.1$

    • Alexis Abarca

      Los parámetros initrd y append-to-version van precedidos por doble guión (–), WordPress seguramente los reemplazó por un guión largo, asi que debes hacer ese reemplazo antes de ejecutar el comando