Freambuffer y bootsplash en gentoo

Bueno, este howto no es mio, si no que lo he sacado de los foros de gentoo. Concretamente aqui, alli esta mas extenso, asi que si sabeis algo de ingles miraoslo alli. Yo me limitare a traducirlo con mi propia experiencia. Primero que todo os meto una captura para que veais como queda

Imagen

Ahora que ya os ha caido bastante la baba, vamos a ello XD:
Bien, lo primero que tenemos que saber es si nuestro kernel soporta bootsplash (y no es el tipico tux alcoholico de nuestros amigos lo debianitas ;) ) si no la pantalla completa. Para esto necesitaremos un gaming-sources o un gentoo-sources (comporbad que /usr/src/linux apunta a donde toca). Si somos de los renegados que aun usa vanilla XD, pues tocara parchear el kernel con algo como esto de la manera usual. Para parchear:

# cd /usr/src/linux/
# patch -p1 < bootsplash-3.0.7-2.4.20-vanilla.diff

Ahora tenemos que activar algunas opciones en el kernel:

# cd /usr/src/linux/
# make menuconfig

y una vez dentro:
Code maturity level options  --->
    [*] Prompt for development and/or incomplete code/drivers
Processor type and features  --->
    [*] MTRR (Memory Type Range Register) support
Block Devices ->
    [*] Loopback device support
    [*] RAM disk support
    (4096)   Default RAM disk size
    [*] Initial RAM disk (initrd) support
Console Drivers ->
    [*] VGA text console
    [*] Video mode selection support
Frame-buffer support ->
    [*] Support for frame buffer devices
    [*] VESA VGA graphics console
    [*] Use splash screen instead of boot logo


lo compilamos y tal, lo copiamos en el /boot/ (acordaos de montarlo) y continuamos sin desmontarlo.
Ahora actualizaremos nuestro USE en el /etc/make.conf con los parametros "aalib directfb fbcon svga" y emergeremos un par de paquetes:

# ACCEPT_KEYWORDS=~x86 emerge --noconfmem bootsplash
# ACCEPT_KEYWORDS=~x86 USE="-kde" emerge gentoo-artwork (opcional aunque obligatorio a menos que tengas la imagen del bootsplash preparada por ahi)

si os dice algo de actualizar, podeis echar mano del etc-update, ya que no son ficheros criticos

ahora vamos con:

/sbin/splash -s -f /etc/bootsplash/default/config/bootsplash-1280x1024.cfg > /boot/initrd-1280x1024


cambiando la resolucion por aquella que deseemos para nuestro framebuffer

Ahora toca modificar el gestor de arranque adecuadamente para que en el arranque nos coja nuestro bootsplash [tomaaa]

Las opciones basicas son:
vga= Aqui pondremos la resolucion y la profundidad de color a la que queremos usar el framebuffer (no me seais cazurros [cartman] , usad la misma de antes XD) las opciones estan en esta tabla:
    | 640x480  800x600  1024x768 1280x1024
----+-------------------------------------
256 |  0x301    0x303    0x305    0x307   
32k |  0x310    0x313    0x316    0x319   
64k |  0x311    0x314    0x317    0x31A   
16M |  0x312    0x315    0x318    0x31B

y elegiremos la que nos corresponda

video= aqui pondremos algunas opciones para agilizar nuestro framebuffer (concretamente el mttr que pusimos en el kernel y el ywrap que no tengo ni zorra de lo que es XD

splash= esta opcion parace que no funciona con gentoo aunque en el programa esta documentada :P

initrd= crea el ramdisk para meter el bootsplash en el arranque

nuestro grub.conf quedaria de esta manera

default 0
timeout 7
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title=Gentoo GNU/Linux 1.4 (+fb +splash)
root=(hd0,0)
kernel=(hd0,0)/boot/bzImage root=/dev/hda3 video=vesa:ywrap,mtrr vga=0x31A
initrd=/boot/initrd-1280x1024

title=Gentoo GNU/Linux 1.4 (+fb -splash)
root=(hd0,0)
kernel=(hd0,0)/boot/bzImage root=/dev/hda3 video=vesa:ywrap,mtrr vga=0x31A

title=Gentoo GNU/Linux 1.4 (-fb -splash)
root=(hd0,0)
kernel=(hd0,0)/boot/bzImage root=/dev/hda3


si somos de los que usamos lilo (como yo XD) pondremos algo asi como:
# Linux bootable partition config begins
        image = /boot/gentoo
        vga = 0x317
        root = /dev/hda9
        label = Gentoo
        append = "hdc=ide-scsi ide0=autotune ide1=autotune video=vesa:ywrap,mttr"
        initrd = /boot/initrd-1024x768
        read-only # read-only for checking

en la entrada en que queramos nuestro fb tuneao ;) poned vuestra resolucion al gusto. Yo por ejemplo uso 1024x768x64k (fijaos en la tabla de antes)
Acordaos de ejecutar "lilo" si lo usais (me ha pasado demasiadas veces XD)
Ademas tendreis que agregar el servicio al arranque (claro, no se tiene que acordar de vosotros porque si XD)

# rc-update add bootsplash default

solo queda

# umount /boot (yo me lo hago todo solito XD)
# reboot
# cruzardedos

Ahora solo nos queda fardar de nuestro fb (como he hecho yo al principio XD). Necesitaremos el fbgrab

# ACCEPT_KEYWORDS=~x86 emerge fbgrab
y para capturar:
$ fbgrab captura.png

Saludos, espero que funcione
NOTA: Este howto es una traducción chapuza que intentare ir mejorando con el tiempo XD, si tienes algunos conocimientos de ingles y dos dedos de frente mirate el link que he puesto en el inicio que esta mas completo

EDIT1: Cambiada la imagen "fardaora" por otra mas pequeña :P
Solo puedo decir...

[babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas] [babas]

Que traducido significa:

Ghwaaaaaaaaaaaagagaaaawaaaaaaagaaaaaaaaagaaaahwaaaaaaaa

Te lo has currado Crackge, en cuanto puedo lo pruebo. Quizá hasta me baje el gentoo-sources y todo [tomaaa] [tomaaa]

Si somos de los renegados que aun usa vanilla


Oyes y eso que significa exactamente ¬_¬ ¬_¬

Es broma, yo si uso el vanilla es porque tuve malas experiencias con la primera versión del gentoo-sources 2.4.20 [oki] [oki]

Y ya que estamos ¿sabeis como se pone un mensaje en el login? porque yo tengo puesto "kanako.khosu login:" y es muy soso, yo tambien quiero que ponga algo como lo de la imagen.
Bueno si quieres un mensaje normal mete un echo en el script de arranque. Si lo que quieres es el host, solo tienes que editar el /etc/hostname.
Lo del vanilla, aun hay gente que lo considera el mejor kernel pero como soy algo borde y me gustan las mariconadas del gentoo-sources (como esta XD) [360º]
Ah y gracias por los alagos :P

Saludos
Bueno si quieres un mensaje normal mete un echo en el script de arranque. Si lo que quieres es el host, solo tienes que editar el /etc/hostname.


No si ya, el host es mio, pero no tengo ni zorra de donde esta el script de arranque [looco] [looco]

Lo del vanilla, aun hay gente que lo considera el mejor kernel pero como soy algo borde y me gustan las mariconadas del gentoo-sources (como esta )


No se si será el mejor, pero con el citado kernel 2.4.20 del gentoo-sources no me funcionaba casi ningún modulo [boing] , aunque pa mi que era que lo compilaba para pentium4... nuse, ya lo probaré compilandolo para 686 a ver...
No compiléis nada para Pentium 4 con sse2, que el gcc es muy malo con estas instrucciones. Con optimizar para Pentium 3 la cosa ya va perfecta, eso o atreverse con gcc 3.3, que parece que ya arregla el problema, pero yo con gentoo no me atrevería a cambiar el compilador por mi cuenta, la verdad.

Yo hace una temporada que tengo el invento del splash y va de lujo, lástima que el driver de framebuffer de nvidia no permita seleccionar fácilmente la frecuencia de refresco... en fin. Me conformo con el vesa, que tampoco puede y es muy lento pero al menos funciona bien a 1024x768, a 60 Hz pero bueno. Como el startx es inevitable, pues... XD

Khosu, dale una oportunidad al gentoo-sources -r5, funciona de lujo.

salu2
No compiléis nada para Pentium 4 con sse2, que el gcc es muy malo con estas instrucciones. Con optimizar para Pentium 3 la cosa ya va perfecta, eso o atreverse con gcc 3.3, que parece que ya arregla el problema, pero yo con gentoo no me atrevería a cambiar el compilador por mi cuenta, la verdad.

Yo hace una temporada que tengo el invento del splash y va de lujo, lástima que el driver de framebuffer de nvidia no permita seleccionar fácilmente la frecuencia de refresco... en fin. Me conformo con el vesa, que tampoco puede y es muy lento pero al menos funciona bien a 1024x768, a 60 Hz pero bueno. Como el startx es inevitable, pues...

Khosu, dale una oportunidad al gentoo-sources -r5, funciona de lujo.


Hala, ya me has convencido, y asi de paso pruebo a ver si me funcionan los lm-sensors [looco] [looco] [looco]
Escrito originalmente por khosu
No si ya, el host es mio, pero no tengo ni zorra de donde esta el script de arranque [looco] [looco]


Solo tienes que añadir los comandos que quieras en /etc/conf.d/local.start para el arranque y /etc/conf.d/local.stop para el halt. Aunque antes de poner el tipico mensajito yo haria otra cosa

#emerge speechd
# rc-update add speechd default
y pones en los ficheritos estos algo como
echo "Welcome to gentoo linux" > /proc/speechd
[chulito]

hay un emerge con mas voces (una voz española, la tia del knoppix) ahora no recuerdo cual pero si estais interesados lo busco

Saludos
Acabo leer este post q por cierto ta muy wapo :-p y estaba leyendo lo del speechd.
Lo eh emergido pero al hacer el rc-update add speechd default me dice esto:
rc-update add speechd default
* /sbin/rc-update: /etc/init.d/speechd not found; aborting.
Alguna ayuda para ponerlo?
Salu2.
lo haces como root? de todas formas, asegurate de que tienes el script /etc/init.d/speechd
Es muy raro que habiendo hecho el emerge no lo tengas. Explora un poco los scripts a ver si le han cambiado el nombre o algo

Saludos
ese script tiene q tener algo escrito dentro?
hago script /etc/init.d/speechd inicia el script despues el rc-update q ahora si lo hace, modifiko el
/etc/conf.d/local.start con la linea echo "Welcome to gentoo linux" > /proc/speechd ,

pero al arrankar me dice esto
/proc/speechd: No usch file or directory
Que puede ser?gracias y salu2.
fallo mio, se crea un dispositivo en /dev/speech y es ahi donde tienes que hacer el echo

Saludos
weno ya eh kambiado la linea por /dev/speech ahora al iniciar me dice lo siguiente:

/sbin/runscript.sh error line 6 /dev/speech:Permision denied

Alguna idea?gracias a tos,salu2.
Crackge alguna idea?Eh probao todo y me sigue diciendo lo de permison denied en /dev/speech
[decaio]

Salu2.
es raro, a mi si que me deja, ¿como root tampoco te funciona? las lineas quedarian asi:

#/etc/init.d/speechd start (si no quieres ponerlo aun en el arranque es mejor esto)
$echo "Hello" > /dev/speech

Si te deja como root no se que demonios habra pasado con los permisos

Saludos
13 respuestas