Blog de Linux, Redes Cisco, Iron Maiden y algo de mi vida….

Compilar Kernel en Ubuntu

A veces es necesario compilar un kernel en Ubuntu, ya sea para agregar nuevas funcionalidades a nuestro Ubuntu o por alguna necesidad específica. Estos son los pasos:

1. Descargar las herramientas necesarias

sudo apt-get install linux-kernel-devel linux-source build-essential pkg-config ncurses-dev qt3-apps-dev qt3-assistant qt3-designer qt3-dev-tools qt3-doc qt3-qtconfig

2. Descargar el kernel de aquí. En la página principal nos muestra la última versión estable del kernel. Debemos descargar donde esta la letra F. Para este ejemplo usaremos el kernel 2.6.27

3. Una vez descargado, descomprimimos el archivo en la carpeta /usr/src

sudo cp /Escritorio/linux-2.6.27.tar.bz2 /usr/src

cd /usr/src

sudo tar xjf linux-2.6.27.tar.bz2

4. Ahora configuramos el kernel:

cd linux-2.6.27

sudo make xconfig

5. Aquí nos aparecerá un configurador gráfico del kernel, donde podemos agregar o quitar modulos que necesitemos. Si queremos basarnos en la configuración anterior damos click en load y seleccionamos el archivo de configuracion de nuestro kernel actual (o el que queramos) llamado config-nombrekernel

Luego cargamos los modulos que queramos que tenga nuestro nuevo kernel, por ejemplo el de soporte para Toshiba (o el que quieras, obviamente!)

Una vez hecho esto guardamos el archivo como “.config”.

6. Ejecutamos estos comandos en consola:

sudo su

make

make modules

make modules_install

Ahora puedes ir a ver esa película que tanto te gusta, o si lo prefieres ir a jugar Final fantasy o The legend of Zelda porque esto toma bastante tiempo (yo me demoré mas o menos 3 horas en este paso). Esto es totalmente desatendido, a menos que algo haya salido mal.

7. Una vez terminado, copiamos nuestro nuevo kernel a /boot

sudo cp arch/i386/boot/bzImage /boot/vmlinuz-nombrekernel

8. (Corregido gracias a Walter Riedemann) Debemos crear el correspondiente fichero initrd

sudo mkdir /lib/firmware/nombrekernel
sudo mkinitramfs -o /boot/initrd.img-nombrekernel nombrekernel

9. Modificamos nuestro Grub y agregamos el nuevo kernel

sudo gedit /boot/grub/menu.lst

Aqui debemos encontrar algo parecido a esto

title Ubuntu 8.04, kernel nombrekernel
root (hd0,?)
kernel /boot/vmlinuz-nombrekernel root=UUID=???????-????-????-????-?????????????? ro quiet splash
initrd /boot/initrd.img-nombrekernel
quiet

Debemos copiar y pegar exactamente esto justo antes de la primera vez que veamos estas líneas en dicho archivo, y modificamos donde dice “nombrekernel” por el kernel que acabamos de compilar, para que quede agregado en la lista del grub. Los símbolos de ? son generados por cada instalación, por lo que son únicos y debes copiar los que te aparezcan en el grub. 

Hecho esto guardamos el archivo.

10. Reiniciamos y seleccionamos nuestro nuevo kernel, y listo!

Espero haber sido claro (lo dudo :S) y que a alguien le sea de utilidad.

UP THE IRONS!!

6 comentarios

  1. Pingback: CL4551F13D » Archive du blog » Compilar el Kernel de Linux en Ubuntu

  2. Walter Riedemann

    Muy buen tuto pero te falto el punto del initrd, ya que por desgracia sin eso el kernel no sirve. Salu2

    noviembre 26, 2008 en 2:12 pm

  3. Uno a veces comete unas burradas…. Gracias Walter, ya corregí el post. A veces se me escapan cositas….

    Saludos,

    noviembre 26, 2008 en 2:33 pm

  4. Walter Riedemann

    Estimado, te envío este post con nuevo kernel (primera vez que compilo uno) Como dato extra pondría que el nombre del kernel es el mismo que el del directorio del mismo . Muchas gracias por tu info. Salu2!!!!

    noviembre 26, 2008 en 6:01 pm

  5. rober

    Bajo mi modesta opinión el punto 9 se podría resolver tecleando en el terminal: sudo update-grub

    Muchas gracias por el tutorial.

    enero 13, 2009 en 12:04 pm

    • Hola rober: pues tu modesta opinión es muy importante aquí. La verdad no he probado ese comando, pero si dices que funciona habría que verlo. Tu lo hiciste así?Gracias por tu visita y tus aportes!

      enero 13, 2009 en 12:36 pm

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