e-interiores Headline Animator

14.5.07

Compilando el kernel en Ubuntu

¿Para qué hacerlo? para estar a la última, para usar unos driver sólo disponibles en esa versión, para optimizar al máximo la ejecución del kernel, para aprender, .....
Mi motivo es activar la mejora en la vida de la batería anunciada por intel como powertop
Empezamos por tener listo en entorno de compilación. La forma más sencilla es obtener los metapaquetes build-essential y kernel-package.
sudo apt-get install build-essential kernel-package
Si vamos a usar una configuración visual (se puede usar una por linea de comando) necesitaremos
sudo apt-get install libncurses5-dev para usar una consola o
sudo apt-get install libqt3-dev para hacerlo desde X.

Ahora toca descargarse el código fuente del kernel. Podemos descargar el del kernel "activo" en ubuntu con
sudo apt-get install lunux-source
o descargar otro desde kernel
En concreto he descargado el último 2.6.21 y sus parches que darán lugar a la futura 2.6.22.
Por defecto se instala en /usr/src por lo que tendremos que mover a ese directorio lo que hayamos descargado.
Descomprimimos los fuentes y los parches en /usr/src/.
Creamos un link al directorio del nuevo kernel llamado linux (si existe otro lo borramos)
sudo ln -s linux-2.6.21.1 linux
y desde el reciencre creado directorio linux aplicamos los parches en el orden adecuado:
sudo patch -p1 <../fichero_parche
Configuramos con sudo make menuconfig (suponiendo que sabemos lo que hacemos...)
y compilamos el kernel de manera que nos genere un paquete .deb que podemos instalar directamente

sudo make-kpkg clean
sudo make-kpkg –append-to-version=.XXXX –initrd kernel_image

En XXXX podemos poner cualquier texto que queramos para reconocer nuestro kernel.
Una vez compilado (que lleva su ratito) solo tememos que instalarlo copiando los ficheros en los directorios correctos y modificando grub para que podamos arrancar desde este nuevo y flamante kernel.
sudo dpkg -i kernel-image-2.6.20.100207_10.00.Custom_i386.deb

Actualización (15-5-2007):
Al instalar el kernel funciona todo (yo diría que más rápido que antes) pero no se detecta la tarjeta wifi. Para ello es necesario usar module-assistant:
sudo apt-get install module-assistant; module-assistant i-a ipw3945

2 comentarios:

Carlos Garcés dijo...

Hola.
Aparte de la tarjeta wireles... no crees que te puede causar problemas usar un kernel bajado de kernel.org en vez que usar uno de ubuntu?
Te detecta sin problemas el archivo config antiguo (que es de ubuntu) contra un kernel de kernel.org?

AprendizDeTodo dijo...

Llevas toda la razon, he sido muy inocente pensando que solo me faltaba el modulo del wifi.
¿como puedo usar el config de un kernel ubuntu para el de kernel.org?