¡¡Compartenos!!

lunes, 9 de abril de 2012

OpenSuse - Actualizar kernel

Como compilar el kernel Linux en openSUSE



Cada distribucion posee algunas herramientas especificas para construir el kernel desde las fuentes. En este articulo voy a explicar como compilar Linux desde un sistema openSuSE. Se describe como construir un kernel personalizado a partir de las fuentes desde www.kernel.org (vanilla kernel) de manera de ser independiente del kernel proporcionado por la distribucion.
Esto es probado en openSUSE 11.3 “Teal” x86_64.
Antes que nada voy a decir que no es la unica manera de hacerlo, pero si es la que yo voy a usar y no aseguro que funcione para todos.





  1. Nota preliminar
  2. La idea aca es contruir un paquete rpm con el kernel que pueda ser instalado en cualquier sistema openSUSE, lo cual es una gran ventaja comparada con el metodo “tradicional” en el que solo queda para el sistema en el que se compilo.
  3. Instalar los paquetes requeridos para compilar el kernel
  4. Debemos instalar el paquete ncurses-devel el cual es requerido por el comando make menuconfig que utilizaremos mas tarde:
    Code:
    sharwyn:~ # zypper in ncurses-devel
  5. Descargar las fuentes del kernel
  6. Ahora hay que descargar las fuentes del kernel al directorio /usr/src. Asi que vamos a www.kernel.org y seleccionamos el kernel a instalar, por ejemplo linux-2.6.35.4.tar.bz2
    Code:
    sharwyn:~ # cd /usr/src
    sharwyn:/usr/src # wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.35.4.tar.bz2
    
    Una vez completada la descarga, desempaquetamos el codigo fuente y creamos un enlace simbolico a las fuentes:
    Code:
    sharwyn:/usr/src # tar xvfj linux-2.6.35.4.tar.bz2
    sharwyn:/usr/src # ln -s linux-2.6.35.4 linux
    sharwyn:/usr/src # cd /usr/src/linux
    
  7. Configuracion y compilacion del kernel
  8. Es una buena idea comenzar con la misma configuracion que tenemos en el kernel instalado actualmente, para esto ejecutaremos los siguientes comandos
    Code:
    sharwyn:/usr/src/linux # make mrproper
    sharwyn:/usr/src/linux # cp /boot/config-`uname -r` ./.config
    
    y luego comenzaremos la configuracion con el comando:
    Code:
    sharwyn:/usr/src/linux # make menuconfig
    
    aca hay que ir entre todas las opciones y es diferente para cada PC, asi que no voy a decir que cambiar, es deber de cada uno probar, una vez terminada la configuracion salimos guardando la configuracion e iniciamos la compilacion y creacion del paquete rpm con el comando:
    Code:
    sharwyn:/usr/src/linux # make rpm
    
    En este punto recomiendo ir por algo para tomar dado que demora un poco
  9. Instalacion del kernel
  10. El paquete rpm creado podra encontrarse en /usr/src/packages/RPMS/X donde X corresponde con la arquitectura del sisstema usado para compilar, en mi caso es /usr/src/packages/RPMS/x86_64, para instalarlo ejecutamos los comandos:
    Code:
    sharwyn:/usr/src/linux # cd /usr/src/packages/RPMS/x86_64
    sharwyn:/usr/src/packages/RPMS/x86_64 # rpm -ivh kernel-2.6.35.4default-vampird.x86_64.rpm
    
    Ahora hay que crear la imagen del kernel para poder iniciarlo, para esto utilizamos el comando:
    Code:
    sharwyn:/usr/src/packages/RPMS/x86_64 # mkinitrd
    este comando genera la imagen correspondiente para todos los kernel instalados en el sistema
    Una vez completado este paso solo resta crear la entrada en grub para poder iniciar el kernel recien compilado, para esto editamos el archivo /boot/grub/menu.lst y creamos una entrada similar a la siguiente
    Code:
    title Desktop -- openSUSE 11.3 - 2.6.35.4 VampirD
        root (hd0,0)    kernel /boot/vmlinuz-2.6.35.4-default-vampird root=/dev/sda1 resume=/dev/sda2 splash=silent quiet showopts vga=0x317
        initrd /boot/initrd-2.6.35.4-default-vampird

No hay comentarios:

Publicar un comentario