Como compilar un kernel en Ubuntu 10.04
En el wiki oficial tenemos practicamente toda la informacion disponible para compilar nuestro propio kernel en Ubuntu, pero esa informacion esta bastante desorganizada y es un poco un lio para alguien que no sea un usuario bastante avanzado
he intentado estructurarlo todo un poco para poder crear un "How-to" paso a paso con todos los detalles para que practicamente no tengais ningun problema
primeros pasos
instalar los programas y herramientas que nos hacen falta, para ello abrimos un terminal y pegamos el siguiente comando, tened en cuenta que es todo uno:
luego viene el siguiente:
y finalmente estos cuatro pasos:
ahora mismo (9-7-2010) el codigo fuente del kernel estable actual es el 2.6.32, por eso en el ultimo comando anterior nos crea la carpeta 2.6.32
es una buena idea empezar la configuracion del kernel copiando el .config actual del kernel que tenemos instalado y mas en ubuntu, para ello escribimos en consola el siguiente comando:
ahora ya estamos preparados para cambiar los parametros pertinentes en el .config del kernel que vamos a compilar escribiendo el siguiente comando:
este momento es el mas delicado, porque aqui hay muuuuuuuuchos parametros modificables, yo personalmente solo he buscado mas compatibilidad con mi procesador y eliminar algun modulo que otro innecesario, pero si no sabeis exactamente lo que estais haciendo, mejor tocar lo justo
una vez finalizadas las modificaciones pertinentes guardamos y salimos del menuconfig, ahora es tiempo de compilar
para mejorar el aprovechamiento de los nucleos que pueda tener nuestro procesador podemos ejecutar el siguiente parametro en la consola:
la regla general es uno mas de los nucleos que tengamos, o sea, si tenemos un dualcore seria LEVEL=3 pero en el caso de un quad, LEVEL=5 por poner dos ejemplos
ahora a compilar:
acordaros en la linea que pone "--append-to-version=-aqui-el-nombre-del-kernel" teneis que modificar modificar el "=-aqui-el-nombre-del-kernel" por "=-lo-que-os-de-la-gana"
esto puede tardar desde unos minutos hasta unas horas, todo depende del poder de nuestro procesador, una vez terminado y si no ha habido demasiados errores se os creara el kernel en forma de paquete instalable en el mismo directorio donde hemos compilado el kernel
ahora toca instalarlo:
acordaros de cambiar los .etc.etc.etc por la version real del kernel compilada
teoricamente el initramfs se crea automaticamente al instalar el kernel via dpkg, pero a mi no me ha funcionado, por ello actualizamos el initramfs con el siguiente comando que tan solo es un ejemplo, a lo mejor en vuestro caso es 2.6.32.50+drm40.3-lo-que habeis-escrito-antes:
ahora tan solo nos queda añadir el nuevo kernel al grub:
y reiniciamos con nuestro flamante nuevo kernel compilado por nosotros mismos ;)
toda la informacion ha sido sacada de http://linuxtweaking.blogspot.com
he intentado estructurarlo todo un poco para poder crear un "How-to" paso a paso con todos los detalles para que practicamente no tengais ningun problema
primeros pasos
instalar los programas y herramientas que nos hacen falta, para ello abrimos un terminal y pegamos el siguiente comando, tened en cuenta que es todo uno:
sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev
luego viene el siguiente:
sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r)
y finalmente estos cuatro pasos:
mkdir ~/src
cd ~/src
apt-get source linux-image-$(uname -r)
cd linux-2.6.32
ahora mismo (9-7-2010) el codigo fuente del kernel estable actual es el 2.6.32, por eso en el ultimo comando anterior nos crea la carpeta 2.6.32
es una buena idea empezar la configuracion del kernel copiando el .config actual del kernel que tenemos instalado y mas en ubuntu, para ello escribimos en consola el siguiente comando:
sudo cp -vi /boot/config-`uname -r` .config
ahora ya estamos preparados para cambiar los parametros pertinentes en el .config del kernel que vamos a compilar escribiendo el siguiente comando:
sudo make menuconfig
este momento es el mas delicado, porque aqui hay muuuuuuuuchos parametros modificables, yo personalmente solo he buscado mas compatibilidad con mi procesador y eliminar algun modulo que otro innecesario, pero si no sabeis exactamente lo que estais haciendo, mejor tocar lo justo
una vez finalizadas las modificaciones pertinentes guardamos y salimos del menuconfig, ahora es tiempo de compilar
para mejorar el aprovechamiento de los nucleos que pueda tener nuestro procesador podemos ejecutar el siguiente parametro en la consola:
export CONCURRENCY_LEVEL=3
la regla general es uno mas de los nucleos que tengamos, o sea, si tenemos un dualcore seria LEVEL=3 pero en el caso de un quad, LEVEL=5 por poner dos ejemplos
ahora a compilar:
sudo make-kpkg clean
sudo fakeroot make-kpkg --initrd --append-to-version=-aqui-el-nombre-del-kernel kernel-image kernel-headers
acordaros en la linea que pone "--append-to-version=-aqui-el-nombre-del-kernel" teneis que modificar modificar el "=-aqui-el-nombre-del-kernel" por "=-lo-que-os-de-la-gana"
esto puede tardar desde unos minutos hasta unas horas, todo depende del poder de nuestro procesador, una vez terminado y si no ha habido demasiados errores se os creara el kernel en forma de paquete instalable en el mismo directorio donde hemos compilado el kernel
ahora toca instalarlo:
cd ~/src
sudo dpkg -i linux-image-2.6.32.etc.etc.etc.deb
sudo dpkg -i linux-headers-2.6.32.etc.etc.etc.deb
acordaros de cambiar los .etc.etc.etc por la version real del kernel compilada
teoricamente el initramfs se crea automaticamente al instalar el kernel via dpkg, pero a mi no me ha funcionado, por ello actualizamos el initramfs con el siguiente comando que tan solo es un ejemplo, a lo mejor en vuestro caso es 2.6.32.50+drm40.3-lo-que habeis-escrito-antes:
sudo update-initramfs -c -k 2.6.32.11+drm33.2-lo-que-teniais-que-modificar-antes
ahora tan solo nos queda añadir el nuevo kernel al grub:
sudo update-grub
y reiniciamos con nuestro flamante nuevo kernel compilado por nosotros mismos ;)
toda la informacion ha sido sacada de http://linuxtweaking.blogspot.com