etch && bootsplash

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Benutzeravatar
mosa
Beiträge: 319
Registriert: 29.10.2004 09:53:35

etch && bootsplash

Beitrag von mosa » 08.11.2006 18:09:13

möchte unter debian etch 2.6.17 den Bootsplash installieren, aber das "menuconfig" ist mir irgenwie...

Code: Alles auswählen

Device Drivers ---> Graphics support ---> Console display driver support --->
--- VGA text console
<--> Video mode selection support
<*> Framebuffer Console support
-- video-mode selection support ist ausgeblendet/blind gesetzt :?
Also wie krige ich nun den Bootsplash zum laufen?

Habs versucht ohne diesen Eintrag, ...geht nicht.

Benutzeravatar
minimike
Beiträge: 5594
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Beitrag von minimike » 08.11.2006 19:39:32

Ist der Kernel denn gepatcht worden?
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

Benutzeravatar
mosa
Beiträge: 319
Registriert: 29.10.2004 09:53:35

Beitrag von mosa » 09.11.2006 08:11:53

Hi minimike,

Code: Alles auswählen

ist der Kernel denn gepatcht worden?
es wurde lediglich die für den Bootsplash benötigten Patch aufgespielt, wie nach

Code: Alles auswählen

http://wiki.debianforum.de/Bootsplash
das ganze menü ist vorhanden, nur der letzte Punkt ist ausgeblendet
make menuconfig (oder make config / make xconfig)

Code: Alles auswählen

      Code maturity level options -->
          o [y] Prompt for development and/or incomplete code/drivers 

      Processor type and features --->
          o [y] MTRR (Memory Type Range Register) support
          o [ ] Use register arguments (EXPERIMENTAL) (bei kernel 2.6.7) 

      Device Drivers --->
            Block devices --->
                  <y> Loopback device support
                  <y> RAM disk support
                + (4096) Default RAM disk size (wenn bereits größer 4096 nicht ändern ! )
                + [y] Initial RAM disk (initrd) support 

            Graphics support --->
                + [y] Support for frame buffer devices
                + [y] VESA VGA graphics support

                  Console display driver support --->
> > > > >          [- - -] Video mode selection support
                        <y> Framebuffer Console support 

                  Bootsplash configuration --->
                      # [y] Bootup splash screen
uname -r

Code: Alles auswählen

2.6.17-2-686
grafikkarte
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R250 [Mobility FireGL 9000] (rev 01) (prog-if 00 [VGA])
Subsystem: Dell Unknown device 013e
Flags: bus master, VGA palette snoop, stepping, 66MHz, medium devsel, latency 32, IRQ 11
Memory at e8000000 (32-bit, prefetchable)
I/O ports at c000
Memory at fcff0000 (32-bit, non-prefetchable)
Expansion ROM at fc000000 [disabled]
Capabilities: [58] AGP version 2.0
Capabilities: [50] Power Management version 2

Die .config übernahm ich von /boot/config-2.6.17-2-686 nach /usr/src/linux
Suche mit Google doch kein ähnliches Problem bisher...
Edit:
Hier der Menüauszug:
[*] VGA text console
Enable Scrollback Buffer in System RAM
--- Video mode selection support
<M> MDA text console (dual-headed) (EXPERIMENTAL)
<*> Framebuffer Console support
[*] Framebuffer Console Rotation
[ ] Select compiled-in fonts

Benutzeravatar
minimike
Beiträge: 5594
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Beitrag von minimike » 09.11.2006 23:41:26

evtl kommt sich da der debianpatch ins Gehege. Ich habe den 2.6.16.29 von Kernel.org (wird noch von Adrian Bunk gepflegt) mit Bootsplash auf meinen NFS Thinclienten am laufen
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

Benutzeravatar
giber
Beiträge: 52
Registriert: 29.07.2005 17:08:04
Wohnort: Sankt Augustin
Kontaktdaten:

2.6.17 ?

Beitrag von giber » 18.11.2006 10:41:54

Für Kernel 2.6.17 gibt es noch keinen Patch .. ?
Oder sehe ich das falsch ?

Ich selbst benutzt Kernel 2.6.18 denn ich auch unbedingt benötige da mein SATA Controller leider drunter nicht unterstützt wird.

Gibt es mit diesem Kernel eine Möglichkeit einen bootsplash zu realisieren ohne das der nvidia Treiber blockiert wird ?
AMD64 4220+ X2 , ASUS , 320 GB SATA2 , ASUS NVIDIA 6600 GT, 2000 MB DDR2 800 ,

Debian 4.0 AMD 64

Benutzeravatar
minimike
Beiträge: 5594
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Beitrag von minimike » 18.11.2006 13:39:46

Der Nvidia Treiber für 3D sollte mit Bootsplash nicht beeinträchtigt werden. Er verträgt sich nur nicht mit dem Treiber für Framebuffer im Kernel um eine hohere oder bessere Auflösung in dem Terminal ohne X nutzen zu können. Wenn du Bootsplash mit Vesaframebuffer nutzt solltest du keine Probleme haben.

http://packages.debian.org/testing/grap ... bootsplash
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

Benutzeravatar
giber
Beiträge: 52
Registriert: 29.07.2005 17:08:04
Wohnort: Sankt Augustin
Kontaktdaten:

Leider nur bis 2.6.17

Beitrag von giber » 19.11.2006 12:43:28

The patch should work for kernels 2.4.18, 2.4.20 - 2.4.25, 2.6.0-test9 - 2.6.0-test11, and 2.6.0 - 2.6.17
Lieder zz. nur bei 2.6.17...

Schade das der bootsplash Support nicht im Kernel enthalten ist. Naja eh mehr Spielerei. Wäre schon froh wenn ich bei nächsten Kernel Bau denn Framebuffer
(Vesa) ans laufen bekomme um eine höhere Auflösung in der Konsole nutzen zu können. Ist bei viel Text zb. Dist-Upgrade sehr praktisch denke ich :wink:
AMD64 4220+ X2 , ASUS , 320 GB SATA2 , ASUS NVIDIA 6600 GT, 2000 MB DDR2 800 ,

Debian 4.0 AMD 64

IT-Inder
Beiträge: 3
Registriert: 23.04.2004 10:51:39
Lizenz eigener Beiträge: neue BSD Lizenz

Beitrag von IT-Inder » 13.12.2006 12:37:59

In Etch ist der
Bootsplash Patch schon mit drin.

Kernel 2.6.17-??
Kernel 2.6.18-??

Benutzeravatar
TRex
Moderator
Beiträge: 8099
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Beitrag von TRex » 13.12.2006 14:58:29

und wie lässt er sich dann aktivieren? Hab auch schon gesucht, aber irgendwie weiß ich nicht mehr weiter nach dem patchen..

thomasf
Beiträge: 578
Registriert: 15.08.2002 08:58:13

Beitrag von thomasf » 16.12.2006 12:55:03

Das würde mich auch mal interessieren.

schuehler
Beiträge: 67
Registriert: 25.01.2003 19:33:27
Wohnort: Hoesbach

Beitrag von schuehler » 28.12.2006 22:37:45

Hallo,

habe es leider auch nich therausbekommen wie bootsplash aktiviert werden kann.
Hat jemand eine Ahnung wie das funzt.

Gruss Klaus

Benutzeravatar
TRex
Moderator
Beiträge: 8099
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Beitrag von TRex » 28.12.2006 22:59:42

ich hänge mich als Interessent mal hintendran *push* :wink:
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
derJupp
Beiträge: 46
Registriert: 16.06.2005 12:10:01
Wohnort: Odenthal NRW
Kontaktdaten:

Beitrag von derJupp » 29.12.2006 13:38:44

Hallo,
habe zwei varianten ausprobiert und beide funktionieren bei mir .Installiert habe ich dafür : bootsplash, bootsplash-theme und linux-patch-bootsplash .

1)
Habe mir den 2.6.18.5 Kernel von Kernel.org , ftp Archiv , besorgt und von Bootsplash.de den bootsplash-3.1.6-2.6.15.diff .
Dann nach dem wiki.debianforum alles Kompiliert und Installiert.In meine menu.lst folgendes eingetragen :

Code: Alles auswählen

title		Debian GNU/Linux, kernel 2.6.18-5-686
root		(hd0,2)
kernel		/boot/vmlinuz-2.6.18-5-686 root=/dev/hda3 ro vga=791 splash=silent
initrd		/boot/initrd.img-2.6.18-5-686
savedefault
und nun erscheint beim booten der o.g Bootsplash .

2)
Die Kernel version 2.6.19.1 von Kernel.org .Nur das ich für den ATI Treiber die Datei "/include/linux/config.h " haben mußte , mußte ich diese aus einen vorhanden Kernel kopieren und beim 2.6.19.1 einfügen . Nun den Kernel kompiliert ohne bootsplash-3.1.6-2.6.15.diff.
Dann habe ich das tool Splashy verwendet , welches aber bootsplash deinstalliert .
Die menu.lst

Code: Alles auswählen

title		Debian GNU/Linux, kernel 2.6.19.1-686
root		(hd0,2)
kernel		/boot/vmlinuz-2.6.19.1-686 root=/dev/hda3 ro vga=791 splash
initrd		/boot/initrd.img-2.6.19.1-686
savedefault
angepasst und es funktioniert .Auch der vorhandene Debian Kernel 2.6.18.3-686 funktioniert mit Splashy mittels der anpassung in der menu.lst
Ich hoffe das es euch weiter hilft .
gruß derJupp

... Bunt ist das Dasein und Granaten stark.... volle Kanne Hoschi !

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Re: Leider nur bis 2.6.17

Beitrag von armin » 29.12.2006 14:06:49

giber hat geschrieben:
The patch should work for kernels 2.4.18, 2.4.20 - 2.4.25, 2.6.0-test9 - 2.6.0-test11, and 2.6.0 - 2.6.17
Lieder zz. nur bei 2.6.17...
Da die Version 2.6.18 enthält habe ich es doch gerade mal ausprobiert - der Patch macht keine Probleme mit einem 2.6.18 Kernel, zumindest beim Patchen selbst. Kernel baut gerade noch. Ich werde berichten. Vermutlich passt nur die Beschreibung nicht...

EDIT: Ja, er läuft auch mit 2.6.18: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=390117
Schreibe dann wohl mal nen Bugreport, damit die Beschreibung angepasst wird.

EDIT2: Es ist doch nicht alles so toll:

Code: Alles auswählen

  LD      vmlinux
drivers/built-in.o: In function `search_fb_in_map':
fbcon.c:(.text+0x10c79): undefined reference to `con2fb_map'
drivers/built-in.o: In function `fbcon_clear':
fbcon.c:(.text+0x10cc1): undefined reference to `con2fb_map'
drivers/built-in.o: In function `fbcon_clear_margins':
fbcon.c:(.text+0x10e4e): undefined reference to `con2fb_map'
drivers/built-in.o: In function `fbcon_bmove_rec':
fbcon.c:(.text+0x10ebe): undefined reference to `con2fb_map'
drivers/built-in.o: In function `fbcon_bmove':
fbcon.c:(.text+0x11040): undefined reference to `con2fb_map'
drivers/built-in.o:fbcon.c:(.text+0x11371): more undefined references to `con2fb_map' follow
make[1]: *** [vmlinux] Error 1
make[1]: Leaving directory `/usr/src/linux-source-2.6.18'
make: *** [debian/stamp-build-kernel] Error 2
Wenn das jemand schonmal gesehen hat, soll er bescheid sagen. Und falls jemand 2.6.18 mit Bootpslash laufen hat bitte auch!

EDIT3: Wenn man den VESA-Framebuffer aktiviert klappts.
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

thomasf
Beiträge: 578
Registriert: 15.08.2002 08:58:13

Beitrag von thomasf » 29.12.2006 17:38:25

nu blick ich gerade mal was garnicht :roll: Du schreibst hier was von Kernel backen .... ich denke im Standard-Debian-Kernel sind schon alle nötigen Sachen integriert und man muß nur noch die bootsplash-Teile installieren. 8O

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Beitrag von Spasswolf » 29.12.2006 17:54:03

@Trigger
Hast du

Code: Alles auswählen

CONFIG_FRAMEBUFFER_CONSOLE=y
in der .config deines Kernels?

Benutzeravatar
armin
Beiträge: 2682
Registriert: 17.03.2005 11:49:14

Beitrag von armin » 29.12.2006 21:05:14

Jo, das hatte ich.
Das Problem war allerdings, dass ich den VESA-Framebuffer nicht fest mit drin hatte, sondern statt dessen den Radeon-Fb.

Jetzt läuft es und sieht wirklich heiß aus.
Formerly known as Trigger.
HP 8510p - Debian Sid
Mitglied des Debian-KDE-Teams

Benutzeravatar
TRex
Moderator
Beiträge: 8099
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Beitrag von TRex » 29.12.2006 23:16:35

thomasf hat geschrieben:nu blick ich gerade mal was garnicht :roll: Du schreibst hier was von Kernel backen .... ich denke im Standard-Debian-Kernel sind schon alle nötigen Sachen integriert und man muß nur noch die bootsplash-Teile installieren. 8O
richtig, warum braucht man da nen Patch? Ich lass jetzt Splashy auf meinen Notebook und guck, was dabei rauskommt.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

E. coli
Beiträge: 28
Registriert: 30.12.2006 16:22:03

Re: Leider nur bis 2.6.17

Beitrag von E. coli » 30.12.2006 16:58:26

Trigger. hat geschrieben: Wenn das jemand schonmal gesehen hat, soll er bescheid sagen. Und falls jemand 2.6.18 mit Bootpslash laufen hat bitte auch!
Hallo,

seit einer Woche hab ich nun Debian Etch installiert und gestern gerade einen neuen Kernel mit dem bootsplash-patch bebacken. Bei mir läuft es ohne Probleme. Nur hab ich bislang leider noch keine Progress-Bar.

@ thomasf
Debian (Etch) enthält für seine Standard-Kernel (2.6.16 und 2.6.18 ) nur die Kernel-Patches. Diese müssen dann auf die Kernel-Sourcen angewendet werden und der Kernel neu compiliert werden. Es sind die Pakete:
-> kernel-patch-bootsplash für 2.6.16
-> linux-patch-bootsplash für 2.6.18

Ich bin wie folgt vorgegangen (Kernel 2.6.18 ):

1. Pakete installieren:

Code: Alles auswählen

- bootsplash
- bootsplash-theme-debian
- linux-patch-bootsplash
- linux-source-2.6.18 (für 2.6.18-7)
2. Kernel konfigurieren:

Hier war ich etwas faul, da ich die nächsten Tag noch einige Sachen anpassen und den Kernel ohnehin wieder neu backen muss:

Code: Alles auswählen

make oldconfig
3. Kernel erstellen:

Code: Alles auswählen

fakeroot make-kpkg --append-to-version=.own1 --revision=0.1 --added-patches=bootsplash kernel_image
4. Kernel-Package installieren:

Code: Alles auswählen

dpkg -i linux-image-2.8.18.own1_0.1_i368.deb
5. Init-RAM-Disk erstellen

Code: Alles auswählen

mkinitramfs -o /boot/initrd.name /lib/modules/neuer_Kernel
6. Grub anpassen und reboot.

In Grub eintragen:

Code: Alles auswählen

vga=791 splash=silent
Dabei musste ich die Init-RAM-Disk nicht weiter bearbeiten. Die nötigen Daten für den Bootsplash waren bereits integriert!

ALSO KEIN:

Code: Alles auswählen

 splash -s -f /etc/bootsplash/debian/config/bootsplash-1024x768.conf >> /boot/initrd.name
Jetzt geht nur die Progress-Bar noch nicht.

EDIT:

So jetzt geht auch die Progress-Bar :)

Unter:
http://bootsplash.org/Debian
gibt es ein modifiziertes Skript für den runlevel scheduler (/etc/init.d/rc). Von dieser Datei einfach ein Backup anlegen und das neue Skript an diese Stelle kopieren.


So ich hoffe, dass dies zur Aufklärung beitragen konnte.

Gruss
E. coli
Zuletzt geändert von E. coli am 30.12.2006 17:38:10, insgesamt 1-mal geändert.

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 30.12.2006 17:06:46

Hey, super!

Hast du Zeit und Lust, diese Anleitung ins Wiki Zu stellen?

Gruß, garibaldi

ps: Willkommen im Forum!
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

E. coli
Beiträge: 28
Registriert: 30.12.2006 16:22:03

Beitrag von E. coli » 30.12.2006 17:41:54

garibaldi hat geschrieben:Hey, super!

Hast du Zeit und Lust, diese Anleitung ins Wiki Zu stellen?

Gruß, garibaldi

ps: Willkommen im Forum!
Hallo garibaldi,

ich denke mal, dass du mich meinst. Kann ich gerne machen, nur habe ich im Moment noch keine Ahnung, wie ich es in das Wiki stellen kann. Aber falls es wirklich erwünscht sein sollte (hätte ich jetzt nicht vermutet), dann werde ich es gerne ins Wiki stellen. Ich finde schon raus, wie das gemacht wird :)

Grüsse
E. coli

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 30.12.2006 20:43:10

E. coli hat geschrieben:ich denke mal, dass du mich meinst. Kann ich gerne machen, nur habe ich im Moment noch keine Ahnung, wie ich es in das Wiki stellen kann. Aber falls es wirklich erwünscht sein sollte (hätte ich jetzt nicht vermutet), dann werde ich es gerne ins Wiki stellen. Ich finde schon raus, wie das gemacht wird :)
Jupp, dich meinte ich. Die Wiki-Syntax ist recht einfach. Einfach anmelden und auf der Seite http://wiki.debianforum.de/KernelFragen einen Wiki-Link anlegen, abspeichern(bitte mit Vermerk der Änderung), dann auf den neuangelegten link klicken und MoinMoin fragt dich, ob du diese Seite neu anlegen möchtest. Als Namen schlage ich "DebianizedBootsplash" vor.

Und: Du brauchst dich nicht zu wundern, dass eine gut formulierte Anleitung mit der Aufforderung konfrontiert wird, die ins Wiki zu stellen. Feinarbeit kann man dort auch noch erledigen, dafür ist es ein Wiki.

Gruß, garibaldi
Zuletzt geändert von garibaldi am 31.12.2006 07:08:21, insgesamt 2-mal geändert.
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

Benutzeravatar
garibaldi
Beiträge: 2443
Registriert: 17.09.2004 02:31:12
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Beitrag von garibaldi » 31.12.2006 06:43:56

So,

nach einigen Verrenkungen habe ich nun auch den Bootsplash mit Fortschrittsanzeige zum laufen bekommen. Zwei Sachen stören mich aber noch:
  1. Wenn ich mit Alt-F2 auf die Konsole mit den Bootmeldungen gehe, kann ich nicht wieder zurückschalten.
  2. Wenn die Konsolen durchgeschaltet werden, blinkt die Bildschirmsanzeige sechsrmal hin und her. Das tat sie auch schon vorher, aber auf weißer Schrift auf schwarzem Hintergrund störte es nicht so sehr. Kann man das irgendwie unterbinden?

    Naja, beides sind nur Kleinigkeiten und die Optik des Bootprozesses ist eh nur eine Nebensache.

    Gruß, garibaldi

    ps.: Noch ein dritter Punkt:
  3. Die Fortschrittsanzeige des oben verlinkten Scripts zeigt nicht wirklich zuverlässig den Fortschritt an, weder beim Hoch- noch beim Herunterfahren. Sie kommt zu ca. 2/3 und danach erscheint schon der kdm, bzw. der shutdown.
Was einer im Reiche der Wahrheit erwirbt, hat er allen erworben... -- Schiller

E. coli
Beiträge: 28
Registriert: 30.12.2006 16:22:03

Beitrag von E. coli » 31.12.2006 15:48:53

@garibaldi

Das Problem mit der Fortschrittsanzeige habe ich auch. Mal sehen, ob ich heute noch die Zeit finde dafúr eine Lösung aufzutreiben. Falls du eher eine Lösung finden solltest teil sie mir doch bitte mit.
Den Wiki-Beitrag werde ich erst erstellen, wenn wirklich alles funktioniert. Daher kann es noch etwas damit dauer, wird aber sicher nicht vergessen ;)

Gruss
E. coli

E. coli
Beiträge: 28
Registriert: 30.12.2006 16:22:03

Beitrag von E. coli » 31.12.2006 17:45:26

Dann bring ich mal kurz einen Statusbericht:

Habe versucht das mit der Statusanzeige zulösen, indem ich die Patches von [url]http:www.bootsplash.de/files/misc[/url] anwenden wollte wie es auch im bisherigen Wiki (Bootsplash für Debian Sid) steht. Geht aber leider nicht "6 out of 7 hunks FAILED"

Zu den beiden anderen Problemen:
Das Blinken tritt bei mir auch auf, Lósung dazu kenne ich bislang keine.
F2 oder ESC schalten den silent Bootsplash aus, dass man von der aktiven Anziege wieder in den silent-mode gelangen kann ist mir bislang noch nicht bekannt. Ist unter meiner SuSE 9.2 auch nicht möglich. (Jedenfalls wüsste ich nicht wie).

Gruss
E. coli

EDIT:

Ich habe noch die ganze Zeit versucht herauszufinden, warum die Progressbar nicht funktioniert. Ich vermute mal, dass es an dem Skript /etc/init.d/rc liegt (von http://www.bootsplash.org/Debian), hier der Teil der dafür verantwortlich ist:

Code: Alles auswählen

# source the bootsplash config file
test -f /etc/default/bootsplash && . /etc/default/bootsplash

#
# Update bootsplash stuff. (progress bar, animations...)
#
rc_splash() {
   #test "$SPLASH" != "no" && test "$_rc_splash" -eq 1 && /sbin/splash "$1"
   test "$SPLASH" != "no" && /sbin/splash.sh "$1"
  
   # make sure we don't add unless we really made progress
   if [ "$1" != "master" -a "$1" != "splash start" -a "$1" != "shutdown" ]
   then
      progress=$(( $progress + 1 ))
   fi
}




# Specify method used to enable concurrent init.d scripts.
# Valid options are 'none', 'shell' and 'startpar'
CONCURRENCY=none

# Make sure the name survive changing the argument list
scriptname="$0"

umask 022

on_exit() {
    echo "error: '$scriptname' exited outside the expected code flow."
}
trap on_exit EXIT # Enable emergency handler

# Ignore CTRL-C only in this shell, so we can interrupt subprocesses.
trap ":" INT QUIT TSTP

# Set onlcr to avoid staircase effect.
stty onlcr 0>&1

# Decide if usplash progress bar should be activated or not.  Override
# in /etc/default/rcS if required.
#if type usplash_write >/dev/null 2>&1; then
#    SPLASH=true
#else
#    SPLASH=false
#fi



SPLASH=true

# Now find out what the current and what the previous runlevel are.

runlevel=$RUNLEVEL
# Get first argument. Set new runlevel to this argument.
[ "$1" != "" ] && runlevel=$1
if [ "$runlevel" = "" ]
then
	echo "Usage: $scriptname <runlevel>" >&2
	exit 1
fi
previous=$PREVLEVEL
[ "$previous" = "" ] && previous=N

export runlevel previous

if [ S = "$runlevel" ]
then
	#
	# See if system needs to be setup. This is ONLY meant to
	# be used for the initial setup after a fresh installation!
	#
	if [ -x /sbin/unconfigured.sh ]
	then
		/sbin/unconfigured.sh
	fi
fi

. /etc/default/rcS
export VERBOSE

#
# Stub to do progress bar ticks (currently just for usplash) on startup
#
startup_progress() {
    $@
#    if [ "$SPLASH" = true ] ; then
#        step=$(($step + $step_change))
#        progress=$(($step * $progress_size / $num_steps + $first_step))
#        usplash_write "PROGRESS $progress" || true
        
#    fi
}

##
# Let's just pretend I know what I'm doing
##

#
# initialize boosplash progress bar variables
#
runrcS=/etc/rcS.d
runrc=/etc/rc$runlevel.d
prerc=/etc/rc$previous.d

SSC=($(echo $runrc/S*))
  case "$SSC" in
     *\*)
       sscripts=0 ;;
     *)
       sscripts=${#SSC[*]} ;;
  esac
 
if [ "$previous" != "N" ]; then
  KSC=($(echo $runrc/K*))
    case "$KSC" in
       *\*)
         kscripts=0 ;;
       *)
         kscripts=${#KSC[*]} ;;
    esac
fi

if [ "$previous" = "N" -a "$runlevel" != "S" ]; then
  SSC=($(echo $runrcS/S*))
    case "$SSC" in
      *\*)
        sscripts=0 ;;
      *)
       progress=${#SSC[*]}
       sscripts=$((${#SSC[*]} + $sscripts)) ;;
    esac
else
   if [ "$runlevel" = "S" ]; then
     #
     # The system is started, let bootsplash know which is next (default)
     # runlevel to calculate correct progress bar size.
     #
     SSC=($(echo $runrcS/S*))
     NXT=($( grep initdefault /etc/inittab | sed {s/:/\ /g} ))
     nextlevel=${NXT[1]}
     nextrc="/etc/rc$nextlevel.d"
     NSC=($(echo $nextrc/S*))
     sscripts=$((${#SSC[*]} + ${#NSC[*]}))
   fi
   progress=0
fi

#
# let bootsplash know if we are shutting down or starting up
#
if [ "$runlevel" = "0" -o "$runlevel" = "6" ]
  then
    kscripts=$(($kscripts+$sscripts))
    rc_splash "splash start"
    rc_splash "shutdown"
  else
    rc_splash "splash start"
fi

export sscripts progress kscripts


##
# End of me pretending
##
Ich vermute mal, dass die Variable $progress auf einen falschen Wert gesetzt wird. Leider kann ich aber nicht sagen, wie es richtig gemacht werden muss (kann keine Shell-Programmierung, früher konnte ich nur etwas Perl). Besonders fehlerverdächtig kommt mir folgender Abschnitt der Datei vor:

Code: Alles auswählen

if [ "$previous" = "N" -a "$runlevel" != "S" ]; then
  SSC=($(echo $runrcS/S*))
    case "$SSC" in
      *\*)
        sscripts=0 ;;
      *)
       progress=${#SSC[*]}
       sscripts=$((${#SSC[*]} + $sscripts)) ;;
    esac
else
   if [ "$runlevel" = "S" ]; then
     #
     # The system is started, let bootsplash know which is next (default)
     # runlevel to calculate correct progress bar size.
     #
     SSC=($(echo $runrcS/S*))
     NXT=($( grep initdefault /etc/inittab | sed {s/:/\ /g} ))
     nextlevel=${NXT[1]}
     nextrc="/etc/rc$nextlevel.d"
     NSC=($(echo $nextrc/S*))
     sscripts=$((${#SSC[*]} + ${#NSC[*]}))
   fi
   progress=0
fi
Die Variable $progress tritt auch auf am Ende des Skripts /sbin/splash.sh:

Code: Alles auswählen

#
# Now paint the progressbar. This is done via the proc
# interface of the bootsplash.
#

echo "show $(( 65534 * ( $progress ) / 100 ))" > /proc/splash
Wenn ich in obiger Datei den Wert 100 gegen 60 tausche ist die Progressbar deutlich länger aber es passt immer noch nicht und wenn der Wert für das Booten passt, dann ist die Progressbar beim Shutdown immer noch zu kurz. Also scheint es mir so, dass $progress in dem Skript /etc/init.d/rc mit einem falschen Wert initialisiert wird.

Ich hoffe, dass auf diese Information vielleicht jemand aufbauen kann. Meine Kenntnisse reichen im Moment nicht aus :(

Antworten