Com tenir el bootsplash en una Debian Sid ppc (per exemple en un Ibook G4) amb un kernel 2.6.7.

  • warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/gilug.org/www/site.tree/) in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 802.
  • warning: fopen(): Filename cannot be empty in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 803.
  • El fitxer no s'ha pogut crear.

En aquest article s'explica com configurar una Debian Sid en un Ibook per tenir una arrancada gràfica del sistema (com la de SuSE o Mandrake, per exemple), altrament anomenada bootsplash. Aviso que només s'ha provat en un Ibook G4 amb una ATI Radeon 9200, amb la qual cosa segurament per altres màquines i distribucions s'hauran de fer algunes modificacions.


Bàsicament s'ha creat a partir de la barreja dels diferents articles relacionats amb el bootsplash que he pogut veure a la xarxa, ja que no n'he trobat cap d'específic per a debian-ppc.



1- Aplicar el pedaç al kernel:

(Suposem que tenim el kernel 2.6.7 vanilla instal·lat, amb les fonts a /usr/src/linux.)

wget http://www.bootsplash.de/files/bootsplash-3.1.4-sp3-2.6.7.diff
mv bootsplash-3.1.4-sp3-2.6.7.diff /usr/src
cd /usr/src/linux
patch -p1 < ../bootsplash-3.1.4-sp3-2.6.7.diff

2- Modificar la configuració del kernel:

make menuconfig

Hi hem de tenir aquestes opcions:

Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
Device Drivers --->
Block devices --->
<*> Loopback device support
<*> RAM disk support
(4096) Default RAM disk size
[*] Initial RAM disk (initrd) support
Graphics support --->
[*] Support for frame buffer devices
Console display driver support --->
<*> Framebuffer Console support
Logo configuration --->
[ ] Bootup logo (no activar!)
Bootsplash configuration --->
[*] Bootup splash screen

Quan acabem, guardem i sortim.

3- Recompilar el kernel i instal·lar els mòduls:

make
mv /lib/modules/2.6.7 /lib/modules/2.6.7.old (si els teníem)
make modules_install
cp vmlinux /boot/2.6.7-splash

4- Baixar i descomprimir un "theme" (en aquest exemple utilitzem el que s'anomena "Linux"):

wget ftp://ftp.suse.com/pub/people/stepan/bootsplash/themes/Theme-Linux.tar.bz2
(en podem trobar molts de diferents a http://bootsplash.de, on fins i tot els podrem previsualitzar)
mkdir -p /etc/bootsplash/themes
cd /etc/bootsplash/themes
tar jxvf /ruta/al/Theme-Linux.tar.bz2

5- Instal·lar les splashutils:

cd /tmp
wget ftp://ftp.suse.com/pub/people/stepan/bootsplash/rpm-sources/bootsplash/bootsplash-3.1.tar.bz2
tar jxvf bootsplash-3.1.tar.bz2
cd bootsplash-3.1/Utilities
make
cp splash /usr/local/bin/

6- Crear l'initrd:

/usr/local/bin/splash -s -f /etc/bootsplash/themes/Linux/config/bootsplash-1024x768.cfg >> /boot/initrd-1024x768

7- Afegir l'initrd i el nou kernel al yaboot:

Editem el /etc/yaboot.conf i hi afegim l'entrada del nou kernel i les opcions del bootsplash més les que ja teníem, per exemple:

default=2.6.7-splash
image=/2.6.7-splash
label=2.6.7-splash
read-only
append="video=radeonfb:1024x768-32 splash=silent idebus=66 root=/dev/hda6"
initrd=/initrd-1024x768

Escrivim el yaboot: ybin -v

Nota: fixeu-vos que el controlador del "framebuffer" és "radeonfb". Si en lloc d'una radeon és una altra tarja gràfica, haureu de posar el controlador adeqüat. La partició arrel i l'opció "idebus" també depenen del vostre sistema, no del bootsplash.

8- Afegim l'splash a totes les consoles (que poden ser diferents a la primera):

Editem el fitxer /etc/init.d/rcS i hi afegim:

/usr/local/bin/splash -n -s -u 1 /etc/bootsplash/themes/ThinkLinux/config/bootsplash-1024x768.cfg
/usr/local/bin/splash -n -s -u 2 /etc/bootsplash/themes/73labAllstar/config/bootsplash-1024x768.cfg
/usr/local/bin/splash -n -s -u 3 /etc/bootsplash/themes/73labAllstar/config/bootsplash-1024x768.cfg
/usr/local/bin/splash -n -s -u 4 /etc/bootsplash/themes/73labAllstar/config/bootsplash-1024x768.cfg
/usr/local/bin/splash -n -s -u 5 /etc/bootsplash/themes/73labAllstar/config/bootsplash-1024x768.cfg

Amb això tindrem el gràfic "ThinkLinux" a la segona consola, mentre que a la resta hi haurà el de "73labAllstar".
Nota: Per a utilitzar els d'aquest exemple els podem baixar de http://www.bootsplash.de/files/themes/Theme-73labAllstar.tar.bz2 i
http://bootsplash.de/files/themes/Theme-ThinkLinux.tar.bz2 i descomprimir-los tots dos a /etc/bootsplash/themes.

9- Hi afegim la barra de progrés:

Per a tenir la barra de progrés, en les distribucions actuals ja no s'ulititza la utilitat "progress", sinó que es fa servir l'script splash.sh que ens hem descarregat amb les splashutils. Tot i així s'han de fer algunes modificacions per tal que funcioni amb la nostra Debian-ppc, per la qual cosa podeu descarregar directament l'splash.sh i els scripts d'inici modificats d'aquí:

http://www.elsud.org/~oriol/init-scripts.tar.gz
(aquest tar.gz és el que es pot trobar a http://xg.homelinux.com/archivos/userlinux/look-n-feel.html amb alguns lleugers canvis, que a la vegada són els de SuSE amb modificacions)

El descomprimim i executem el fitxer install.sh, que ens copiarà el fitxer splash.sh i el fitxer bootanim a /sbin i ens instal·larà dos nous /etc/init.d/rc i /etc/init.d/rcS (deixant-nos backups dels dos fitxers). Això també es pot fer a mà, però independentment del mètode que utilitzeu, convé abans mirar amb un diff les diferències dels nous fitxers rc i rcS amb els nostres per evitar sorpreses a l'hora d'arrancar la màquina.
Si voleu tenir splash a totes les consoles, haureu de tornar a aplicar el punt 8 al fitxer /etc/init.d/rcS, i si en lloc del theme Linux teniu algun altre theme a la primera consola, haureu de modificar la variable THEME del fitxer /sbin/splash.sh posant-hi el nom que correspongui, per exemple: THEME="ThinkLinux".

i... rebotem :-)

Enllaços d'interès:

http://www.bootsplash.org/
http://forums.gentoo.org/viewtopic.php?t=192895
http://bulma.net/body.phtml?nIdNoticia=1807
http://bootsplash.de/
ftp://ftp.suse.com/pub/people/stepan/bootsplash/rpm-sources/bootsplash/
http://xg.homelinux.com/archivos/userlinux/look-n-feel.html

una cosa, el patch -p1 que d

una cosa, el patch -p1 que dius que s'ha d'aplicar, com s'ha d'aplicar ??? si faig el que dius, patch -p1 no aplica res, suposo que ha de ser patch -p1 > fitxer, per* quin fitxer *s que se li ha d'aplicar el patch ???
S*c jo que cometo l'error ???
Gr*cies

is easy

mv bootsplash-3.1.4-sp3-2.6.7.diff /usr/src
cd /usr/src/linux
patch -p1 < bootsplash-3.1.4-sp3-2.6.7.diff

se l'ha menjat el drupal

patch -p1 * ../bootsplash-3.1.4-sp3-2.6.7.diff

substituint l'asterisc per un "més petit que".

Sembla que el drupal s'ha menjat tots els símbols que confon amb tags html. Aquest article també el pots trobar a http://bulma.net/body.phtml?nIdNoticia=2062

salut!

A mi em surt aquest error

root@tarat:/tmp/bootsplash-3.1/Utilities# make
gcc -Os -Wall -I/usr/include/freetype2 -L/usr/lib splash.c -o splash
splash.c: En la funció "fixboxcopy":
splash.c:159: avís: control reaches end of non-void function
splash.c: En la funció "setsplash":
splash.c:430: avís: unused variable `buf'
splash.c:435: avís: unused variable `pt'
gcc -Os -Wall -I/usr/include/freetype2 -L/usr/lib splashpbm.c -o splashpbm
splashpbm.c:4: avís: return type defaults to `int'
splashpbm.c: En la funció "main":
splashpbm.c:19: avís: implicit declaration of function `strcmp'
splashpbm.c:26: avís: implicit declaration of function `strncmp'
splashpbm.c:28: avís: implicit declaration of function `atoi'
splashpbm.c:54: avís: implicit declaration of function `exit'
splashpbm.c:105: avís: implicit declaration of function `malloc'
splashpbm.c:142: avís: suggest parentheses around + or - in operand of &
gcc -Os -Wall -I/usr/include/freetype2 -L/usr/lib fbresolution.c -o fbresolution
gcc -Os -Wall -I/usr/include/freetype2 -c -o fbtruetype.o fbtruetype.c
gcc -Os -Wall -I/usr/include/freetype2 -c -o fbtruetype-messages.o fbtruetype-messages.c
gcc -Os -Wall -I/usr/include/freetype2 -c -o console.o console.c
gcc -Os -Wall -I/usr/include/freetype2 -c -o ttf.o ttf.c
gcc -Os -Wall -I/usr/include/freetype2 -c -o luxisri.o luxisri.c
gcc -Os -Wall -I/usr/include/freetype2 -L/usr/lib -o fbtruetype -L/usr/lib fbtruetype.o fbtruetype-messages.o console.o ttf.o luxisri.o -lfreetype -lm
gcc -Os -Wall -I/usr/include/freetype2 -c -o fbmngplay.o fbmngplay.c
En el fitxer inclòs dès de fbmngplay.c:21:
fbmngplay.h:17:20: libmng.h: El fitxer o directori no existeix
In file included from fbmngplay.c:21:
fbmngplay.h:23: error: error d'analitza before "FILE"
fbmngplay.h:23: avís: no hi ha punt i coma al final del struct o union
fbmngplay.h:25: error: error d'analitza before "delay"
fbmngplay.h:25: avís: type defaults to `int' in declaration of `delay'
fbmngplay.h:25: avís: data definition has no type or storage class
fbmngplay.h:29: error: error d'analitza before "mng"
fbmngplay.h:29: avís: type defaults to `int' in declaration of `mng'
fbmngplay.h:29: avís: data definition has no type or storage class
fbmngplay.h:35: error: error d'analitza before '}' token
fbmngplay.h:35: avís: type defaults to `int' in declaration of `mngstuff'
fbmngplay.h:35: avís: data definition has no type or storage class
In file included from fbmngplay.c:24:
mng.h:18: error: error d'analitza before '*' token
mng.h:18: avís: type defaults to `int' in declaration of `mng'
mng.h:18: error: conflicting types for `mng'
fbmngplay.h:29: error: previous declaration of `mng'
mng.h:18: avís: data definition has no type or storage class
mng.h:20: error: error d'analitza before "mngalloc"
mng.h:20: error: error d'analitza before "size"
mng.h:20: avís: type defaults to `int' in declaration of `mngalloc'
mng.h:20: avís: data definition has no type or storage class
mng.h:21: error: error d'analitza before "p"
mng.h:22: error: error d'analitza before "mngopenstream"
mng.h:22: error: error d'analitza before "mng"
mng.h:22: avís: type defaults to `int' in declaration of `mngopenstream'
mng.h:22: avís: data definition has no type or storage class
mng.h:23: error: error d'analitza before "mngclosestream"
mng.h:23: error: error d'analitza before "mng"
mng.h:23: avís: type defaults to `int' in declaration of `mngclosestream'
mng.h:23: avís: data definition has no type or storage class
mng.h:24: error: error d'analitza before "mngreadstream"
mng.h:24: error: error d'analitza before "mng"
mng.h:25: avís: type defaults to `int' in declaration of `mngreadstream'
mng.h:25: avís: data definition has no type or storage class
mng.h:26: error: error d'analitza before "mngprocessheader"
mng.h:26: error: error d'analitza before "mng"
mng.h:27: avís: type defaults to `int' in declaration of `mngprocessheader'
mng.h:27: avís: data definition has no type or storage class
mng.h:28: error: error d'analitza before "mnggetcanvasline"
mng.h:28: error: error d'analitza before "mng"
mng.h:28: avís: type defaults to `int' in declaration of `mnggetcanvasline'
mng.h:28: avís: data definition has no type or storage class
mng.h:29: error: error d'analitza before "mnggetticks"
mng.h:29: error: error d'analitza before "mng"
mng.h:29: avís: type defaults to `int' in declaration of `mnggetticks'
mng.h:29: avís: data definition has no type or storage class
mng.h:30: error: error d'analitza before "mngrefresh"
mng.h:30: error: error d'analitza before "mng"
mng.h:31: avís: type defaults to `int' in declaration of `mngrefresh'
mng.h:31: avís: data definition has no type or storage class
mng.h:32: error: error d'analitza before "mngsettimer"
mng.h:32: error: error d'analitza before "mng"
mng.h:32: avís: type defaults to `int' in declaration of `mngsettimer'
mng.h:32: avís: data definition has no type or storage class
mng.h:33: error: error d'analitza before "mngerror"
mng.h:33: error: error d'analitza before "mng"
mng.h:35: avís: type defaults to `int' in declaration of `mngerror'
mng.h:35: avís: data definition has no type or storage class
mng.h:36: error: error d'analitza before "mng"
fbmngplay.c: En la funció "main":
fbmngplay.c:73: error: error d'analitza before ')' token
fbmngplay.c:75: avís: implicit declaration of function `fprintf'
fbmngplay.c:75: error: `stderr' undeclared (first use in this function)
fbmngplay.c:75: error: (Each undeclared identifier is reported only once
fbmngplay.c:75: error: for each function it appears in.)
fbmngplay.c:76: avís: implicit declaration of function `exit'
fbmngplay.c:80: error: request for member `alpha' in something not a structure or union
fbmngplay.c:81: error: request for member `fbx' in something not a structure or union
fbmngplay.c:82: error: request for member `fby' in something not a structure or union
fbmngplay.c:83: error: request for member `background' in something not a structure or union
fbmngplay.c:107: avís: implicit declaration of function `atoi'
fbmngplay.c:110: error: request for member `alpha' in something not a structure or union
fbmngplay.c:113: error: request for member `fbx' in something not a structure or union
fbmngplay.c:116: error: request for member `fby' in something not a structure or union
fbmngplay.c:151: avís: implicit declaration of function `printf'
fbmngplay.c:163: error: request for member `fbwidth' in something not a structure or union
fbmngplay.c:164: error: request for member `fbheight' in something not a structure or union
fbmngplay.c:165: error: request for member `fbbpp' in something not a structure or union
fbmngplay.c:167: error: request for member `fbredo' in something not a structure or union
fbmngplay.c:168: error: request for member `fbgreeno' in something not a structure or union
fbmngplay.c:169: error: request for member `fbblueo' in something not a structure or union
fbmngplay.c:170: error: request for member `fbredl' in something not a structure or union
fbmngplay.c:171: error: request for member `fbgreenl' in something not a structure or union
fbmngplay.c:172: error: request for member `fbbluel' in something not a structure or union
fbmngplay.c:178: error: request for member `fbrow' in something not a structure or union
fbmngplay.c:180: error: request for member `display' in something not a structure or union
fbmngplay.c:181: error: request for member `fbrow' in something not a structure or union
fbmngplay.c:181: error: request for member `fbheight' in something not a structure or union
fbmngplay.c:188: avís: implicit declaration of function `atexit'
fbmngplay.c:192: error: request for member `filename' in something not a structure or union
fbmngplay.c:195: error: request for member `mng' in something not a structure or union
fbmngplay.c:196: avís: implicit declaration of function `mng_initialize'
fbmngplay.c:196: error: `MNG_NULL' undeclared (first use in this function)
fbmngplay.c:197: error: request for member `mng' in something not a structure or union
fbmngplay.c:203: avís: implicit declaration of function `mng_setcb_errorproc'
fbmngplay.c:203: error: request for member `mng' in something not a structure or union
fbmngplay.c:204: avís: implicit declaration of function `mng_setcb_openstream'
fbmngplay.c:204: error: request for member `mng' in something not a structure or union
fbmngplay.c:205: avís: implicit declaration of function `mng_setcb_closestream'
fbmngplay.c:205: error: request for member `mng' in something not a structure or union
fbmngplay.c:206: avís: implicit declaration of function `mng_setcb_readdata'
fbmngplay.c:206: error: request for member `mng' in something not a structure or union
fbmngplay.c:207: avís: implicit declaration of function `mng_setcb_gettickcount'
fbmngplay.c:207: error: request for member `mng' in something not a structure or union
fbmngplay.c:208: avís: implicit declaration of function `mng_setcb_settimer'
fbmngplay.c:208: error: request for member `mng' in something not a structure or union
fbmngplay.c:209: avís: implicit declaration of function `mng_setcb_processheader'
fbmngplay.c:209: error: request for member `mng' in something not a structure or union
fbmngplay.c:210: avís: implicit declaration of function `mng_setcb_getcanvasline'
fbmngplay.c:210: error: request for member `mng' in something not a structure or union
fbmngplay.c:211: avís: implicit declaration of function `mng_setcb_refresh'
fbmngplay.c:211: error: request for member `mng' in something not a structure or union
fbmngplay.c:216: avís: implicit declaration of function `mng_readdisplay'
fbmngplay.c:216: error: request for member `mng' in something not a structure or union
fbmngplay.c:219: error: request for member `delay' in something not a structure or union
fbmngplay.c:220: error: request for member `delay' in something not a structure or union
fbmngplay.c:221: error: request for member `delay' in something not a structure or union
fbmngplay.c:222: avís: implicit declaration of function `mng_display_resume'
fbmngplay.c:222: error: request for member `mng' in something not a structure or union
fbmngplay.c:224: error: request for member `alpha' in something not a structure or union
fbmngplay.c:226: error: request for member `alpha' in something not a structure or union
fbmngplay.c:227: error: request for member `alpha' in something not a structure or union
fbmngplay.c:228: error: request for member `alpha' in something not a structure or union
fbmngplay.c:240: avís: implicit declaration of function `memset'
fbmngplay.c:240: error: request for member `copybuffer' in something not a structure or union
fbmngplay.c:240: error: request for member `width' in something not a structure or union
fbmngplay.c:240: error: request for member `height' in something not a structure or union
fbmngplay.c:242: error: request for member `alpha' in something not a structure or union
fbmngplay.c:249: error: request for member `mng' in something not a structure or union
make: *** [fbmngplay.o] Error 1
root@tarat:/tmp/bootsplash-3.1/Utilities#

Tinc el kernel 2.6.7 ben ficat. He probat un parell de coses però em continua petant la compilacio d'aquestes uttilitats... Ajudeume plz!!!
Espero que ara no es confonguin els tags ;)

crec que et falten paquets

tens els paquets libmng-dev i libmng1?

salut!

Re: crec que et falten paquets

Bingo!!!!

Ha sigut ficar-los i tot bé, moltes gràcies!

(Sembla que tothom té aquests paquets, i jo sense saber-ho!!! :P )

Gràcies altre cop. Salutacions des del Bages.