martes, 14 de octubre de 2008

Compilacion Kernel (2.6.27)

Primero voy a explicar cada numero del kernel 2.6.27
2 = Indica que el numero de version, en este caso la 2
6 = Subversion del nucleo, si es par indica que es estable y si es impar que es beta, estas no estan pensadas para un usuario comun
27 = Numero de revision mayor, cuando se aplican algunas correcciones de fallos se aumenta este numero

Exite un cuarto numero que se aplica cuando se corrijen errores graves y arreglos inmediatos

Hay varias formas de compilar un kernel o nucleo de Linux, los usuario de debian tienen su forma generando un paquete .deb,por ejemplo, esta es la forma clasica y util para todas las distros

Descargamos de la pagina www.kernel.org, la ultima version del kernel, en mi caso, la 2.6.26.6
# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.bz2

Ahora descomprimimos
# tar xjvf linux-2.6.27.tar.bz2

Ahora comienza la configuracion del nuevo kernel de linux, esta es la parte mas importante, aqui hay que conocer y tener bien en claro el hardware que tenemos, hay muchas herramientas para conocerlo, lspci, lsusb, el archivo fstab,etc, etc, pero no vamos a hacer incapie en esta explicacion

# /usr/src/linux-2.6.27/make menuconfig

En el menu config nos encontramos con
* Se compila dentro del kernel, es decir, es parte del kernel
M Modulo , se carga como modulo

Debajo tenemos la opcion Help que nos da mas ayuda para saber que es cada cosa, dedicarle un momento , sobre todo si es la primera vez, yo no voy a decirles que sacar y que poner, eso va de acuerdo a cada pc, por eso la idea de compilar un kernel tambien es para optimizar para nuestro harware. Una vez lista todas las opciones se graba el .config y se sale.

#make clean
#make dep #Compilamos las dependencias , con este kernel no es necesario este comando, yo por las dudas...

Luego a compilar nuestro kernel y tener mucha paciencia
# make bzImage modules modules_install

*ATENCION* Los Usuario de Debian mirar debajo

Copia la imagen del kernel compilado en /boot
# cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.27

Copiar System.map que contiene los servicios que usan los modulos
# cp System.map /boot/System.map-2.6.27

Ahora vamos a generar el archivo initrd, este sera util para cargar todo lo necesario para que el kernel arraque, por ejemplo el file system. Demora unos segundos, tener paciencia.
# mkinitramfs -o /boot/initrd.img-2.6.27 2.6.27

El siguiente paso es editar el gestor de arranque, en nuestra caso es GRUB
# vim /boot/grub/menu.lst

Se debe agregar lo siguiente

title Debian GNU/Linux, Kernel 2.6.27 #Este es el nombre que nos aparecera en el grub al iniciar
root (hd0,0) #Talvez lo vean raro, pero yo tengo debian en mi primer #particion
kernel /boot/vmlinuz-2.6.27 root=/dev/sda1 ro #Ubicacion del nuevo kernel
savedefault /boot/initrd.img-2.6.27 #Ubicacion de initrd

Esta linea que deben agregar es igual a las que actualmente tienen, lo unico que se modifica es la version del kernel
Una vez hecho esto solo se debe reiniciar nuestro sistema y cargar la nueva version del kernel.

A los usuario de Debian, podemos compilar el kernel a la Debian way, (necesitamos tener instalado kernel-package), luego de ejecutar make menuconfig, es decir , de configurar nuestro kernel, vamos a generar el .deb del kernel y de los modulos

# make-kpkg --initrd kernel-image

Y para instarlos

dpkg -i kernel-version

Ahora podemos ir a configurar GRUB como he explicado.

1 comentario:

cepiyo dijo...

Hola master...buscando como reparar errores de disco en linux..me tope con este blog...bendito momento ..esta muy bueno ..tiene excelente info ..la verdad que es para felicitarte ..por el blog y por compartir desinteresadamente...mi primer like a un blog.a favoritos