viernes, enero 12, 2007

CREAR TU PROPIA DISTRIBUCION BASADA EN UBUNTU

¿Quieres crear tu propia distribucion? Aqui van los pasos detallados para crear una metadistribucion basada en Ubuntu...

Primero pasos

- Instalar mkisofs, squashfs-tools y qemu (o mucho mejor vmware), una vez instalados cargamos el modulo de squashfs:

sudo apt-get install squashfs-tools mkisofs qemu
sudo modprobe squashfs

- Montar la iso en el sistema, y luego descomprimir el .squashfs; para ello nos vamos a nuestra home y hacemos lo siguiente por pasos:

mkdir mnt
sudo mount -o loop ubuntu-6.10-desktop-i386.iso /mnt
mkdir extract-cd
rsync --exclude=/casper/filesystem.squashfs -a mnt/ extract-cd

Con esto hemos montado la iso en /home/miusuario/mnt, y extraemos todo el contenido en /home/miusuario/extract-cd, y ahora ejecutamos

mkdir squashfs
sudo mount -t squashfs -o loop mnt/casper/filesystem.squashfs squashfs
mkdir edit
sudo cp -a squashfs/* edit/

Y ya con esto tendremos el archivo .squashfs descomprimido en /home/miusuario/edit/ que será la carpeta donde hagamos todos los cambios


Modificar fondo de pantalla

Crearemos el fondo que queremos utilizar del tamaño que queramos, le pondremos el nombre que queramos, y lo ubicaremos en la carpeta /usr/share/backgrounds/ y luego editamos el archivo /var/lib/gconf/debian.defaults/%gconf-tree.xml y buscamos donde ponga /usr/share/backgrounds/warty-final-ubuntu.png y ponemos el nombre de nuestro escritorio de forma que esa línea quedaría /usr/share/backgrounds/mi_fondo_de_pantalla.png. Por supuesto las carpetas a las que hago referencia se encuentran bajo /home/miusuario/edit/, que aunque no hayamos hecho chroot por comodidad, pero debemos pensar como si esa fuera la raiz de nuestro sistema.


Modificar fondo de inicio o instalación de ubuntu


Solamente hay que modificar la imagen llamada splash.pcx que se encuentra en extract-cd/isolinux, para generar una imagen pcx puedes hacerlo con un programa de edición de imágenes y guardalo en formato pcx a paleta de 14 colores.


Modificar Splash

El splash es la imagen que aparece cuando está cargando nuestro escritorio Gnome, para ello primero nos creamos una imagen, la guardamos en formato png con el nombre ubuntu-splash.png, y la colocamos en /usr/share/pixmaps/splash/, así de sencillo es modificar esos dos aspectos.

O podemos llamar de otra forma esta imagen, pero en formato png, ejemplo miimagen-splash.png, y la colocamos en la carpeta /usr/share/pixmaps/splash, y en el archivo /var/lib/gconf/debian.defaults/%gconf-tree.xml modificamos la imagen de splash, en la línea splash/ubuntu-splash.png, modificamos ubuntu-splash.png por miimagen-splash.png.


Modificar Usplash

Usplash es la pantalla que nos aparece al cargar el sistema, en Edgy es esa pantalla negra con el logo de Ubuntu y una barra naranja que se va llenando conforme carga el sistema, en Dapper e inferiores el Usplash se modifica diferente que en Edgy. En Edgy para modificar el Usplash deberemos instalar el paquete usplash-dev y build-essential; y descargarnos el paquete usplash-theme-ubuntu:
sudo apt-get install usplash-dev build-essential
cp -R /usr/share/doc/usplash-dev/examples /home/miusuario/miusplash/
Una vez tenemos estos dos componentes nos metemos en la carpeta examples/ y ahí tendremos todos los png que debemos modificar a nuestro gusto para tener nuestro propio Usplash. En este ejemplo hay 4 imágenes, una de 800x600, otra de 1024x768, otra de 1024x576 y otra de 1024x576 cropped, creamos las 4 imágenes, y las hacemos en modo indexado con un máximo de 256 colores, las podemos guardar con el nombre que queramos, pero respetando la terminación _800_600, etc... ejemplo miusplash_800_600.png, luego modificamos los archivos eft-theme.c, donde ponga eft le ponemos el nombre de nuestras imágenes, y lo guardamos con el nombre que le hayamos puesto a nuestras imágenes, ejemplo: miusplash-theme.c. Y luego el Makefile también modificamos donde ponga eft por miusplash o el nombre que le hayamos puesto a nuestro usplash.

Una vez los hemos modificado tendremos que compilar el usplash, para eso en la terminal haremos:
make
Y luego instalaremos nuestro usplash, pero para ello tendremos que copiarlo en nuestra carpeta /home/miusuario/edit/, y hacer chroot en ella:
sudo cp /etc/resolv.conf edit/etc/
sudo cp /etc/hosts edit/etc/
sudo chroot edit
mount -t proc none /proc
mount -t sysfs none /sys
sudo cp usplash-theme-ubuntu.so /usr/lib/usplash/
sudo ln -sf /usr/lib/usplash/usplash-theme-ubuntu.so /usr/lib/usplash/usplash-artwork.so
sudo update-alternatives --install /usr/lib/usplash/usplash-artwork.so /usr/lib/usplash/miusplash-theme.so 55
sudo update-alternatives --set usplash-artwork.so /usr/lib/usplash/miusplash-theme.so
sudo update-initramfs -u
rm /etc/resolv.conf
umount /proc
umount /sys
exit

Con esto conseguimos que nuestro usplash esté instalado, pero el LiveCD va a seguir mostrando el usplash de Ubuntu.


Modificar GDM (Login en Gnome)

En /usr/share/gdm/themes/ están los temas para GDM, son sencillos de modificar, el tema por defecto para Ubuntu es Human, por lo que podemos modificar ese tema y listo, tenemos nuestro tema a nuestro gusto.


Últimos Pasos


Para ahorrar espacio en el disco, enextract-cd/ puedes borrar la carpeta programs, autorun.inf, start.exe, y la carpeta disc_tree.

Para volver a recuperar nuestra iso con los cambios realizados, y que ya podamos utilizar nuestro LiveCD con nuestro diseño tendremos que realizar los siguientes pasos, siempre suponiendo que no hemos chroot y no hemos modificado ningún paquete, por lo que no es necesario regenerar el .manifest:

sudo rm extract-cd/casper/filesystem.squashfs
sudo mksquashfs edit extract-cd/casper/filesystem.squashfs

Con esto generamos el archivo .squashfs de nuevo en la estructura del CD original con los cambios que nosotros hemos realizado.

sudo vim extract-cd/README.diskdefines

Y ponemos nombre a nuestro CD, el de nuestra distribución.

sudo -s
rm extract-cd/md5sum.txt
(cd extract-cd && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
exit

Creamos el nuevo md5 para poder verificar errores.

cd extract-cd
sudo mkisofs -r -V "MI_DISTRO" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o ../midistro.iso .


Creamos la ISO de nuestra distribución

Y para probarla haremos

qemu -cdrom midistro.iso -boot d
(Si es que tienes qemu instalado)

Y para grabarla
cdrecord dev=/dev/cdrom midistro.iso

13 comentarios:

Anónimo dijo...

Thanks, for the good tutorial. Luigi Pitch-Italy.

Anónimo dijo...

Gracias por el aporte. :) jo-c, Rancagua

white_pawn dijo...

Muy bueno el tuto. Bien explicado. Tambien encontre este programa que hace mas o menos lo mismo "Ubuntu Recontructor". Saludos

Anónimo dijo...

Me pareció muy bueno tú tutorial... Sólo quería preguntar sí es posible hacer un filesysten.squashfs con mi distro instalada... Mi correo es mkl.vegnux@gmail.com

Walter Manríquez Gebert dijo...

buena claudio te he linkeado en http://www.linuxvillarrica.cl

saludos

Anónimo dijo...

de que tamaño deben ser la imagenes a utilizar para el fondo de pantalla, fondo de inicio y el splash

Anónimo dijo...

filete el tutorial ,, aplicando ahora :D

Leo Jiménez dijo...

Bueno, con esto veo que podemos hacer un Ubuntu con otro fondo de pantalla, usplash y esas cosillas.

¿Pero como se hace para incluir nuestros propios paquetes? De manera que durante la instalación configure todos estos extras que le metimos. Digamos codecs, programas de desarrollo, etc.

Saludos

Anónimo dijo...

Leo Jiménez, puedes instalar los programas que quieras mientras hacer CHROOT, o crear tus propios programas. :)

Yo hice una distro, descomprimiendo el filesistem.squashfs en una partición, arranque el sistema en la partición y modifique muchas cosas, instalé programas, etc...

Anónimo dijo...

My friend and I were recently talking about how we as a society are so hooked onto electronics. Reading this post makes me think back to that discussion we had, and just how inseparable from electronics we have all become.


I don't mean this in a bad way, of course! Ethical concerns aside... I just hope that as memory becomes cheaper, the possibility of copying our memories onto a digital medium becomes a true reality. It's a fantasy that I dream about all the time.


(Posted on Nintendo DS running [url=http://kwstar88.zoomshare.com/2.shtml]R4i SDHC[/url] DS NetSurf)

Anónimo dijo...

buenas noches quisiera saber como puedo modificar el estilo de los menus de ubuntu estoy trabajando en mi propia distro para mi proyecto de grado les agradeceria me ayudaran

CaArRi91 dijo...

Exelente tutorial ya que en esos tiempos todo era mas complicado

Ahora es mas sencillo con:
U-Customizer
o
UCK (Ubuntu customized kit)

De cualquier forma Gracias.

Controler dijo...

Un buen aporte.
Solo una duda: ¿Como hago para cambiar cosas de l panel de mi distro? Es que yo quieto que las ventanas salgan en el panel de arriba y que el de abajo no sea extendido y que se oculte solo, con solo lo de los escritorios. Pero todo eso de forma predeterminada por mi distro. Porque en mi opinion es mejor un unico panel visible para trabajar.
En mi PC (Con Ubuntu, evidentemente) tengo un usuario especial que utilizo como plantilla de como sera mi distro. ¿Habria tambien alguna forma de usar ese usuario como plantilla? Asi ya tendria todo ya configurado los iconos y paneles los programas etc...
Gracias de nuevo y en serio un buen articulo.