miércoles, 8 de agosto de 2012

Compilando y optimizando kernel para Ubuntu

Esta guía aprenderás cómo compilar y optimizar el kernel para tu máquina.

Primero ve a la página kernel.org

Descarga la versión que quieras, en mi caso, 2.6.33.1

Se descargará en la carpeta Descargas, lo movemos a las carpeta /usr/src/

sudo mv linux-2.6.33.1.tar.bz2     /usr/src/

Vamos al directorio /usr/src y luego descomprimimos

sudo tar xvjf linux-2.6.33.1.tar.bz2


Como curiosidad si quieres acelerar la compilación entonces mueve la carpeta descomprimida a la carpeta /dev/shm, acelerará el proceso porque hará la compilación en la misma memoria RAM y no en el disco duro ;) al terminar sólo mueve la carpeta a /usr/src, eso si tienes RAM de sobra.

Instalaremos varios paquetes para hacerlo al estilo Debian

sudo apt-get install kernel-package

Instalamos el desarrollador de paquetes GTK+

sudo apt-get install libglade2-dev

Instalamos ncurses

sudo apt-get install libncurses5-dev


Opcionalmente para ahorrar tiempo al configurar controladores tecleamos:

make localmodconfig

Lo que hace es cargar sólo los controladores de nuestra máquina para hacer el núcleo más pequeño.

Ahora haremos la configuración, vamos dentro de la carpeta descomprimida del kernel y tecleamos:

make config

La desventaja es que tendremos que responder a cada una de las preguntas, sólo para experimentados.

También se puede usar make con la opción make config:

make menuconfig

Ahora podemos elegir las opciones del kernel



Empezamos excluyendo las opciones genéricas y multiprocesamiento simétrico (actívalo si tienes dos o más procesadores).



Y luego seleccionamos el procesador, en mi caso un Pentium 4 y excluimos las funciones genéricas.



Podemos modificar más cosas como quitar controladores que nunca usaremos, por ejemplo para tarjetas pcmcia (a menos que tengas laptop), tarjetas de vídeo integrado de Intel, radio AM/FM y para ciertos modelos de laptops. Aunque si utilizaste el modlocalconfig se supone que no es necesario.



Luego salimos para guardar cambios.



Compilamos el núcleo

make

Después de esperar, instalamos los módulos

make modules_install

Para concluir instalamos el núcleo

make install

Con esto se instalará el núcleo en la carpeta boot, creará el archivo system.map, creará la imagen de disco RAM correspondiente, y añadirá el arranque en  /boot/grub/grub.conf respetando los núcleos anteriores instalados.

Creamos la imagen initrd necesaria para cargar los controladores, vamos a la carpeta /boot/

sudo mkinitramfs -k -o initrd.img-2.6.33.1 2.6.33.1

Actualizamos GRUB

update-grub

Y finalmente reiniciamos
shutdown -r now

Opcionalmente si queremos los paquetes deb de los headers y la imagen:
sudo make-kpkg --initrd linux_headers linux_image

Después de reiniciar con el nuevo kernel es posible que falte algún módulo (tarjeta nvidia verdad), simplemente instalamos module-assistant y añadimos el que falta.

sudo apt-get install module-assistant

Para iniciar:

module-assistant

Elige los módulos según necesites.

Notas extras:

Para la próxima que compiles el kernel y no tengas que crear otra vez el archivo de configuración puedes cargar el anterior que creaste:

cp /boot/config-2.6.33.1 ./.config

Y para limpiar fuentes del kernel anterior:

make mrproper

No hay comentarios.:

Publicar un comentario