Quiero agradecer a edulinux, usuario de Guadalinex y amigo personal, la ayuda prestada y a trunks y alfabet [usuarios de los foros], sus oportunos comentarios en el hilo "Compilar Kernel".
También he consultado la información de otros sitios web, por lo que recomiendo los artículos dedicados a la compilación del núcleo [kernel] que se encuentran en los siguientes sitios [ya sé que hay otros muchos, pero estos son los que yo he usado]:
El rincón de Linux
Guía de L.A. Cofiño
Frikis.org [pensado para el kernel 2.4.]
Sobre menú de configuración [menuconfig].
Mi ordenador portátil Airis 620 se apagaba frecuentemente al inicio, generalmente al ir a cargar el ACPI que gestiona la energía del equipo. Buscando a posteriori información sobre el tema, en algunos foros de internet se describe que el kernel 2.6 genera conflictos con la ACPI, por lo que la solución de compilar un nuevo núcleo parece que fue la más acertada. Desde http://www.kernel.org se puede descargar cualquier versión del kernel y en nuestro caso usamos la 2.6.8.1, que era la última que había disponible. Una vez descargada se copia al directorio /usr/src.
Un detalle importante radica en que para compilar esa versión del núcleo se requieren ciertas librerías, en concreto el paquete libncurses5-dev_5.4-4_i386.deb. Si usas otra versión de Linux, descarga de tu sitio las librerías en cuestión [en algún sitio leí que también era necesario el paquete libncurses5_5.4-4_i386.deb, aunque no me consta que este último haya sido instalado].
Arrancamos nuestro sistema Guadalinex [tuvimos suerte ya que lo logramos al primer o segundo intento] y abrimos nuestra consola de root. Copiamos las librerías en el portátil y ejecutamos el comando de instalación del paquete [el símbolo # tiene carácter meramente indicativo y lo uso para informar de que el comando citado debe ser usado como root]:
# dpkg -i libncurses5-dev_5.4-4_i386.deb
Seguidamente copiamos el archivo linux-2.6.8.1.tar.bz2 [ocupa 34 megas] en la carpeta /usr/src, mediante el comando
# cp /directorio_de_origen/linux-2.6.8.1.tar.bz2 /usr/src
Ahora nos vamos al susodicho directorio mediante la orden
# cd /usr/src
y descomprimimos mediante el comando
# tar xvfj linux-2.6.8.1.tar.bz2
Ahora toca crear un enlace simbólico que apunte desde el directorio /usr/src/linux hasta /usr/src/linux-2.6.8.1 y para ello ejecutamos
# ln -s linux-2.6.8.1 linux
Los pasos que vienen ahora pretenden que la compilación del núcleo se realice con la misma configuración que tenemos para nuestro Guadalinex, lo que garantizará una compatibilidad total para el funcionamiento del sistema con el nuevo núcleo [no es necesario tocar nada para tener el mismo escritorio original]. Para ello, entramos en /usr/src/linux y copiamos el archivo config-2.6.5 [ahí está la configuración de nuestra versión del kernel que carga guadalinex] en /usr/src/linux y a continuación lo renombramos como .config
# cp /boot/config-2.6.5 /usr/src/linux
# mv config-2.6.5 .config
Ahora nos situamos en el directorio /usr/src/linux y ejecutamos
# make oldconfig
lo que nos permite conservar la configuración original de Guadalinex. Nos preguntará por las nuevas opciones de este kernel mediante un larguísimo y tedioso proceso de actualización. Si nos equivocamos en algo no habrá problema ya que en el paso siguiente podremos corregirlo. Seguidamente mediante el comando make menuconfig nos saldrá un extensísimo menú con las características de configuración elegidas para nuestro núcleo.
AVISO: Esta nota la he introducido con posterioridad y tiene por objeto simplificar la carga de la configuración original del kernel. Es preferible no usar el comando "make oldconfig" descrito anteriormente por lo engorroso del método de actualización a las características del nuevo kernel. Es más, ni tan siquiera es necesario renombrar el archivo config-2.6.5 como .config ya que la mejor opción consiste en ejecutar directamente el comando "make menuconfig" como se describe a continuación y seleccionar en el menú disponible la opción "Load file..." para escribir a continuación "config-2.6.5" [o el nombre del archivo cuya configuración queramos cargar por defecto desde el directorio /usr/src/linux]. A partir de ese momento ya podemos elegir las opciones más adecuadas para nuestro equipo, como se describe en el paso siguiente.
# make menuconfig
¡¡¡ OJO !!! Es importantísimo que si no sabemos qué opciones elegir dejemos las que vienen seleccionadas por defecto. En mi caso seleccionamos activar APM [un sistema de gestión de la energía del portátil], seleccionamos micro [Pentium IV] y desactivamos ACPI [he leído que es incompatible con APM] e infrarrojos [la utilidad irda no la tengo disponible] y alguna más que no recuerdo y que supongo no afecta al problema que pretendemos solucionar. Actualmente trabajo con la candidata 6 montada con un núcleo 2.6.9 con las opciones ACPI y APM activadas. Es muy importante conocer con detalle el hardware de nuestro equipo si queremos compilar las opciones del núcleo adaptadas a las características técnicas de nuestra máquina, lo que permitirá optimizar su rendimiento. Si alguien quiere echar un vistazo a mi archivo de configuración no tiene más que pedírmelo. Pues bien, ya estamos en condiciones de compilar nuestro núcleo con la orden make.
AVISO: Después de bastantes compilaciones del núcleo, debo admitir que las opciones acpi funcionan correctamente y que ahora tengo disponible el kernel 2.6.9 con las opciones de Guadalinex 2004 por defecto, con sólo unas ligeras modificaciones adaptadas al hardware de mi equipo.
# make
Ahora el sistema necesita un buen rato para compilar el núcleo, por lo que es aconsejable dejarlo trabajar y volver cuando esté ya lista la compilación.
ATENCIÓN: Para el Kernel de la serie 2.4, la secuencia de comandos difiere con respecto a la 2.6. Para más detalles revisar los enlaces citados al principio.
Si hubiésemos elegido instalar una opción como módulo, debemos ejecutar
# make modules_install
¡¡¡ OJO !!! Es muy importante no olvidar ejecutar como root el comando # depmod -a la primera vez que arranquemos con nuestro nuevo kernel, para computar las dependencias entre modulos.
Bien pues ya está nuestro núcleo compilado y listo para que lo carguemos en /boot así que copiamos el kernel que se encontrará en arch/i386/boot/bzImage
y lo renombramos [yo le he llamado vmlinuz-2.6.8.1]
# cp /usr/src/linux-2.6.8.1/arch/i386/boot/bzImage /boot/vmlinuz-2.6.8.1
Finalmente, es posible que se deban cambiar los permisos de este archivo, asignándole lectura y escritura para root y solo lectura para grupos y otros. Por otro lado, renombramos el archivo /boot/System.map
# mv /boot/System.map System_2.6.5.old
y ahora copiamos en /boot el archivo System.map que está en /usr/src/linux
# cp /usr/src/linux/System.map /boot
Pues ya estamos casi listos. Sólo nos queda editar como root el archivo /boot/grub/menu.lst [en nuestro caso con el comando # gedit /boot/grub/menu.lst] y añadimos al final del mismo lo siguiente:
title Guadalinex-2004-2.6.8.1
root (hd0,7)
kernel /boot/vmlinuz-2.6.8.1 root=/dev/hda8 splash=silent vga=791
initrd /boot/initrd.splash
¡¡¡ OJO !!! Tienes que ver en qué partición de tu disco duro tienes cargado Guadalinex, por eso, lo mejor es que copies el párrafo correspondiente a la Guadalinex sobre la que estás compilando [en mi caso la 2.6.5] y lo pegues a pie de página [si eliges otra posición piensa que puedes modificar el número de la opción default que se cargará por defecto, lo que te obligaría a modificarlo]. Ahora le cambias el título [title]; le he llamado Guadalinex-2004-2.6.8.1 pero puedes usar cualquier otro. Por último, la línea kernel /boot/vmlinuz-2.6.5 root=/dev/hda8 la he sustituído por kernel /boot/vmlinuz-2.6.8.1 root=/dev/hda8 ¡¡¡ OJO !!! Se debe mantener el número de hda que corresponda en cada caso, ya que cada equipo tendrá sus propias particiones.
Si tengo que decir la verdad, de haber tenido que compilarlo yo solo, no me habría atrevido. Ahora que por fin lo consigo, creo que cualquiera puede hacerlo y a mí me habrá servido para lanzarme a nuevas compilaciones del núcleo.
Que disfrutéis tanto como yo y [ante todo] que solucionéis vuestro problema.
NOTA: en la primera compilación no se incluía ACPI, por lo que al cerrar el equipo no se apagaba solo y se nos queda en el powerdown, con lo que se debe pulsar el botón de apagado para desconectar. En siguientes compilaciones esa función quedó resuelta ya que se volvió a incluir ACPI.
OBSERVACIONES: Las versiones 2.6.8 y 2.6.9 del kernel generan una incompatibilidad con k3b, el magnífico programa de grabación de Linux, y sólo puedes a usar ese programa como root; yo he grabado en esas circunstancias y no he tenido problema, pero en equipos compartidos por más usuarios puede ser un inconveniente. La versión 2.6.7 la he usado con k3b y va fenomenal. Más información en el sitio oficial http://www.k3b.org/ donde se detallan posibles soluciones.
SUCESIVAS COMPILACIONES: Cuando se quiere realizar nuevas compilaciones del núcleo, ya sea porque queremos añadir o eliminar ciertas opciones al kernel, conviene proceder de la siguiente forma. En primer lugar salvaremos en un directorio creado al efecto los archivos .config, vmlinuz-2.6.8.1 [o el que corresponda en su caso] y system.map por si más tarde queremos volver a instalar la versión correspondiente del núcleo. Una vez salvados dichos archivos ejecutamos como root desde consola el comando make mrproper lo que nos limpia todos los archivos generados en anteriores compilaciones dejándonos las fuentes exclusivamente listas para una nueva compilación. Ahora copiamos el archivo .config al directorio /usr/src/linux y ejecutamos make menuconfig, cargamos el archivo .config mediante la opción "Load file...", hacemos las modificaciiones oportunas en el menú de configuración, las salvamos y seguimos con el procedimiento habitual, ejecutamos los comandos make [tarda un buen rato en realizarse la compilación] y make modules_install y continuamos con la secuencia descrita más arriba. No se debe olvidar ejecutar como root el comando depmod -a la primera vez que arranquemos con nuestro nuevo kernel, para computar las dependencias entre modulos.
MÁS SOBRE COMPILACIONES SUCESIVAS: Gracias a postman2 [usuario de Guadalinex], quiero añadir un detalle importante. Cuando se trate de compilaciones sucesivas, sobre otra/s ya existente/s, con objeto de no machacar los módulos instalados en nuestro sistema conviene realizar una modificación en el archivo Makefile de la carpeta /usr/src/linux añadiendo al término EXTRAVERSION= un nombre que identifique a la compilación que vamos a realizar [por ejemplo, si vamos a compìlar para habilitar un determinado módem usamos -modem]. Esto nos creará nuevos directorios con el nombre que hemos añadido a EXTRAVERSION=, lo que nos permitirá recuperar compilaciones previas, ya que si por algún motivo se genera un error en esta última no habremos machacado las anteriores.
==================================
GUADALINEX V3
Como esta versión de Guadalinex se basa en Ubuntu [Breezy], debe quedar claro que los comandos que requieren usar privilegios de root deben ser usados anteponiendo sudo al comando en cuestión.
Para los usuarios de Ubuntu resulta indispensable la lectura del siguiente tema colgado de los foros de hala hispana"Cómo compilar el Kernel de Ubuntu".
¡¡¡ Hasta pronto !!!

No hay comentarios:
Publicar un comentario