Para realizar estos pasos es necesario acceder a la consola mediante root. En Ubuntu podemos hacerlo con el comando:
sudo su
Metemos la contraseña de nuestro usuario y ya nos logueamos como root.
Lo primero debemos hacer es actualizar la lista de paquetes e instalar los paquetes necesarios:
apt-get update
apt-get install build-essential kernel-package libncurses5-dev libncurses5 gcc make wget initramfs-tools git
Si nos da que el paquete initramfs-tools no existe, instalamos el paquete mkinitrd-tools.
Luego nos vamos al directorio /usr/src, que es donde debemos tener los fuentes del kernel.
cd /usr/src
Descargamos el kernel de Graf_chokolo del git de dukio:
git clone git://git.dukio.com/linux-2.6
* Temporalmente el git de dukio no contiene el kernel de Graf_chokolo, pero se puede descargar de la siguiente dirección:
http://www.filesonic.com/file/638123824
No es necesario para OtherOs++, pero si queremos aplicar los parches de Marcan para usar con AsbestOS/BootOS, los descargamos también:
Parche 1:
wget http://git.marcansoft.com/?p=ps3-linux.git\;a=patch\;h=09dea663d36503b172cfcf2335cc629b3b90b5e3 -O patch1
Parche 2:
wget http://git.marcansoft.com/?p=ps3-linux.git\;a=patch\;h=4fa7c83d30bb4848416e6dcf7dc991450249527c -O patch2
Para compilarlo la ruta del kernel debe ser "linux", para lo cual creamos un enlace blando, que es algo similar a un "acceso directo".
ln -s linux-2.6 linux
Nos introducimos en el directorio de linux
cd linux
Si queremos aplicar los parches de Marcan que hemos bajado antes ejecutamos:
patch -p1 < ../patch1
patch -p1 < ../patch2
Establecemos la configuración por defecto de Graf_chokolo:
cp ps3_linux_config .config
Si queremos añadir o quitar opciones, que no es obligatorio, podemos hacerlo con el siguiente comando:
make menuconfig
Y ya podemos proceder a la compilación:
make-kpkg --initrd kernel_image
Si ha acabado correctamente, volvemos al directorio anterior:
cd ..
Listamos el paquete .deb que ha generado, y que debería ser algo como "linux-image-2.6.38-X.X.X.deb":
ls
E instalamos dicho paquete:
dpkg -i linux-image-2.6.38-X.X.X.deb
Sustituyendo el nombre del paquete por el que nos ha generado.
Para que arranque con OtherOS++ o AsbestOS/BootOS hay que añadirlo al fichero kboot.conf
nano /kboot.conf
Y añadimos la línea, sustituyendo el nombre del kernel por el correspondiente:
Linux-2.6.38-X.X.X=/boot/vmlinux-2.6.38-X.X.X initrd=/boot/initrd.img-2.6.38-X.X.X root=UUID=[Codigo UUID de la partición tu disco]
Para averiguar el UUID del disco podemos verlo con:
ls -l /dev/disk/by-uuid/