martes, 12 de agosto de 2008

Actualizar el kernel a partir de paquetes RPM

¿Es conveniente actualizar el Kernel? Si. La utilidad de actualizar un Kernel consiste en contar con soporte para un mayor número de dispositivos de hardware, pero principalmente por los parches de seguridad y mejoras que la actualización incluya.

El método tradicional consiste en descargar el código fuente desde http://www.kernel.org y configurar las opciones deseadas, compilarlo e instalarlo uno mismo. Ciertamente esto permite un mayor control sobre las características deseadas, pero puede resultar un procedimiento algo complejo para un usuario novicio. Lo más sensato que puede hacer un usuario recién ingresado al mundo de GNU/Linux utilizando alguna distribución basada sobre Red Hat™ Linux, consiste en utilizar los paquetes pre-compilados.

Procedimientos para Fedora™ Core
Si usted utiliza Fedora™ Core 1, olvidese de preocupaciones (y del resto de este documento) puesto que puede limitarse a ejecutar un solo mandato que se hará cargo de actualizar el kernel si así se requiere (con todo lo que también sea necesario):

yum update

Acto seguido, reinicie sistema para poder utilizar el kernel recién instalado.

Procedimientos para otras distribuciones que utilizan RPM
Determinemos que versión del kernel se tiene instalado preguntándole al sistema con el siguiente mandato:

rpm -q kernel


Lo cual debe devolver algo como lo siguiente:

kernel-kernel-2.4.18-3

Diríjase con el explorador web de su preferencia al ftp de las distribución que posea y compare la versión del Kernel que encontrará en la carpeta de actualizaciones correspondiente a la versión que posea. Para las distribuciones basadas fielmente sobre Red Hat™ Linux, puede acceder a las siguientes direcciones:

ftp://updates.redhat.com/9/ o http://updates.redhat.com/9/, si posee alguna distribución basada sobre Red Hat Linux 9
Dentro de cada una encontrará un directorio i386, donde se encuentra la paquetería que puede instalarse en maquinas con cualquier microprocesador de arquitectura 80386, 80486, 80586 y 80686. Descargue los siguiente paquetes:

kernel-x.x.xx-xx.i386.rpm (si su equipo tiene microprocesador 80386 y 80486)
kernel-doc-x.x.xx-xx.i386.rpm
kernel-source-x.x.xx-xx.i386.rpm (opcional)
En el subdirectorio i586 encontrará dos paquetes, el paquete kernel-x.x.xx-xx.i586.rpm, optimizado para microprocesadores 80586, como AMD K5, K6, K6-II y K6-III y Pentium, Pentium MMX y Pentium Pro, y el paquete kernel-smp-x.x.xx-xx.i586.rpm, para maquinas que utilizan múltiples microprocesadores 80586. En el subdirectorio i686 encontrará dos paquetes, el paquete kernel-x.x.xx-xx.i686.rpm, optimizado para microprocesadores 80686, como los Celeron, Pentium II y Pentium III, y el paquete kernel-smp-x.x.xx-xx.i686.rpm, para maquinas que utilizan múltiples microprocesadores 80686.

Lo siguiente será crear un disquete de arranque con el kernel actual y que será de utilidad en caso de presentarse alguna complicación para poder arrancar el sistema. Éste puede generarse introduciendo un disquete, sin montarlo, en la unidad de 3œ pulgadas y ejecutando lo siguiente:

mkbootdisk --device /dev/fd0 [número de versión del kernel actual]

Suponiendo que se tiene instalado el kernel versión 2.4.20-8, incluido en Red Hat Linux 9, quedaría del siguiente modo:

/sbin/mkbootdisk 2.4.20-8 --device /dev/fd0

A continuación procederemos a probar dicho disquete, solo como una precaución. Déjelo insertado y reinicie el equipo.

Coloque todos los paquetes que descargó en el mismo directorio, y ejecute el siguiente mandato:

rpm -Fvh kernel-*.rpm

NOTA: No ponga en le mismo directorio aquellos que no correspondan a la arquitectura de su microprocesador o que puedan ser sustituidos por otros optimizados para la arquitectura de su microprocesador, es decir, por ejemplo, no se pongan kernel-2.4.20-28.9.i386.rpm y kernel-2.4.20-28.9.i586.rpm si se va a actualizar con el paquete kernel-2.4.20-28.9.i686.rpm, o recibirá errores de conflictos debido a paquetes iguales y no podrá instalar.

Gracias a que las distribuciones actuales utilizan Grub en lugar de Lilo, ya no es necesario editar fichero de configuración alguno ni ejecutar mandato alguno adicional.

Reinicie la máquina y compruebe que todo carga correctamente. Para mayor seguridad, ejecute el siguiente mandato inmediatamente después de reiniciar el sistema a fin de calcular las dependencias entre los módulos del nuevo kernel:

/sbin/depmod -a

Si todo funcionó correctamente, genere un disquete de arranque con el nuevo kernel para futuras emergencias, del mismo modo que lo hizo para el kernel anterior.

/sbin/mkbootdisk 2.4.20-28.9 --device /dev/fd0

Si se tenían módulos para dispositivos de hardware, como serían el módulo de kernel para tarjetas NVIDIA, o bien funciones adicionales, y estos fueron compilados con las cabeceras del kernel anterior, será necesario volver a compilar estos módulos a fin de hacerlos funcionar con el nuevo kernel. Asegúrese de que el enlace simbólico /usr/src/linux apunta realmente al directorio que contenga el código fuente del kernel actual, y verifique que el tipo de microprocesador y si hay multiprocesamiento simétrico están correctamente especificados en /usr/src/linux/.config -utilice make xconfig y será más sencillo- así como también el soporte para módulos experimentales de ser necesario.

Si necesita recompilar el kernel por alguna razón, el siguiente es el resumen de procedimientos:

cd /usr/src/linux/
make menuconfig
make dep
make clean
make bzImage
make install
make modules
make modules_install

Debe ejecutarse el siguiente mandato inmediatamente después de reiniciar el sistema a fin de calcular las dependencias entre los módulos.

/sbin/depmod -a

No hay comentarios: