Como construir nuestra propia Distro de LInux

En los grupos de discusión, es habitual que un usuario avanzado nos solicite información de como construir su propia distribución de Linux, habitualmente le llevamos a varias herramientas que facilitan enormemente esta labor. Pero inmediatamente surgen mas dudas o que las herramientas no son precisamente lo que buscan, ya que quieren construir una a pelo.

La pregunta que siempre hacemos es tu sabes programar y la respuesta es si o a veces si. Bien, no es necesario ser un buen programador, en esto discrepo bastante con mi amigo Stalman, mas bien es necesario comprender la lógica de programación y ayudado con algún manual avanzado de programación, poder leer, interpretar o modificar los scripts del sistema si así lo requieres.

En esta entrada indicare el procedimiento que solomos emplear para construir nuestra propia distro de Linux.

Voy a partir de una Distribución ya existente, ya que me corre algo de prisa. Aunque la modificare para que esta entrada cumpla su objetivo.

Es importante entender una cosa, cuando hablamos de Linux hablamos de núcleo. Yo pertenezco a la Espiral, es decir a GNU/Linux Debian. El núcleo con el que partiré por tanto sera Debian.

Requisitos iniciales:

Descarga la versión de Debian, en http://www.debian.org tienes las versiones disponibles. Necesitamos una Minimal, ya que crearemos nuestra propia versión a partir de este núcleo, para esta crear esta versión de linux usaremos el siguiente minimal. Descarga aqui.


Instalación de la versión en una maquina virtual:

Yo uso vmware aunque desde luego hay una amplia gama de gestores virtuales a mi me gusta este. Asi que lo sigo usando. Un dia de estos me pasare a XEM, pero hoy por hoy me quedo con vmware.

Sigue los pasos de instalación de la versión. Es importante no instalar paquetes extra, deja el núcleo tal cual. El único paquete a instalar sera el ssh. Ya que operaremos desde la maquina local para hacer cambios en nuestro núcleo, lo que nos permitirá ser mas rápidos en la configuración.

Dejo algunos pantallazos del proceso de instalación, los relacionados con usuario y paquetes a instalar.

1- Instalacion en vmware.

Captura de pantalla de 2014-09-26 09:56:31

2- Nombre del sistema operativo. En mi caso MOZART

Captura de pantalla de 2014-09-26 09:58:59

3- Clave de susper usuario. Pues siguiendo los parametros del proyecto EstrellaRoja.

La password sera estrella.

Captura de pantalla de 2014-09-26 10:00:09

4- Nombre de usuario. Siguiendo los parametros del proyecto EstrellaRoja

El nombre de usuario sera usuario

Y la contraseña sera usuario

5- Particionado. Haremos un particionado manual como en los viejos tiempos.

Da exactamente igual.

El LiveCD ya incluira el gparted y el usuario podra personalizar su instalacion como quiera.

6- Inicio de instalación de sistema base.

Captura de pantalla de 2014-09-26 10:09:23

7- Configuracion de gestor de paquetes. Pues en mi caso España.

Ahora sigue el proceso de de instalación, descargara los paquetes del sistema base, lógicamente si no tienes acceso a internet, parara aquí, por lo que lo necesitas. Si no tienes acceso a internet antes de iniciar todo el proceso, seria conveniente que te montaras en tu red y servidor de paquetes Debian, es decir te los descargas todos y te los dejas alli. Ya que buena parte los vas a necesitar. Otra obcion es bajarse todo los dvd de la versión, con todos los paquetes stables. los quemas en un dvd o lo que gustes. En fin. Yo tengo al menos por ahora internet, aunque al ritmo que va el asunto del empleo en España cualquiera sabe.

8- Estadísticas a los desarrolladores. Ten en cuenta que si trabajas con Linux eres parte de proyecto GNU, es decir, uno de los nuestros. Nos gusta estar informados de los cambios o modificaciones a aplicaciones de este modo podemos mejorar el desarrollo de los distintos elementos. Aquí en esta parte de la instalación diremos que si.

9- Selección de programas. Pues necesitamos el sistema base y el ssh como indicábamos antes. Todo lo demás no lo necesitamos por el momento. Total, exactamente 125 paquetes.

Captura de pantalla de 2014-09-26 10:18:23

10- Ahora nos pregunta si queremos el GRUB como gestor de arranque, aunque mas tarde lo modificaremos, ya que EstrellaRoja emplea la antigua Lilo y por lo tanto fieles al proyecto deberemos modificarla. Pero ahora necesitamos un gestor de arranque, asi que diremos que si.

11- Tal y como ha quedado el asunto, la cosa deberia terminar asi.

Captura de pantalla de 2014-09-26 10:26:10

Ahora nos logamos como usuario y comprobamos las conexiones de red.

Después como root.

Y tendríamos en mi caso.

Captura de pantalla de 2014-09-26 10:28:18

Ahora verificamos si tenemos comunicaciones en la maquina local con la que vamos a tocar nuestro sistema en remoto.

La respuesta es si.

Captura de pantalla de 2014-09-26 10:30:11

Este proceso si sabeis de sistemas GNU/Linux Debian os ha llevado como mucho, muchisimo 10 minutos.

Sobre EstrellaRoja

En la definición muy por encima, ya que aunque no os lo creáis las cosas no se construyen por ciencia infusa, cuesta sus días y sus horas, podéis ver la descripción de sistema operativo en su conjunto. Nosotros vamos a requerir hacer exactamente lo mismo.

Necesitaremos crear un sistema operativo que incluya:

– Linux Kernel 3.0.4 PREEMPT Real Time (con Multimedia, V4L, WiFi”’’s full, reparado y optimizado)
– Base Debian 6.0.1
– LXDE
– Firefox 7.0.1
– Linux-live actualizado Squashfs-xz, AUFS 3.0
11.11.11: – Agregado Kernel-headers. (Solución a compilación de modulos, por ejemplo soporte driver nvidia oficial…)
– Compilado Compat-Wireless completo soporte a todos los dispositivos (Soporte a muchas tarjetas de WiFi…)
– Agregados 23 Firmwares para dispositivos WiFi”’’s etc. (Soporte de varios dispositivos y tarjetas WiFi)
– Corregidos scritps xconfigure, xconfkrn, xstartxconf. (Solución a autoconfiguración de video)

La situación en la que estamos,

Kernel: Linux mozart 3.2.0-4-686-pae #1 SMP Debian 3.2.60-1+deb7u3 i686 GNU/Linux
Base Debia: Nosotros hemos instalado el núcleo 7. Hemos actualizado.

Gestor de Ventanas; El proyecto emplea LXDE. El primer paso que vamos a iniciar tras instalar el sistema base, es instalar el gestor de ventanas y por supuesto personalizarlo a nuestra versión de EstrellaRoja-MOZART


Instalación de un Gestor de Ventanas.

Asando el gestor de paquetes para instalar la version de LXDE.

Tenemos tres instalaciones posibles:

– El mínimo, instala lo minimo para que funcione, instala tan poco, que no mere la pena siquiera. Son 125 mb

– El medio; instala lo necesario para empezar. Son 252 mb

– En completo: que lo instala absolutamente todo. Son 575 mb. Es decir todos los paquetes que pueden correr sobre LXDE, el 90% no los vas a usar en tu vida, o tienes mucho tiempo libre.

La mejor opción seria el mínimo, pero vamos a instalar el medio. El porque, para quitarnos futuras dependencias, ya que nos instalara todos los compiladores necesarios. Y como nuestro sistema ha de llevar los frimeware para las tarjetas wiffi, el medio ya nos actualiza parte de esa faena.

Para instalarlo, como root

# apt-get install lxde

Captura de pantalla de 2014-09-26 11:01:01

Pulsas SI y si tienes perro es un buen momento para ir a sacar al perro. Ya que tardara un rato.

Aunque no es conveniente reiniciar en este proceso, ya que podríamos forzar la ejecución de las X.

Reiniciamos la maquina con un Init 6.

Una vez reiniciada tendríamos un menú idéntico a este, no tiene nada y esta completamente vacío de aplicaciones.

Captura de pantalla de 2014-09-26 11:24:26

Toda vida estamos muy lejos de tener una distribución de EstrellaRoja.

Bueno. Vamos a personalizarlo un poco.


El objetivo de EstrellaRoja-MOZART no es otro que disponer de una estación de trabajo para generar streeming de Audio a petición de algunos compañeros que buscaban una entorno que solo realizara esta acciones, pero que además incluyera; Un procesador de Texto y un Navegador Web.

Antes de realizar estas acciones, se instalo en un Linux Mint, un montón de aplicaciones de streeming de Audio con la instalación que el usuario las testara y indicara cual le eran mas cómodas para trabajar.

En este sentido se instalaron para edición de Audio se instalaron las siguientes aplicaciones:

– Audacity

– Ardour

– Hydrogen

– Linux Multimedia Studio

– RoseGarden

Aunque el usuario indicaba que con la que mas cómodo se sentía era con el Audacity, MOZART llevara implementadas las demás aplicaciones, con el fin de generar un entorno que pueda ser útil para otros usuarios.


Personalizando la versión de EstrellaRoja-MOZART

Instalación de paquetes requeridos para la versión.

# apt-get install audacity

# apt-get install ardour

# apt-get install hydrogen

# aptget install lmms

# aptget install rosegarden

Con estos paquetes tenemos los requerimientos del usuario en cuanto a streeming de Audio.

Ahora requerimos un Navegador y un Procesador de Texto.

En cuanto al Navegador, hemos visto ya las especificaciones de EstrellaRoja, como navegador por defecto usaremos Firefox.

Como procesador por defecto usaremos LibreOffice.

Vamos al tajo:

Instalación del Firefox. Los tíos de Firefox que son muy listos y gente que sabe, pues han realizado un manual para la instalación, no hay mas que seguirlo.

Por de pronto nos indican que debemos actualizar nuestro source.list para descargar el paquete. Pues a ello. También lo podéis hacer mediante los binarios, pero sinceramente es una perdida de tiempo, un día de estos si os apetece lo hacéis si queréis personalizar que te cagas el firefox, a mi con la versión por defecto me vale.

Para instalar el LibreOfice:

# aptget install libreoffice

Para que este en español

# apt-get install libreoffice-l10n-es

Y para que la ayuda este en español

# apt-get install libreoffice-help-es


Segundas configuraciones; añadir todos los codec de audio y video necesarios.

Este punto he querido dejarlo aparte, porque sin codec de audio como que la cosa no va ir demasiado bien.

Añadiremos a nuestro MOZART todos los codec necesarios para editar audio, algunos son de vídeo, pero no pasa nada.

Necesitamos disponer de los repositorios multimedia. Por lo tanto editaremos el source.list y añadiremos lo siguiente;

deb http://www.deb-multimedia.org wheezy main non-free

actualizamos el servidor de paquetes;

# apt-get update

instalamos el Keyring

# apt-get install deb-multimedia-keyring

Podríamos hacerle un upgrade, pero me gusta que quede limpio, con lo que no lo hare.

Empezamos la instalación de codecs

#  apt-get install libdvdcss2

# apt-get install faad gstreamer0.10-ffmpeg gstreamer0.10-x gstreamer0.10-fluendo-mp3 gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly ffmpeg lame twolame vorbis-tools libquicktime2 libfaac0 libmp3lame0 libxine1-all-plugins libxine2-all-plugins libdvdread4 libdvdnav4 libmad0 libavutil51 sox libxvidcore4 libavcodec53 libavcodec54 libavdevice53 libavdevice54 libstdc++5

Los codec para 32bit

# apt-get install w32codecs

Los codec para 64bit

apt-get install w64codecs

Bueno pues ya lo tenemos. Con los paquetes requeridos por el usuario.

Ahora personalizaremos la interfaz, pero primero personalizaremos el menú.

Si vais al escritorio, al menu, vereis mas o menos que el menú de inicio se ha quedado hecho un cristo.

Por ejemplo;

De las herramientas de audio que tenemos, pues resulta que no están todas en su menú.

Captura de pantalla de 2014-09-26 12:56:11

Donde se encuentran las que faltan, pues en el menú otros;

Captura de pantalla de 2014-09-26 12:57:41

Bueno y si repasáis un poco mas las cosas, las cosa esta mil veces repetida y demás.


Bueno pues personalizaremos el menú.

Hay tres formas de hacerlo,

Primera: Editando los archivos de configuración y creando nuevos menús o eliminando los que hay ejecutando los scripts del sistema.

Segunda: Con una herramienta llamada lxmenu-editor, editas, eliminas y demás.

Tercera: Usando la herramienta Main Menu Editor. Este rula en java, así que cuidado, que el java por alguna inexplicable razón, pues la peña lo usa y además de ser posiblemente el peor lenguaje de programación que existe, no os daréis cuanta de la cantidad de código basura que puede llegar a generar.

Vale, sobre esto, os diré, no seis chapuzas, si hacéis las cosas bien una vez, no tenéis que volver a repetir la faena. Usar la primera opción que es la que explico, las otras ni me molesto en explicarlas, si son muy gráficas, muy chulas y generan una cantidad de código basura, que al final peta medio sistema operativo. Así que usar la primera, que es la que explico. El 90% de las versiones de Linux petan precisamente porque sus diseñadores a la hora de ahorrase tiempo se ahorran tiempo donde es imprescindible dedicarle tiempo. Esto esa así, y no hay vuelta de hoja.


Personalizar y organizar el Menú.

La cosa es muy sencilla las aplicaciones que hemos instalado se encuentran en dos directorios;

/usr/share/applications

/home/usuario/.local/share/applications

En el primero encontrariamos lo siguiente;

root@mozart:/usr/share/applications# ls -la
total 276
drwxr-xr-x   4 root root  4096 sep 26 12:39 .
drwxr-xr-x 201 root root  4096 sep 26 12:52 ..
-rw-r–r–   1 root root   280 jun 25  2012 ardour.desktop
-rw-r–r–   1 root root   685 jun 30  2012 audacity.desktop
-rw-r–r–   1 root root  6043 jul 10  2012 bluetooth-sendto.desktop
-rw-r–r–   1 root root  6552 jul 10  2012 bluetooth-wizard.desktop
-rw-r–r–   1 root root  2674 sep  5 16:41 firefox.desktop
-rw-r–r–   1 root root   542 feb 19  2009 galculator.desktop
-rw-r–r–   1 root root   259 may 20  2012 gcr-prompter.desktop
-rw-r–r–   1 root root   684 may 20  2012 gcr-viewer.desktop
-rw-r–r–   1 root root  3002 oct 10  2011 gksu.desktop
-rw-r–r–   1 root root  5853 may 18  2012 gpicview.desktop
-rw-r–r–   1 root root   562 jun 12  2012 hydrogen.desktop
-rw-r–r–   1 root root   300 oct  2  2013 icedtea-netx-javaws.desktop
-rw-r–r–   1 root root   191 oct  2  2013 itweb-settings.desktop
drwxr-xr-x   2 root root  4096 sep 26 12:16 kde4

….

Vamos a editar por ejemplo una aplicacion que sabemos que no esta en su sitio;

root@mozart:/usr/share/applications# more X-Debian-Applications-Sound-lmms.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=LMMS
Icon=/usr/share/pixmaps/lmms.xpm
Exec=/usr/bin/lmms
Terminal=false
Categories=AudioVideo;
Name[es_ES]=LMMS
Comment[es_ES]=Linux MultiMedia Studio

Descripción de cada elemento;

Aquí están las descripciones de este fichero:

  • [Desktop Entry] – indica que este archivo es un archivo *.desktop
  • Encoding=UTF-8 – la codificación usada es UTF-8
  • Exec=warsow – ruta del binario o script usado para iniciar el programa
  • Icon – ruta del ícono para la entrada
  • Type=Application – el fichero está iniciando una aplicación
  • Terminal=false – el programa no debe correr en una terminal
  • Name=Warsow – nombre a mostrar en el menú
  • GenericName=warsow – descripción de la entrada
  • StartupNotify=false – notificación de inicio desactivada
  • Categories – especifica la categoría en que la entrada será ubicada en el menú (pueden asignársele varias categorías separándolas a éstas con punto y coma, ej. ‘Juegos;Educación’)

Cuando no haya categoría entonces entraría en otros, como por ejemplo, este mismo archivo sin ser modificado;

Este sin ser modificado, ya que es muy largo como para ponerlo aqui, crea su propia categoria que ess;

[Desktop Entry]
Type=Application
Encoding=UTF-8
Icon=/usr/share/pixmaps/lmms.xpm
Exec=/usr/bin/lmms
Terminal=false
Categories=X-Debian-Applications-Sound;
Name[es_ES]=LMMS
Comment[es_ES]=Linux MultiMedia Studio

Las categorías por defecto, son;

Main Category Description Notes
AudioVideo A multimedia (audio/video) application
Audio An audio application Desktop entry must include AudioVideo as well
Video A video application Desktop entry must include AudioVideo as well
Development An application for development
Education Educational software
Game A game
Graphics Graphical application
Network Network application such as a web browser
Office An office type application
Settings Settings applications Entries may appear in a separate menu or as part of a “Control Center”
System System application, “System Tools” such as say a log viewer or network monitor
Utility Small utility application, “Accessories”

Todo lo que no este en este grupo de categorías por defecto, se ira por siempre al menu de Otros o de Other.

Luego si lo queremos en la categoria correcta deberemos cambiarla por;

[Desktop Entry]
Type=Application
Encoding=UTF-8
Icon=/usr/share/pixmaps/lmms.xpm
Exec=/usr/bin/lmms
Terminal=false
Categories=AudioVideo;
Name[es_ES]=LMMS
Comment[es_ES]=Linux MultiMedia Studio


Instalando todos los Compat-Wireless y los frimware para tarjetas Wifi

Bueno ya esta el menu como lo necesitamos, organizado, con cada cosa en su sitio y un sitio para cada cosa.

Entes de instalar el entorno de escritorio y personalizar el arranque y demás. Instalaremos los paquetes de los frimware para las tarjetas wiffi.

Vamos a compilar un Compat-Wireless, tenemos en cuanta que hay bug importante en los Compat, habrá que solucionarlo, me di cuenta de dicho bug hace unas semanas tratando de ayudar a una colega a configurar su wiffi, me reporto bastante errores. Le he cambiado el genero, para hacerme mas interesante. Pero vamos …

En la web Linux Wireless tenemos los drivers que tenemos que compilar. Hace 2 semanas presente un bug y la noche pasada conseguimos realizar una corrección. En principio este bug queda corrige los problemas que han surgido con la instalación de tarjetas wiffi en …

Abra que compilar un poquito. Por de pronto necesitamos una linux-headers apropiada para nuestra kernel, por lo tanto si hacemos un sheart nos deberá dar como resultado que la disponible para nuestra kernel es;

# apt-cache search linux-headers-$(uname -r)
linux-headers-3.2.0-4-686-pae – Header files for Linux 3.2.0-4-686-pae

Ahora la instalamos;

# apt-get install linux-headers-$(uname -r)

también necesitaremos el paquete make.

# apt-get install make

Descargamos la ultima versión de Linux Wireless.

La descomprimimos y compilamos.

Acto seguido instalamos todos los firmware para las tarjetas wireless.

La lista completa esta en la siguiente dirección: https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=names&keywords=+firmware

Con esto solucionamos el posible problema de compatibilidad con tarjetas – usb -modem wiffi.


Antes de empezar a crear la interfaz, mejor dicho a personalizarla, el usuario ha solicitado tener instalado el spyke, bueno, pues nada, es bastante sencillo, no lo añadiré a este manual, el procedimiento lo tenéis, copiado de un compañero al que le pedí ayuda, ya que yo no uso esas cosas, para probar que funcionaba me cree una cuenta y todo, en fin, aquí tenéis el procedimiento por si interesa instalarlo en el cd-live o si lo quiries instalar después. Procedimiento para instalar Spyke.

Una vez instalado el asunto queda así:

Captura de pantalla de 2014-10-15 11:35:15


Ahora empezaremos a diseñar la interfaz.

Entorno de escritorio EstrellaRoja

Icono de inicio:

/usr/share/lxpanel/images/estrellaroja.png


Los distintos tapices de escritorio están en:

/usr/share/wallpapers


Los screenlets

Para instalarlos es necesario bajar el siguiente paquete de Debian:

screenlets_0.1.2-8_all.deb

una vez descargado lo relizamos el correspondiente dkpg -i para instalarlo.

Al arrancarlo nos dará el siguiente error:

/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
warnings.warn(str(e), _gtk.Warning)
Traceback (most recent call last):
File “/usr/share/screenlets-manager/screenlets-manager.py”, line 28, in <module>
import screenlets
File “/usr/lib/pymodules/python2.7/screenlets/__init__.py”, line 51, in <module>
from options import *
File “/usr/lib/pymodules/python2.7/screenlets/options.py”, line 216, in <module>
import gnomekeyring
ImportError: No module named gnomekeyring

Esto significa que faltan los keyring  de gnome, descargamos entonces este paquete:

wget http://ftp.de.debian.org/debian/pool/main/g/gnome-python-desktop/python-gnomekeyring_2.30.0-4_i386.deb

Lo mismo que antes realizamos un dpkg -i para instalarlo.

Nos dira que las dependencias no se cumplen y por lo tanto realizaremos un apt-get install -f

estrellaroja-mozart:/tmp# apt-get install -f
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Corrigiendo dependencias… Listo
Se instalarán los siguientes paquetes extras:
python-gnomekeyring
Se actualizarán los siguientes paquetes:
python-gnomekeyring
1 actualizados, 0 se instalarán, 0 para eliminar y 14 no actualizados.
1 no instalados del todo o eliminados.
Necesito descargar 67,3 kB de archivos.
Se liberarán 2.048 B después de esta operación.
¿Desea continuar [S/n]? S
Des:1 http://ftp.es.debian.org/debian/ wheezy/main python-gnomekeyring i386 2.32.0+dfsg-2+b1 [67,3 kB]
Descargados 67,3 kB en 0seg. (139 kB/s)
Leyendo lista de cambios… Hecho.
(Leyendo la base de datos … 142768 ficheros o directorios instalados actualmente.)
Preparando para reemplazar python-gnomekeyring 2.30.0-4 (usando …/python-gnomekeyring_2.32.0+dfsg-2+b1_i386.deb) …
Desempaquetando el reemplazo de python-gnomekeyring …
Configurando python-gnomekeyring (2.32.0+dfsg-2+b1) …

Ahora hacemos una prueba con por ejemplo el CleanWeather.

Aqui tenis que añadir el zip de vuestra zona horaria, segun la aplicacion, si vais a la pagina web seria:

http://www.weather.com/outlook/weatherbyzip/

Buscais vuestro zip para vuestra ciudad

Por ejemplo Alicante: saldria

http://www.weather.com/weather/today/Alicante+SPXX0008:1:SP

El Zip entonces es SPXX0008

Botón derecho del raton sobre la imagen de las nubes y ponéis vuestro ZIPCODE

Y la película quedaría asi:

Captura de pantalla de 2014-10-17 13:10:42


 –> No voy añadir el wbarconf que es la barra superior con los accesos rápidos, no lo añado sencillamente porque pesa mucho y me parece una chorrada, prefiero que rinda bien el sistema a que sea espectacularmente bonito. Al fin y al cabo este EstrellaRoja no pertenece al proyecto de AlbaSol por lo que tampoco debo porque seguir el procedimiento al pie de la letra, a parte de que, no es por nada, pero bueno, no haré comentarios, pero … repasar un poquito el núcleo que peta un poco.

Cambiar la configuración del GRUB

He pensado que usar un Lillo esta muy bien, es muy bonita y todo ese tipo de cosas, pero Grub2 tampoco esta mal, así que personalizaremos el sector de arranque sobre la GRUB instalada, ir para atrás como los cangrejos (aunque nunca me he fijado si van o no van para atrás) el caso, es que personalizaremos sobre lo ya existente.

El archivo que debemos editar en GRUB es grub.cfg, que lo tenemos en el /boot/grub/

En dicho archivo si vemos lo que tenemos por defecto nos aparecerá esto:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
load_env
fi
set default=”0″
if [ “${prev_saved_entry}” ]; then
set saved_entry=”${prev_saved_entry}”
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [ -z “${boot_once}” ]; then
saved_entry=”${chosen}”
save_env saved_entry
fi
}

function load_video {
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd0,msdos1)’
search –no-floppy –fs-uuid –set=root 25233a5e-c8cf-4254-80b9-950b5df0d85b
if loadfont /usr/share/grub/unicode.pf2 ; then
set gfxmode=640×480
load_video
insmod gfxterm
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)’
search –no-floppy –fs-uuid –set=root 25233a5e-c8cf-4254-80b9-950b5df0d85b
set locale_dir=($root)/boot/grub/locale
set lang=es_ES
insmod gettext
fi
terminal_output gfxterm
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)’
search –no-floppy –fs-uuid –set=root 25233a5e-c8cf-4254-80b9-950b5df0d85b

insmod png
if background_image /usr/share/images/desktop-base/joy-grub.png; then
set color_normal=white/black
set color_highlight=black/white
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry ‘Debian GNU/Linux, with Linux 3.2.0-4-686-pae’ –class debian –class gnu-linux –class gnu –class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)’
    search –no-floppy –fs-uuid –set=root 25233a5e-c8cf-4254-80b9-950b5df0d85b
    echo    ‘Loading Linux 3.2.0-4-686-pae …’
    linux    /boot/vmlinuz-3.2.0-4-686-pae root=UUID=25233a5e-c8cf-4254-80b9-950b5df0d85b ro  quiet
    echo    ‘Loading initial ramdisk …’
    initrd    /boot/initrd.img-3.2.0-4-686-pae
}
menuentry ‘Debian GNU/Linux, with Linux 3.2.0-4-686-pae (recovery mode)’ –class debian –class gnu-linux –class gnu –class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)’
    search –no-floppy –fs-uuid –set=root 25233a5e-c8cf-4254-80b9-950b5df0d85b
    echo    ‘Loading Linux 3.2.0-4-686-pae …’
    linux    /boot/vmlinuz-3.2.0-4-686-pae root=UUID=25233a5e-c8cf-4254-80b9-950b5df0d85b ro single
    echo    ‘Loading initial ramdisk …’
    initrd    /boot/initrd.img-3.2.0-4-686-pae
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the ‘exec tail’ line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

De este, debemos fijarnos en lo que aparece en negrita y rojo, para empezar a personalizar nuestro sistema operativo.

### BEGIN /etc/grub.d/10_linux ###
menuentry ‘Debian GNU/Linux, with Linux 3.2.0-4-686-pae’ –class debian –class gnu-linux –class gnu –class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)’
    search –no-floppy –fs-uuid –set=root 25233a5e-c8cf-4254-80b9-950b5df0d85b
    echo    ‘Loading Linux 3.2.0-4-686-pae …’
    linux    /boot/vmlinuz-3.2.0-4-686-pae root=UUID=25233a5e-c8cf-4254-80b9-950b5df0d85b ro  quiet
    echo    ‘Loading initial ramdisk …’
    initrd    /boot/initrd.img-3.2.0-4-686-pae
}
menuentry ‘Debian GNU/Linux, with Linux 3.2.0-4-686-pae (recovery mode)’ –class debian –class gnu-linux –class gnu –class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)’
    search –no-floppy –fs-uuid –set=root 25233a5e-c8cf-4254-80b9-950b5df0d85b
    echo    ‘Loading Linux 3.2.0-4-686-pae …’
    linux    /boot/vmlinuz-3.2.0-4-686-pae root=UUID=25233a5e-c8cf-4254-80b9-950b5df0d85b ro single
    echo    ‘Loading initial ramdisk …’
    initrd    /boot/initrd.img-3.2.0-4-686-pae
}

Tal y como nos aparece es como se define el nucleo de nuestro sistema.

Observar que los comentarios van con una comilla ‘, es decir entrecomillados con comillas simples

Deberemos sustiuir lo que aparece en ese entrecomillado por lo que nosotros queremos que ponga:

Ejemplo: menuentry ‘Debian GNU/Linux, with Linux 3.2.0-4-686-pae’ –class debian –class

Nosotros queremos que ponga: menuentry ‘EstrellaRoja-Mozart GNU/Linux, version 1.0’ –class debian –class

Para ello editamos el archivo con VI o con tu editor favorito (no entrare en debates si emacs o vi, porque ya he tenido bastantes). Usa el que te sientas mas cómodo y olvídate de los comentarios de otros, la mayoria que hacen esos comentarios, me apuesto un chuletón ha que no han tocado código en su vida, pero eso si son mas machos tocando los huevos. Yo el emacs lo uso para programar en prolog o cualquier lenguaje de inteligencia artificial o de bajo nivel, pero para un script, tanto si tengo que hacerlo desde cero como retocar, uso VI. Un día de estos haré un vídeo manual de VI, sobre todo para esas pequeñas cosas.

Nota –> Acostumbraros a tocar el Grub con total comodidad, saberos los parámetros de memoria, son 3 y no quita tiempo, pero es muy importante si un día tenéis que montar un cluster, y hay un disco de quorum por medio, en el Grub podéis definir los tiempos de arranque los servidores, y por lo tanto en un reinicio siempre el servidor 1 se queda con el disco de quorum. Esto ya lo veremos en clusters activo/activo, cuando sobre tiempo tanto para el dba Rogelio como para mi.

Bueno volvamos al asunto que nos trae, hemos cambiado los comentarios y la cosa quedaria mas o menos asi;

### BEGIN /etc/grub.d/10_linux ###
menuentry ‘EstrellaRoja-Mozart GNU/Linux, version 1.0’ –class debian –class gnu-linux –class gnu –class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)’
    search –no-floppy –fs-uuid –set=root 25233a5e-c8cf-4254-80b9-950b5df0d85b
    echo    ‘Loading Linux 3.2.0-4-686-pae …’
    linux    /boot/vmlinuz-3.2.0-4-686-pae root=UUID=25233a5e-c8cf-4254-80b9-950b5df0d85b ro  quiet
    echo    ‘Loading initial ramdisk …’
    initrd    /boot/initrd.img-3.2.0-4-686-pae
}
menuentry ‘EstrellaRoja-Mozart GNU/Linux, version 1.0 (modo de recuperacion)’ –class debian –class gnu-linux –class gnu –class os {
    load_video
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)’
    search –no-floppy –fs-uuid –set=root 25233a5e-c8cf-4254-80b9-950b5df0d85b
    echo    ‘Loading Linux 3.2.0-4-686-pae …’
    linux    /boot/vmlinuz-3.2.0-4-686-pae root=UUID=25233a5e-c8cf-4254-80b9-950b5df0d85b ro single
    echo    ‘Loading initial ramdisk …’
    initrd    /boot/initrd.img-3.2.0-4-686-pae
}

La cosa tiene que quedar así:

Captura de pantalla de 2014-10-15 13:11:53

Ya hemos personalizado el nombre, ahora personalizaremos la imagen del arranque.

Cambiar la imagen de arranque del grub no tiene mayor historia que editar el archivo de carga del arranque, en este caso lo encontramos en, el que carga según la configuración de nuestra Grub es el 05_debian_theme

/etc/grub.d/05_debian_theme

Lo editamos y al final del todo nos indica que archivo imagen esta cargando, y lo sustituimos por el que queremos.

por ejemplo;

# If we haven’t found a background image yet, use the default from desktop-base.
if set_background_image “/usr/share/images/desktop-base/estrellaroja.png”; then
exit 0
fi

Hacemos el correspondiente

update-grub

Y listo

La película quedaría;

Captura de pantalla de 2014-10-18 10:19:22

 


Configuraciones Extras para dejarlo mas bonito:

1.  Modificar el arranque para ocultar los procesos de arranque cargando una plymouth personalizada.

Para empezar deberemos instalar los siguientes paquetes y sus dependencias:

apt-get install plymouth
apt-get install plymouth-drm
Una vez instalados vamos al /etc/default/grup
y donde pone
GRUB_CMDLINE_LINUX_DEFAULT=”quiet”
Añadimos al final de la linea  la palabra “splash”
de tal tomo que quede
GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
En el mismo archivo vamos a la linea que estará comentada es decir tendrá una “#” delante,
#GRUB_GFXMODE=640×480
La descomentamos y cambiamos la resolución, suponemos que todos los monitores de ahora son mayores a las 20″, por lo tanto la resolución mas aceptable seria; 1280×1024
Si son inferiores la resolución mas aceptable, es decir de 17″ para arriba seria de; 800×600
Recomiendo usar la según resolución, no te pillas los dedos y en teoría debe ir con todos los monitores.
es decir quedaría la cosa:
GRUB_GFXMODE=1024×768

–> No os pilleis los dedos, que que en tu casa tu seas informatico (como hay pocos)  y tengas un pedazo monitor del carajo, no es el caso común. Asi que si quieres hacer una distribución, usa un poco el sentido comun, aunque sea el menos común de todos los sentidos. Esto es como un condón pero con sentido común!

Ahora editamos el archivo /etc/initramfs-tools/modules

Y añadimos al final del archivo lo siguiente:
uvesafb mode_option=1024×728×32 mtrr=3 scroll=ywrap
Actualizamos el Grub
update-grub
update-initramfs -u
Con esto ya tenemos el arranque gráfico activado
Podemos hacer una prueba y cargar uno.
Con el comando
plymouth-set-default-theme –list
No escipiria la lista por defecto que seria esta:
estrellaroja-mozart:/etc/default# plymouth-set-default-theme –list
details
fade-in
glow
joy
script
solar
spacefun
spinfinity
spinner
text
Escogemos cualquiera para probar, por ejemplo spacefun, con el siguiente comando;
plymouth-set-default-theme spacefun
Actualizamos nuevamente la configuración del grub;
update-initramfs -u
Reiniciamos y probamos.
La película quedaría así;
Captura de pantalla de 2014-10-18 13:26:16
Crear nuestra propia presentación de EstrellaRoja
Bueno vamos a poner la siguiente presentación.
–> Existe un paquete que se llama; Debian-plymouth-manager
Bueno, yo no he conseguido hacerlo correr nunca, mas que nada por es de esas pequeñas cosas, que me importan tan poco, el grupito de instalar aplicaciones gráficas para configurar chorradas, es que no pierdo el tiempo con ello. No obstante quien quiera perderlo allí os dejo el enlace.
Esta presentación consta de dos partes
1- Poner esta presentación es un chorrada que veremos a continuación
silent-1024x768
2- Que la tecla F2 nos muestre los procesos en pantalla, mas chorrada aun, si cabe.

  Y ultimo antes de finalizar la aplicacion, añadir un pequeño manual al escritorio, para que el usuario conozca los accesos y demás.

No estaria de menos añadir los rss de los servidores de noticias mas comunes del usuario, con el fin de que disponga de dichos servidores a su antojo.

Yo uso para eso un plugin de firefox que va ni que al pelo.
Se añaden los RSS solicitados por el usuario
Captura de pantalla de 2014-10-19 15:14:02

 Damos por finalizada la versión, empezamos a empaquetar en el correspondiente Live-CD,  que analizaremos en el punto siguiente.

Generar el Live-CD

 


Wiki del Proyecto

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s