[LUG.ro] Bajando y compilando el kernel...

Gustavo Guillermo Perez lugro@lugro.org.ar
Tue, 1 Feb 2005 16:28:40 +0000


El Lun 31 Ene 2005 21:24, Matias Sanchez escribió:
> Queria saber si alguien me da una mano para saber de donde poder bajar el
> último kernel dando vueltas y compilarlo, ya que desde que instalé Red Hat
> 9 nunca lo upgradie. No quiero meter la pata por eso pregunto, habia
> algunas cosas en algunos libros que tengo pero son articulos viejos.
> Como es el comando para saber la vercion del kernel que tengo instalada? No
> lo pude encontrar por ningun lado.
>
> Gracias
>
> Matias
Con uname -a te dice que versión del kernel tenés, después de eso te metés en 
la página de www.kernel.org y bajás a tu criterio el más nuevo, si es de la 
serie 2.6.X y vos tenés el 2.4.X entonces vas a tener que hacer una 
actualización de las herramientas de espacio de usuario que son:
modprobe
insmod
depmod
rmmod
lsmod
Etc, etc, esos vienen en un paquete que se llama module-init-tools que está en 
el ftp del kernel 
ftp://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/

bajate el ultimo, acá tenés que prestar atención porque vas a actualizar, no 
sustituir, al sustituir ya no podrás usar el kernel viejo por si el kernel 
nuevo no te anda. La linea de wget es para bajarlo conectado a internet, sino 
vos meté el archivo que hayas bajado en /tmp

# cd /tmp
# wget 
ftp://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2-pre1.tar.bz2
# tar -xjvf module-init-tools-3.2-pre1.tar.bz2
# cd module-init-tools-3.2-pre1
# ./configure --prefix=/
# make

Fijate que "make" no tire errores ya que sería fatal borrar los anteriores, 
después de eso "SI NO DIO ERRORES"

# make moveold
# make install

Donde "make moveold, prepara los nombres de los comandos viejos para llamarlos 
en sustitución de si mismos si detecta que el kernel es de la versión 
anterior.

Para bajar el kernel y compilar, guardá en /usr/src/ uno de 
ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ (en bz2 para que ocupe menos):
# cd /usr/src
# tar -xjvf linux-2.6.10.tar.bz2
# mv linux linux.old
# ln -s linux-2.6.10 linux
# cd linux

Si ya tenés de la distro un archivo con llamado ".config" adentro de la 
carpeta que movimos a linux.old lo copiás, pero si son kernels diferentes 
alomejor no ayude mucho.

# cp linux.old/.config ./

Después ejecutás make menuconfig para ver toooodas las opciones que hay para 
compilar la barra de espacio activa o desactiva una opción, el asterisco [*] 
es una opción que se incluirá en el kernel, la [M] es Modulo (driver) y nada 
[ ] quiere decir que no se tendrá soporte para eso, te recomiendo que te 
tardes un día entero revisando todo para no errar en nada.

# make menuconfig

Al salirte te pregunta si querés guardar los cambios le decis que si. pero no 
le des la orden de compilar el kernel, porque no vayas a sobreescribir el 
kernel actual, tenes que poder usar los dos, fijate en la carpeta /boot/ lo 
que sea que tengas y asegurate de tener ahí un archivo con nombre vmlinuz y 
otro initrd, si están ahí podés compilar tranquilo porque el nuevo kernel va 
a quedar suelto en el /
como /vmlinuz

# make bzimage
# make modules
# make modules_install

Si alguna de estas opciones da error entonces tienes que revisar denuevo tu 
configuración con "make menuconfig", si tenés usando grub, cargás una nueva 
entrada en tu archivo /boot/grub/menu.lst que diga algo así:
title nuevokernel
kernel (hd0,1)/vmlinuz root=/dev/hda2

Si es que hda2 es el raiz de tu linux.
Si tenes lilo modificá el archivo /etc/lilo.conf y agregale una entrada así:

  image  = /vmlinuz
  label  = nuevokernel
  root   = /dev/hda2

Y lilo necesita ser actualizado, se ejecuta lilo para que la nueva entrada 
aparezca, ahora al arrancar tendrás las dos opciones.

Saludos, a ver si sirve.

-- 
Gustavo Guillermo Pérez
Compunauta uLinux
www.userver.tk