Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

martes, 17 de septiembre de 2013

Actualizar Kernel en Debian5

Instalar kernel 3.11.1 en Debian 5

Esta es una guía de cómo instalar el nuevo kernel en un Debian 5 Lenny. Para ello primero hay que tener instaladas varias dependencias que, aunque por lo general suelen estar instaladas, conviene tener en cuenta por si acaso. Las dependencias son:

  • bc
  • gcc
  • g++
  • make
  • kernel-package(opcional)

Una vez instalado esto vamos a la pagina oficial del kernel: https://www.kernel.org/ y de ahí nos bajamos la versión estable que más nos convenga. Yo recomiendo personalmente entrar en su ftp y bajar una versión estable en formato tar.gz. En la página oficial aparece la versión estable en formato tar.xz pero este tipo de compresión no está soportada en Debian 5 y es complicado implantar el paquete; más aún cuando dicho estándar no se complemente bien con Debian 5.

Una vez se tiene el fichero, se descomprime y se preparara el sistema para actualizar el kernel.

  • Entramos en: carpeta_Kernel/Documentation/ y escribimos lo siguiente à ln –s ../tools/lguest/
  • Una vez hecho ese cambio usamos nuestro editor favorito para editar el siguiente fichero: carpeta_Kernel/Tools/lguest/Makefile. Allí aparecen unas pocas líneas muy simples, pero debido a un bug de Debian5 no las puede implantar bien, con lo que habría que cambiar “all: lguest” por “all:”
  • Debian 5 es incapaz de reconocer por defecto el UTS release con los parámetros dados por defecto, con lo que habría que hacer un pequeño cambio para hacerlo capaz de reconocer el UTS entrado en esta ruta: /usr/share/kernel-package/ruleset/misc/ y editando el fichero version_vars.mk. Allí habría que buscar la palabra UTS_RELEASE_HEADER. Donde debe aparecer algo cómo esto:

UTS_RELEASE_HEADER=$(call doit,if [ -f include/linux/utsrelease.h ]; then  \
                               echo include/linux/utsrelease.h;            \
                           else                                            \
                               echo include/ linux /version.h ;              \
                           fi)

Lo cual habría que cambiarlo para dejarlo así:

UTS_RELEASE_HEADER=$(call doit,if [ -f include/generated/utsrelease.h ]; then  \
                               echo include/generated/utsrelease.h;            \
                           else                                            \
                               echo include/generated/utsrelease.h ;              \
                           fi)


Con estos cambios hechos tocaría empezar a limpiar el kernel mediante el comando:

make mrproper

Finalizado aquello, tocaría configurarlo. Hay tres métodos de configuración:

  • make config: Es un metodo bastante completo pero también complejo pues te hace muchas preguntas de muchos datos esplicitos. Es una herramienta potente pero que requiere tener bastantes conocimientos.
  • make menuconfig: Mediante esta forma tenemos una menu mostrado mediante dialogs muy intuitivos que te deja configurar las opciones con eficiencia y rapidez. Requiere tener la dependencia dialog instalada.
  • make xconfig:: Debes tener instalado y en funcionamiento el servidor X, ya que  toda la configuración se hace gráficamente (haciendo uso de ventanas). Se necesitan tener las librerías QT y sólo es recomendable hacerlo en entornos gráficos.
La opción que recomiendo es make menuconfig pero cada uno tiene sus gustos y necesidades. Aquí es muy difícil guiar a nadie. Cada uno tiene que ver si quiere poner una funcionalidad especial o no, aunque por lo general sin tocar nada ya es muy completo. Todo modulo que se quiera añadir y especialmente quitar debe de ser pensado minuciosamente. Tras la configuración del kernel solo queda compilarlo mediante estos dos comandos y en este orden.

make-kpkg clean

make-kpkg –initrd kernel_image kernel_headers

Si se han seguido todos los pasos correctamente, tras una buena espera tendríamos el kernel compilado y listo para instalar.Si encontramos algún error durante la configuración probablemente haya que entrar en la carpeta_kernel/debian/ruleset/misc/version_vars.mk y hacer el mismo cambio hecho arriba en la sección UTS_RELEASE_HEADER. La instalación es muy rápida y sencilla. Sólo habría que ir al directorio que está por encima del contenido de la carpeta del kernel (ej: Si la carpeta está en /usr/src, habría que ir a dicha carpeta no a la carpeta del kernel) y escribir lo siguiente:

dpkg –i TU_KERNEL.deb
dpkg –i TU_KERNEL_HEADERS.deb

En este caso ha sido:

dpkg –i linux-image-3.11.1_3.11.1-10.00.Custom_i386.deb

dpkg –i linux-headers-3.11.1_3.11.1-10.00.Custom_i386.deb


Con esto solo habría que reiniciar el equipo para poder disfrutar del nuevo kernel y sus ventajas.