A muchos de ustedes al parecer les ha dado algún problema la instalación del Kernel precompilado con el parche de 200 lineas en sus maquinas, esto es de esperarse, por lo que siempre es mejor tener un Kernel directamente compilado en nuestra maquina que en una maquina ajena, para que este tome correctamente la arquitectura de nuestra maquina y la configuración general del hardware.
Por esto, aquí enseño a los mas osados, como compilar su propio Kernel (2.6.36.2) en Ubuntu (probado en Ubuntu 10.10) con el parche de 200 lineas incluido en el. Recuerda que este proceso debes hacerlo bajo tu propio riesgo, requiere una gran cantidad de paquetes por descargar y un tiempo de compilación bastante prolongado.
Para comenzar, lo primero que debemos hacer es instalar las dependencias necesarias para la compilación del Kernel ejecutando la siguiente linea en la terminal:
sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge kernel-package
Ahora ejecutemos la siguiente linea en la terminal, la cual es necesaria para compilar el Kernel (desde Intrepid)
sudo apt-get build-dep linux
Terminamos este primer paso con la instalación de otros paquetes necesarios para la compilación
sudo apt-get install libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev
Para continuar con el proceso de instalación del Kernel, debemos descargar las fuente del ultimo Kernel estable (2.6.36.2) y el parche de Mike Galbraith y ubicarlos dentro de nuestro directorio personal.
Creemos un directorio para la compilación del Kernel, nos ubicamos en el y descargamos las fuentes del Kernel desde kernel.org:
mkdir kernel-2.6.36.2 cd kernel-2.6.36.2 wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.2.tar.gz
Ahora creamos un archivo de texto nuevo y copiaremos el código que encontraremos en el post de Mike Galbraith o podemos descargarlo desde MediaFire, guardamos y cerramos el archivo:
gedit ~/autogroup.patch
Post oficial de Mike Galbraith
Mike Galbraith Patch desde MediaFire
Ahora vamos a descomprimir el Kernel que acabamos de descargar desde kernel.org:
tar xzvf linux-2.6.36.2.tar.gz cd linux-2.6.36.2 patch -p1 < ~/autogroup.patch
En este punto todo debe salir bien y sin errores, en caso de tener algún error es necesario reiniciar el proceso.
A continuación cargaremos la configuración actual del Kernel, esto para que el nuevo Kernel tome la configuración directamente desde nuestro sistema y no tengamos problema alguno al momento de compilarlo. Aun así, si tienes conocimientos suficientes puedes personalizar la configuración del Kernel para obtener un sistema mas a la medida de tus necesidades, puedes hacerlo.
Si no sabes que estas haciendo, mejor no modifiques manualmente la configuración del Kernel.
Copiamos la configuración ejecutando el siguiente comando en la terminal y posteriormente ejecutamos
lsmod
para que se ejecuten todos los módulos cargados en nuestro sistema y nos aseguremos de que todo nuestro hardware sea reconocido.
cp -vi /boot/config-`uname -r` .config make localmodconfig
En este punto el proceso de compilación te preguntara varias cosas acerca de los módulos, continua aceptando todas las preguntas que se te hacen presionando Enter hasta que finalice el proceso de configuración.
Continuamos la compilación del Kernel ejecutando la siguiente linea en la terminal para abrir el menu de configuración del Kernel:
cp /boot/config-$(uname -r) .config && yes "" | make oldconfig make menuconfig
Ahora podemos elegir los parches que deseamos habilitar en nuestro Kernel, ya que estamos interesados en el parche de 200 lineas.
Para hacer esto, navegamos por el menú de configuración del kernel que nos aparece, hasta
General Setup
y buscamos la linea con nombre
Automatic process group scheduling
, lo habilitamos presionando la barra espaciadora de nuestro teclado, nos posicionamos sobre la opción
Exit
usando las flechas de dirección del teclado y presionamos la tecla Enter de nuestro teclado para salir del menú
General Setup
.
Ahora navegamos hasta el menú
Kernel hacking
y entramos presionando la tecla Enter, buscamos la opción
Compile the kernel with debug info
y la desseleccionamos presionando la barra espaciadora de nuestro teclado, de nuevo nos dirigimos a la opción
Exit
y presionamos Enter para salir del menú principal.
Ya terminamos la configuración del Kernel, por lo que solo nos queda dirigirnos de nuevo a
Exit
en el menú principal y presionamos Enter para terminar la configuración del Kernel. Aceptamos cuando nos pregunte si deseamos guardar los cambios hechos a la configuración del Kernel presionando Enter sobre la opción Yes.
Ahora si, vamos a compilar el Kernel ejecutando la siguiente linea en la terminal:
fakeroot make-kpkg --initrd --append-to-version=-20101209 kernel-image kernel-headers
Ten en cuenta que el proceso de compilación puede variar dependiendo de tu hardware
Esto generará dos paquetes .deb dentro del directorio kernel-2.6.36.2, los cuales utilizaremos para instalar el nuevo Kernel en nuestro Ubuntu permitiendo que sean rastreables por Synaptic y fácilmente desinstalables.
Llegamos a la parte final de este tutorial, donde vamos a instalar y a probar el buen funcionamiento del nuevo Kernel que acabamos de instalar.
Para instalar los dos paquetes .deb que acabamos de generar debemos ejecutar los siguientes comando en la terminal:
cd .. sudo dpkg -i *.deb
Si todo salio bien, reiniciamos nuestra maquina y en la lista de Grub, seleccionamos el nuevo Kernel (2.6.36.2) y presionamos Enter para iniciar el sistema.
Una vez estemos de nuevo en el escritorio, verificaremos que el parche de 200 lineas este correctamente aplicado y funcionando ejecutando la siguiente linea en una terminal:
cat /usr/src/linux-headers-2.6.36.2-20101219/.config | grep -i AUTOGROUP
Y tiene que devolvernos una linea como esta:
CONFIG_SCHED_AUTOGROUP=y
Si así fue, tenemos nuestro sistema corriendo con el Kernel 2.36.6.2 y el «Automatic process group scheduling» activado.
Ya podemos estresar Ubuntu al maximo…
Este manual llega a ustedes gracias al esfuerzo de FRANCOBEP.
hola david
mi pregunata es:
yo suelo utilizar los kernel del ppa de ubuntu (https://launchpad.net/~kernel-ppa/+archive/ppa)
estos ya no vienen con el parche de 200 lineas incluido?
gracias
Mira, aun estoy averiguando si el Kernel del PPA de Ubuntu tiene el parche incluido, pero esto es fácil de averiguar por ti mismo, simplemente ejecuta el comando
cat /usr/src/[versión del último kernel]/.config | grep -i AUTOGROUP
, donde cambiarías el texto dentro de los corchetes por la versión del ultimo Kernel de tu maquina.Si recibes un mensaje de respuesta como este
CONFIG_SCHED_AUTOGROUP=y
, entonces tienes el parche instalado.Nota: para conocer la versión de todos los Kernel instalados en tu equipo, solo tienes que ejecutar el comando
ls /usr/src/
en la terminal.Horacio, el Kernel del PPA de Ubuntu cuenta actualmente con la V4 del parche de Mike Glabraith en palabras del mismísimo Tim Gardner (desarrollador de Canonical).
pues ya lo compilé y está instalado, …. por lo menos no se murió el sistema ahora a trabajar a ver que tal funciona
Excelente tutorial. Seguí los pasos al pie de la letra y todo funcionó perfecto. Tengo mi nuevo Kernel.
Nota: solo hice un cambio que me sonó por lógica y fue aquí:
cp -vi /boot/config-`uname -r` .config
make localmodconfig
lo hice así:
cp -vi /boot/config-`uname -r` .config
lsmod
make localmodconfig
ahora me doy cuenta que cometí un pequeño error asi que volveré a instalarlo … y agregaré la modificación de irving
Me quedo al inicio un:
init: unread main process (362) terminated with status 5
pues parece funcionar bien, que proda ser???’
Bueno muy bueno el manual, tambien lo postearon por taringa, en este momento esta compilando el kernel espero que haya salido bien solo le cambie el tipo de procesador en el menuconfig espero que haya elegido bien al optar por Intel core/newer xeon ya que tengo un procesador intel core i3, saludos y gracias por el aporte
Hola bueno a mi me parece mejor el comando
cp /boot/config-`uname –kernel-release` ./.config
ya que usa la configuración del kernel mas reciente instalado
Hola que tal, solo tengo una minima duda… en el archivo del kernel viene tanto la versión de 32 bits como la de 64 bits? o para conseguir la versión amd64 necesito descargar uno diferente?… por deducción deberian venir ambas versiones en el mismo cierto?… muy buena explicacion!
Gracias!