GNU/Linux


Nota Inicial:


Hace poco que me enteré de este nuevo init: InitNG que podrá reemplazar a la clásica herramienta SysVinit de nuestro sistema GNU/Linux con la gran ventaja de cargar los procesos que se ejecutan en el arranque en forma paralela y asincrónica. Incluso existe una Live-CD polaca que ya integró este fantástico Init: http://home.gna.org/pingwinek/index.html

Comparándolo con el antiguo init me he ahorrado más de 15 segundos en el arranque y funciona perfectamente, sin ningún cuelgue ni nada.
Es más podremos sólo probarlo si queremos agregando un simple parámetro en nuestro cargador de arranque (GRUB, Lilo) =)

I.- Instalando:

El primer paso será instalarlo, en este caso en Debian, tenemos un repositorio con paquetes precompilados; bastará añadir al “/etc/apt/sources.list”:

deb http://debian.space-based.de/debs/ experimental main
deb-src http://debian.space-based.de/debs/ experimental main

Y a continuación hacemos:

#aptitude update

#aptitude install initng-ifiles

La herramienta configurará y detectará automáticamente nuestros scripts de arranque y los guardará con un formato propio (archivos con extensión .i) y creará un directorio para cada demonio, agrupando los scripts en
3 directorios principales: “net”, “system” y “daemon”.
El directorio principal de configuración de InitNG se encuentra en /etc/initng.

Por último nos queda modificar nuestro cargador de arranque:

(a) Si usamos GRUB:

Agregamos en la línea del kernel: “init=/sbin/initng”

Por ejemplo mi línea quedaría así:

title Elive GNU/Linux kernel 2.6.16
root (hd0,3)
kernel /boot/vmlinuz-2.6.16.5 root=/dev/hda4 init=/sbin/initng vga=0x317
initrd /boot/initrd.img-2.6.16.5

(b) O si usamos Lilo:

Agregamos esta nueva línea: append = “init=/sbin/initng”
Un ejemplo:

image = /boot/vmlinuz-2.6.16.5
root = /dev/hda4
label = Elive GNU/Linux kernel 2.6.16 linux-initng
append = "init=/sbin/initng"

Nos queda reiniciar y disfrutar de un veloz arranque !!!

(La primera vez quizás irá lento, pero en el segundo arranque sentirás la diferencia)

II.- Herramientas de InitNG:

ngc —> Herramienta de control de Init (Equivalente a telinit)
ng-update —> Herramienta de configuracion de los niveles de arranque.
gen_system_runlevel.sh —> Script generador de niveles.
install_service —> Instalar servicios initng’s (.ii )


III.- Algunos comandos adicionales:

*** Agregar un servicio:

#ng-update add DIRECTORIO/SERVICIO default

*En DIRECTORIO se coloca el respectivo directorio en el que se encuentra el servicio. (net, system, daemon)

*** Eliminar un servicio:

#ng-update del DIRECTORIO/SERVICIO default

*** Crear todos los scripts de inicio para todos los niveles:

#gen_system_runlevel -all

*** Iniciar/Detener/Reiniciar un servicio

#ngc -u/-d/-r SERVICIO


Más información
:

man initng


IV.- Posibles problemas:

Si no detectara adecuadamente un servicio necesario, lo que debemos hacer es ir al directorio de ejecución que usamos por defecto, en Debian tendríamos que mirar en: “/etc/rc.2.d/”, ahí se encuentran todos los scripts que se cargan por defecto en un inicio normal del sistema
; por ejemplo yo uso el administrador de sesión gráfico entrance pero no me lo añadió de forma automática, por lo tuve que ver en /etc/initng/daemon/, encontré ahí el archivo: “entranced.i” y lo añadí al inicio con el comando:

ng-update add daemon/entranced default


Notas Finales:

En la web principal del proyecto existen también paquetes para Fedora, ebuilds para Gentoo y por supuesto el código fuente)
Enfin, las posibilidades de este Init son muchas, existe además un GUI para Gtk: http://www.initng.org/attachment/wiki/initng-conf-gtk/initng_conf_gtk_in_action.png de configuración de niveles, así como muchos
plugins adaptables a nuestro init. Más en la web principal del proyecto.


Referencias:

http://bulma.net/body.phtml?nIdNoticia=2288
http://www.initng.org/

Me intereza como cualquier usuario, conocer a fondo la distro que uso, al menos sus propósitos y cómo se mantiene. Y hoy quiero hablar sobre Ubuntu (palabra adaptada de una conocida ideología africana), pues es una distro muy popular y es la que muchas veces uso; personalmente de esto depende mi satisfacción como usuario que soy. ;-)

Ubuntu es un proyecto que tiene detras a una gran empresa y como también patrocinadores, al contrario de Debian; lo que le permitió a la distro hacerse muy popular.

Esto gran parte gracias al gran financiamiento que recibe, de atraer cada vez más la popularidad y fanatismo, cabe decir que el proyecto ha prosperado logrando sus objetivos; el principal: Ofrecer a los usuarios más noveles una distro amigable, preconfigurada y lista para usarse, con la potencia de Debian, acercar y dar a conocer a más personas este gran mundo que encierra el software libre y de código abierto.

Pero yo pienso y me pregunto: ¿Por qué el creador de Ubuntu no confiaba en Debian y no apoyó este proyecto?

Conociendo que Debian es un gran comunidad, formada por gente amante al desarrollo del software libre, no podría estar financiada o apoyada bajo una empresa, porque eso le haría depender gran parte de alguien, y pues ya no tendría el espíritu inicial de sus inicios y que perdura hasta el día de hoy.

No sería parte ya de su naturaleza. Debian es una de las pocas distros que existen que vive bajo el esfuerzo de sus desarrolladores y ese es uno de los motivos por el cual perdura hasta el día de hoy sirviendo de inspiración y base para otras nuevas distros. Debian será siempre Debian y nunca cambiará. :-D

Mark Shuttleworth necesitaba invertir en algo productivo creando una empresa, y como el hombre es un filántropo le gustó la idea que una parte de los dessarrolladores de Debian le propusieron ya que estos no estaban muy contentos con el camino que estaba siguiendo Debian, querían una distro que triunfe en los llamados S.O. para Desktops y Mark que no dudó en hacerlo financió el proyecto, de esta manera apoyando el software libre. Hasta el momento Ubuntu ha cumplido con el stándar que pueda hacer llamarse “Distribución Linux”, hasta ahora no he detectado en forma global alguna infracción que le haga perder su atonomía de “Distribución”.

No digo que una empresa sea algo malo, pero espero que el proyecto no se “opaque” por la comercialidad y termine convirtiéndose en una “Red-hat”, “Mandrake”, “Caldera”; “Suse”; etc. que no se desvincule de su filosofía y propósitos.
La mayoría de usuarios y yo no deseamos que sea así. ;-)

Enlaces:

http://es.wikipedia.org/wiki/Ubuntu_Linux
http://es.wikipedia.org/wiki/Canonical_Ltda
http://es.wikipedia.org/wiki/Mark_Shuttleworth
http://www.ubuntu.com/ubuntu/relationship

Tenemos ante nosotros una herramienta gráfica que nos “personaliza” la carga del sistema; un proyecto de Spock para el gensplash de Gentoo y que hace uso del framebuffer mostrando una imagen de fondo en las tty (verbose mode) como también una en primer plano (silent mode).

Similar al conocido Bootsplash pero que éste ya no continúa en desarrollo.

Este tuto lo he escrito sobre un sistema Elive, una excelente distro basada en Debian, así que servirá para todo sistema “Debian-based” (y con un poco de suerte para cualquier sistema GNU/linux).

Primero hay que comprobar o instalar las herramientas necesarias para una correcta compilación:

(Nosotros utilizaremos el método por menus en consola (ncurses)).

#aptitude install kernel-package libncurses-dev gcc yaird initramfs-tools

Ahora, nos descargamos las fuentes de la última versión estable del kernel:
(En este momento es la 2.6.16.5)

http://www.kernel.org

Esperamos que descargue, (son casi 39 MB :-P ), así que los de conexión lenta no desesperen. xD

Lo descomprimimos en “/usr/src”, borramos el enlace antiguo al viejo kernel (si es que lo teníamos) y creamos uno nuevo para el que acabamos de descomprimir:

#tar xvjf linux-2.6.16.5.tar.bz2
#rm linux
#ln -s linux-2.6.16.5 linux

Necesitamos el parche fbsplash ; así que lo descargamos de aquí:
http://dev.gentoo.org/~spock/projects/gensplash/
(La última versión del parche al momento de crear este tutorial es la fbsplash-0.9.2-r5-2.6.16.patch)

Nos dirigimos al directorio del nuevo kernel y le aplicamos el parche:

#cd linux
#patch -p1 < /ruta_donde_se_encuentra_el_parche/fbsplash-0.9.1-2.6.10-rc3-bk6.patch

Ahora sólo debemos configurar el núcleo al “estilo Debian”, para los que antes ya hicieron lo de la configuración, no les demandará demasiado tiempo; para los que no, si gustan pueden partir de una configuración conocida de un kernel anterior, copiando el archivo “config” al directorio del kernel actual =):

#cp /boot/config-version-arquitecturag .config

#make menúconfig

Hay que tener cuidado y no olvidarnos de seleccionar las opciones que depende fbsplash (si no tampoco este tuto no tendría sentido alguno xD):

-> Device Drivers
-> Graphics Support
-> Console display driver support
[*] Framebuffer Console support
[*] Video mode selection support

-> Device Drivers
-> Graphics Support
[*] Support for the framebuffer splash

-> Device Drivers
-> Block devices
<*>RAM disk support
(8192) Default RAM disk size (kbytes)
[*] Initial RAM disk (initrd) support

NOTA:
Los siguientes comandos pertenecen a una compilación al estilo Debian; por mi parte a mi me gusta hacerlo al “modo clásico” (make && make modules_install, etc.); si ustedes
desean hacerlo así en
http://www.gentoo.org/doc/es/handbook/handbook-x86.xml?part=1&chap=7 tienen una excelente muestra de cómo hacerlo ;-)

Seguimos. Luego de configurar de acuerdo a las exigencias de nuestro equipo =), tecleamos:

#make-kpkg  clean

Y el poderoso comando de compilación:
(Este comando sustituye a las clásicas órdenes make dep, make clean, make bzImage y make modules)

#make-kpkg --append-to-version .XXX kernel_image kernel_headers

En XXX pongan lo que quieran; algo que diferencie este nuevo kernel de otros, se permiten: caracteres alfanuméricos, el guión (-),
el más (+) y el punto (.); no coloquen nombres tipo “-i386″, “-k7″, etc. para evitar futuros conflictos con los kernels precompilados de debian. =)

Lo del kernel_headers es opcional, pero es recomendable ya que muchos programas necesitan de estas cabeceras ;-)

Existen muchos otros parámetros, para mucha más info: “man make-kpkg” (ya está en español en la mayoría de los casos)

Esperamos apróximadamente 1 hora de compilación (dependiendo de nuestro equipo), y tendremos dos paquetes .deb
en “/usr/src” listos para usar =)

Vale; entonces intalamos:

#dpkg -i linux-headers-2.6.16.5.fbsplash.deb linux-image-2.6.16.5.fbsplash.deb


Necesitamos ahora las splashutils para trabajar con las imágenes, podemos descargar las sources de aquí:

http://dev.gentoo.org/~spock/projects/splashutils/current/

Pero existe un repositorio .deb de los splashutils de parte de Jean-Damien Durand , sólo debes agregar esta línea a tu “/etc/apt/sources.list“:

http://jdurand.home.cern.ch/jdurand/splashutils/ binary/

Y hacemos:

#aptitude-update && aptitude install splashutils

Ya casi tenemos todo listo; ahora necesitamos un theme, en http://www.bootsplash.de/files/themes/ encontramos muchos. :-D
Descomprimimos el tema en “/etc/bootsplash/themes” y utilizamos la herramienta “bootsplash2fbsplash” para convertir el theme a gensplash:

#cd /etc/bootsplash/themes
#bootsplash2fbsplash “mitema”

Se nos creará el tema respectivo en “/etc/splash“.

Y creamos la imagen initramfs de nuestro respectivo theme:

#splash_geninitramfs -v -g /boot/initrd.img-2.6.16.5.fbsplash -r 1024x768 mi_tema

Y por último, nos queda añadir una entrada a “/boot/grub/menu.lst” de nuestro respectivo kernel y con los parámetros adecuados para que se cargue al inicio junto con nuestro tema de genplash:

Las líneas en mi caso quedarían mas o menos así:

title Elive GNU/Linux kernel 2.6.16.5 with fbsplash
root (hd0,3)
kernel /boot/vmlinuz-2.6.16.5.fbsplash root=/dev/hda4 splash=silent,fadein,theme:tu_tema_actual quiet CONSOLE=/dev/tty1 vga=791
initrd /boot/initrd.img-2.6.16.5.fbsplash

Queda reinciar y si todo lo hemos hecho correctamente, ya tendreamos un guapo arranque con nuestro theme gracias al framebuffer y el fbsplash :-D

Enlaces:

http://es.gentoo-wiki.com/HOWTO_fbsplash
http://jdurand.home.cern.ch/jdurand/fbsplash.html
http://newbiedoc.sourceforge.net/system/kernel-pkg.html