Compilando el Kernel
En Debian y Ubuntu existe el comando:
apt-get build-dep «paquete»
el cual te baja e instala automáticamente cualquier dependencia necesaria para poder compilar ese paquete. De esa forma, no debería aparecer ningún error de alguna librería faltante al compilar el paquete.
En el caso del kernel, hay otra forma. Si se está usando Debian o Ubuntu y uno quiere compilar el Kernel, hay que instalar (al día de la fecha) los paquetes:
- linux-source-2.6.20 en Ubuntu
- linux-source-2.6.18 en Debian
Existe una interfaz web con una base de datos de todos los paquetes disponibles en ambas distribuciones:
Debian:
http://packages.debian.org/stable/devel/linux-source-2.6.18
Ubuntu:
http://packages.ubuntu.com/feisty/devel/linux-source-2.6.20
Por otro lado (siguiendo con Debian y Ubuntu), en el directorio /boot están los archivos config-*, los cuales son los archivos de configuración utilizados para compilar el kernel que se te instala automáticamente con la distrubución:
# ls /boot/config-*
/boot/config-2.6.15-1-amd64-k8
/boot/config-2.6.17-2-amd64
/boot/config-2.6.18-3-k7
/boot/config-2.6.18-4-k7
/boot/config-2.6.8-2-386
Estos archivos no es obligatorio que estén acá si uno está compilando su propio kernel, pero si es recomendable hacerlo ya que siempre tenés a mano la configuracion usada para compilar ese kernel. (sino, podrías perderlo en el caso de que tengas que borrar /usr/src/* por cuestiones de espacio libre en disco).
Una forma muy práctica y fácil de poder recompilar uno mismo el Kernel y estar lo más seguro posible de que va a funcionar es: copiarse el archivo de configuracion del kernel que ya tenemos funcionando, y usarlo para recompilar el nuestro propio:
# Ubuntu
apt-get install linux-source libncurses5-dev build-essential# Debian
apt-get install kernel-package linux-source-2.6.18 fakeroot libncurses5-dev build-essential# Común a ambas
cd /usr/src/linux# el archivo de configuracion se guarda en:
# /usr/src/linux/.configcp /boot/config-`uname -r` .config
Llegado a este punto podemos hacer todas las modificaciones que queramos al código fuente, como aplicarle parches o instalar drivers adicionales. Para compilar el kernel y generar la imagen correspondiente hay dos formas: la forma normal o la forma Debian.
Para compilar el kernel usando la forma normal hay que hacer una metralla de comandos make’s dentro de la raíz del código fuente del Kernel (/usr/src/linux):
make menuconfig
make dep
make bzimage
make modules
make modules_install
Ahora: a esperar. Por lo general el Kernel que te viene con Debian o Ubuntu trae todo lo que puede llegar a traer para que le funcione a la mayor cantidad de personas posibles. Eso significa que puede tardar mucho tiempo en compilar.
Una vez compilado el Kernel se puede copiar la imagen a mano (arch/*/bzimage) dentro del directorio /boot. El último make es responsable de copiar los modulos al directorio correspondiente (/lib/modules/), por lo que no hay que hacer nada más al respecto.
Para compilar el kernel usando la forma Debian (ya sea si estás usando Debian o Ubuntu), hay que hacer también dentro de la raíz del código fuente del Kernel (/usr/src/linux) lo siguiente:
make-kpkg –rootcmd fakeroot kernel_image
La forma Debian es obviamente mucho más fácil y, además, nos genera un paquete .deb dentro de /usr/src listo para instalar o distribuirlo a otras PC’s:
cd /usr/src
dpkg -i \
linux-image-2.6.24_2.6.24-10.00.Custom_i386.deb
Saludos :)
June 2nd, 2007 at 18:43
Puedes empaquetar tu propio kernel*.deb Saludos! :)
June 3rd, 2007 at 15:04
Si bien usé una sola vez linux, y fué un Live CD (Knoppix), creo que algo entendí :D
Me alegra saber que mi IQ basta y sobra para saber interpretar eso.
Saludos Alejo, ahora podemos vernos en el foro de Alkon, nick Nightw :)
Ale.
August 24th, 2007 at 17:48
Hola, antes que nada, felicitaciones, muy buen blog. Tengo una pregunta. El kernel mas reciente para etch es 2.6.18 ? Mi pregunta es por que siempre he tenido un problemillas al momento de montar la particion windows (soy un novato en linux ) entonces, la logro montar en modo lectura y escritura, pero por alguna razon, no puedo crear archivos o carpetas en dicho montaje. Solamente editar los archivos, eso si, sin problemas.
Con el afan de querer resolver ese problema, me tope con la tool ntfs-3g por lo cual me dispuse a bajarla junto con el fuse 2.6 que es la version que necesitaba. Bueno, todo iba bien. Segui las instrucciones pero al final, cuando quise montar como me dicen, me salio un mensaje diciendome que mi kernel es deficiente que necesito 2.6.20 minimo. Es por eso que buscando me tope con este post, ya que quiero actualizar mi kernel, pero creo ( y casi estoy seguro que estoy mal ) que para debian etch no hay kernel 2.6.20 verdad. Gracias de antemano. Saludos
May 7th, 2008 at 13:25
Actualizado usando make-kpkg
cualquier problema no duden en preguntar!
Saludos