Cómo compilar el Kernel de Linux en diferentes distribuciones GNU/Linux

    Entre las razones existentes para compilar un kernel tenemos: Eres un desarrollador del kernel, necesitas compilar un kernel con alguna característica especial que un kernel oficial de tu distro no tiene, te estás preparando para corregir un bug en el kernel oficial de tu distro y tienes hardware que el kernel oficial de tu distro no soporta. Existen muchas maneras de compilar el kernel (casi una por cada distribución). Esto significa que para cada distro, ya sea basada en Red Hat, Debian o Slackware, debemos documentarnos muy bien antes de comenzar tan importante tarea, porque si se nos queda algún módulo excluido o incluido sin necesidad podría generar conflictos e incluso no funcionar correctamente.

    Todo el proceso se puede resumir en los siguientes pasos generales para todas las distros:

    1.Obtener las fuentes del kernel.
    2.Instalar las herramientas necesarias para la compilación (gcc, build-essentials, etc.).
    3.Descomprimir las fuentes del kernel en /usr/src/
    4.Configurar el kernel (ej. make menuconfig).
    5.Compilar (make), compilar los módulos (make modules), instalar los módulos, (make modules_install).
    6.Instalar el kernel compilado (make install).
    7.Crear la imagen (initrd) para el nuevo kernel y ajustar grub para que la encuentre.

    Este proceso puede ser una excelente manera de ajustar nuestro sistema para que soporte nuevo hardware o para hacerlo más liviano quitando, cuidadosamente, módulos que no utilizaremos. De cualquier manera es recomendable que aparte de esta guía busques la ayuda de personas más experimentadas si tienes una buena razón para hacerlo, aún si lo haces por puro placer o aprendizaje.

    A continuación veremos cómo compilarlo en algunas distribuciones más usadas.

    Compilar el Kernel en Fedora/CentOS y otras derivadas

    Paso 1: Instalar algunos dependencias o prerequisitos

    su -c 'yum groupinstall “Development Tools”'su -c 'yum install ncurses-devel qt-devel unifdef'

    Paso 2: Descargar las fuentes de kernel.org del estable más reciente (2.6.36)

    cd /tmpwget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2Paso 3: Descomprimir las fuentes.

    mkdir /usr/src/linuxtar -xjvf linux-2.6.36.tar.bz2 /usr/src/linuxcd /usr/src/linuxPaso 4: Configurar el Kernel.

    Hay varias formar de hacer la configuración que querramos:

    •make menuconfig: Menú basado en texto y diálogos a colores.

    •make xconfig: Gráfico (Qt), de uso preferible en KDE.

    •make gconfig: Gráfico (Gtk), de uso preferible en Gnome.

    Paso 5: Compilar el Kernel.

    Compilar para crear una imagen comprimida del Kernel

    makeCompilar los módulos del Kernel

    make modulesInstalar los módulos

    make modules_installPaso 6: Instalar el Kernel

    make installPaso 7: Modificar grub para que asuma el nuevo Kernel.

    nano /boot/grub/grub.confY una vez en el editor, escribir lo siguiente (suponiendo que la partición del sistema es (hd0,0), es decir, la primera de todas y que además está en el primer disco duro. En caso de que este no sea tu escenario, debes cambiar convenientemente ese parámetro. así como los parámetros VolGroup00 y LogVol00, como detallan aquí).

    #boot=/dev/sda
    default=1
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title CentOS (2.6.35.4)
         root (hd0,0)
         kernel /vmlinuz-2.6.35.4 ro root=/dev/VolGroup00/LogVol00
         initrd /initrd-2.6.35.4.img
    title CentOS (2.6.36)
         root (hd0,0)
         kernel /vmlinuz-2.6.36 ro root=/dev/VolGroup00/LogVol00
         initrd /initrd-2.6.36.img

    Y finalmente reiniciamos

    shutdown -r now


    Compilar el Kernel en Debian/Ubuntu

    Paso 1: Instalar algunos dependencias o prerequisitos:

    sudo apt-get install build-essential gcc libncurses5-dev

    Paso 2: Descargar las fuentes de kernel.org del estable más reciente (2.6.36. )

    cd /tmpwget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.tar.bz2

    Paso 3: Descomprimir las fuentes.

    mkdir /usr/src/linuxtar -xjvf linux-2.6.36.tar.bz2 /usr/src/linuxcd /usr/src/linux

    Paso 4: Configurar el Kernel.

    Hay varias formar de hacer la configuración que querramos:

    •make menuconfig: Menú basado en texto y diálogos a colores.

    •make xconfig: Gráfico (Qt), de uso preferible en KDE.

    •make gconfig: Gráfico (Gtk), de uso preferible en Gnome.

    Paso 5: Compilar el Kernel.

    Compilar para crear una imagen comprimida del Kernel

    makeCompilar los módulos del Kernel

    make modulesInstalar los módulos

    make modules_installPaso 6: Instalar el Kernel

    make install

    Paso 7: Crear la imagen initrd.

    La imagen initrd contiene los controladores de dispositivos necesarios para cargar el resto del sistema operativo. No todas las computadoras requieren esto pero no está demás crearla.

    cd /bootmkinitrd -o initrd.img-2.6.36 2.6.36

    Paso 8: Modificamos grub para que asuma el nuevo Kernel añadiendo lo siguiente.

    nano /boot/grub/menu.lstY una vez en el editor, escribimos lo siguiente (como en el caso anterior, tenemos que tener cuidado con la partición donde tenemos el sistema y, por tanto, donde tenemos el kernel y demás ficheros del sistema de arranque)

    title           Ubuntu GNU/Linux, kernel 2.6.36 Default
         root           (hd0,0)
         kernel       /boot/vmlinuz root=/dev/hda1 ro
         initrd        /boot/initrd.img-2.6.36
         savedefault
         boot


    Otra forma menos delicada de hacer este paso es con un comando que actualiza el archivo menu.lst y lo ajusta de forma automática.

    update-grubY finalmente reiniciamos

    shutdown -r now

    Fuente: MuyLinux

    Noticias Linux y más

    Cómo contribuir al desarrollo del Software Libre: Una guía para principiantes

    Comunidades de Software Libre y Open SourceEl software libre ha transformado la tecnología moderna, ofreciendo herramientas poderosas y accesibles para millones de personas en todo el mundo. Pero, ¿alguna vez te has preguntado cómo puedes formar parte de esta comunidad y contribuir a su crecimiento? Aunque pueda parecer intimidante al principio, cualquiera puede sumarse, incluso si no tienes conocimientos avanzados en programación. En esta guía, te explicaremos cómo empezar a contribuir al software libre de manera efectiva.

    Leer más...

    ¿Cuál será el futuro de Java respecto a Python?

    Java versus pythonJava y Python han dominado el mundo de la programación durante décadas, cada uno con sus propias fortalezas y debilidades. Java, conocido por su robustez y fiabilidad en sistemas empresariales, contrasta con la versatilidad y simplicidad de Python, que lo ha llevado a ser el favorito en campos emergentes como la inteligencia artificial y el aprendizaje automático. Pero ¿cuál será su futuro?

    Leer más...

    ¿Por qué KDE Plasma sigue liderando como la mejor opción de escritorio para Linux?

    KDE Plasma el mejor escritorio para LinuxEn el competitivo mundo de los entornos de escritorio para Linux, KDE Plasma ha mantenido su liderazgo como una de las opciones más completas, personalizables y eficientes. Este entorno, conocido por su equilibrio entre funcionalidad avanzada y rendimiento, sigue siendo una elección destacada tanto para usuarios avanzados como para principiantes.

    Leer más...

    Please publish modules in offcanvas position.