lunes, 4 de julio de 2011

Recompilar kernel

Ya empezando a conocer este magnifico sistema operativo me decidi a instalar fedora 12 para mi uso personal y Debian Lenny en el entorno donde laboro por lo que mis entradas seran de experiencias vividas con este par de distribuiciones.

Cuando tomamos la decision de instalar una distribución GNU/Linux, generalmente, esta viene con los paquetes precompilados y configurados para que puedan funcionar en la mayoría de los ordenadores. 

Esto tiene algunas ventajas, como la fácil instalación, pero también tiene sus inconvenientes. La finalidad de compilar nuestro propio Kernel es depurarlo de drivers y soportes genéricos, e instalar únicamente lo necesario para que nuestro ordenador funcione. ¿Qué conseguimos? Un Kernel más pequeño y configurado para nuestro equipo (CPU, Drivers, Arquitectura…etc), consiguiendo así que nuestro sistema operativo sea más rápido.

Nota – Este tutorial está escrito y probado para Fedora 12, pero también sirve para CentOS y seguramente para otras distros GNU/Linux como Ubuntu y Debian.


Importante – Si sigues este tutorial debes tener en cuenta que compilar el Kernel no es una tarea trivial. Además al compilar la última versión estable del kernel y no contener los parches que sí incluyen los kernel’s precompliados de Fedora, el sistema se puede volver inestable. Es aconsejable hacer una copia de seguridad antes de seguir, por si acaso.




En primer lugar descargaremos la última versión estable del Kernel desde Kernel.org. En estos momentos es la versión 2.6.32.9. Para descargar el código completo y no sólo el parche, seleccionamos la opción Full Source, que es la letra F que hay a la derecha de la versión actual.

Una vez descargado, lo descomprimimos, por ejemplo, en el escritorio. (no importa donde lo hagáis)

Abrimos una terminal y nos logeamos como root. Luego accedemos a la carpeta del Kernel (en mi caso en el escritorio)

su -

cd /home/nombre_de_tu_usuario/Escritorio/linux-2.6.XX.X

Ahora llega la tarea más aburrida y donde deberemos configurar nuestro kernel, recordando siempre que nuestro objetivo es hacer el kernel lo más pequeño posible. Para realizar esta tarea, podríamos ejecutar el comando make config, pero sería una tarea larga y muy complicada. Gracias al trabajo de mucha gente ahora disponemos de interfaces que nos ayudan en esta configuración del Kernel. Si usamos Gnome, usaremos el comando make gconfig, si usamos KDE, make xconfig y si queremos usar la terminal, make menuconfig. Los tres métodos son similares. Podremos seleccionar Y (yes), N (no) o M (module). Teniendo en cuenta que Y incluirá la opción en el kernel, N, no y M, lo hará pero en un módulo, cargándolo sólo cuando lo requiramos y no en el inicio.

Para una buena configuración quitaremos todas las opciones genéricas y seleccionaremos las que se ajusten con nuestro hardware. Para ayudarnos podemos usar los siguientes comandos.





/sbin/lsmod

Muestra los controladores que estamos usando

less /proc/cpuinfo

Muestra los detalles de nuestro procesador

/sbin/lspci

Permite determinar los dispositivos PCI que hay en el sistema

/sbin/lsusb

De manera similar a lspci, determina los dispositivos USB

Algunas opciones que debemos marcar obligatoriamente son: la carga modular, que hará el kernel más ligero y SMP (Symmetric MultiProcessing), si nuestra máquina cuenta con más de un procesador.



Una vez que ya comprendemos esto, ya podemos ejecutar el comando make (en mi caso make gconfig, pero no quiere decir que tengas que realizarlo de esta manera)

make gconfig

Cuando terminemos de configurar todo guardaremos los cambios y cerramos. Ahora compilaremos el kernel, tarea que llevará bastante tiempo, con el comando:

make

Cuando finalice, tendremos que instalar los módulos. Esta tarea también tardará unos cuantos minutos.

make modules_install

Y por último, instalar el núcleo con el siguiente comando.

make install

El anterior comando instalará el núcleo en /boot, creará el archivo system.map correspondiente, creará la imagen initrd y añadirá la entrada en /boot/grub/grub.conf sin borrar las demás entradas antiguas.





Ahora llega el momento de probar si funciona. Reiniciamos y seleccionamos en el menu de Grub la nueva entrada (tenga en cuenta que no será elegida por defecto). Si todo funciona bien puede hacer que arranque por defecto con este Kernel en Sistema – Administración – Gestor de arranque

Atención – Si has seguido todos los pasos y cuando arrancas te sale una pantalla blanca y a continuación el sistema en modo texto se debe a que la versión de drivers de tu tarjeta gráfica no está compilada para este kernel. Para solucionar el problema puedes seguir los siguientes pasos. (Tarjetas NVIDIA)

Descargamos el driver de la página de NVIDIA. Hacemos una copia de nuestro archivo xorg.conf.

cp -v /etc/X11/xorg.conf{,.bak}

A continuación, para poder instalar el controlador hay que cerrar el X server. Para hacerlos escribimos en la terminal. Nos pedirá usuarios y contraseña. Nos logeamos como root.

init 3

Ahora ejecutamos el archivo que hace un rato nos descargamos., cambiando obviamente el comando para que concuerde con la versión que descargaste y la ruta donde se encuentra.

sh /ruta/del/driver/NVIDIA-Linux-XX-XX.XX-pkg1.run

Seguimos todos los pasos. Aceptamos la licencia de uso. Cuando nos pida si deseamos buscar una versión precompilada de nuestro kernel le decimos que no. Compilará el módulo para nuestro nuevo kernel y por último nos preguntará si queremos modificar el archivo xorg.conf a lo que respondemos que sí. Listo. Ahora para volver a entrar a la sesión gráfica escribimos:

init 5

No hay comentarios:

Publicar un comentario