Booten unter 5.3 verschönern mit Splash Screen & Co

[Thrash]

Well-Known Member
Hi.

Hab mal die Forensuche bemüht und zu "splash screen" findet er auch ziemlich viel, aber sobald ich das wort "loader" oder "loader.conf" dazu schreibe findet er 0 Ergebnisse.

Scheine ich wohl der einzige zu sein der so ein Problem hat. Und zwar folgendes:
Ich hab mir laut der Wiki-Anweisung in die loader.conf reingeschrieben, dass er beim Booten ein Splash Screen anzeigt den ich auch unter /boot/splash.bmp abgelegt habe und der Eintrag steht auch so in der /boot/loader.conf

Naja, aber das ganze funzt net!
Genauso wenig wie er den Dämon aus dem Bootmenü am Anfang farbig macht. kA wieso nicht, aber es scheint so als ob er die loader.conf völlig ignoriert. Die war auch total leer!

Hat jemand eine Idee?

Ich hab schon an den Vesa Treiber gedacht (Bild hat entsprechende Farbtiefe), aber ich hab ne Sapphire Ati Radeon 9600 XT und die sollte doch VESA Kompatibel sein denk ich!?
Den Treiber den ich für meine Grafikkarte beim X-Window starte ist der "radeon". Nur so als Info. Der hat ja eigentlich mit dem SplashScreen nix am Hut.

Muss ich eventuell irgendwo eintragen, dass er die loader.conf berücksichtigt oder sowas!?

Danke schon mal! :)

Gruß
 
Zuletzt bearbeitet:
Ja genau so steht es in der loader.conf (also aus dem Gedächtnis, bin ger. mal unter Win drinne und kann nich nachschauen. aber ich hole das auf jeden Fall nach und melde mich dann wieder).

Also von deiner Seite da ist mein Splash nicht, aber auch ein BMP, auch 256Farben (hab ich im Gimp kontrolliert) und auch ähnliche (oder gleiche) Größe. Nur eben ein anderes Bild. :)
Wie gesagt, ich kontrollier noch mal was genau in der loader.conf steht, aber ich habs ausm Wiki von hier abgetippt, also sollte stimmen.

Ich meld mich am Besten gleich wieder. :)
 
Also hier mal meine loader.conf

Mehr steht da nicht drinne und meiner Meinung nach ist das alles richtig. Zumindest seh ich kein Fehler.

Code:
#23.12.04


##############################################################
###  Splash screen configuration  ############################
##############################################################

splash_bmp_load="YES"		# Set this to YES for bmp splash screen!
splash_pcx_load="NO"		# Set this to YES for pcx splash screen!
vesa_load="YES"			# Set this to YES to load the vesa module
bitmap_load="YES"		# Set this to YES if you want splash screen!
bitmap_name="/boot/splash.bmp"	# Set this to the name of the bmp or pcx file


##############################################################
###  Loader settings  ########################################
##############################################################

loader_color="YES"		# Dämon vom Loadermenü farbig
autoboot_delay="6"		# Delay in seconds before autobooting
#beastie_disable="NO"		# Turn the beastie boot menu on and off

Ich hab auch extra noch mal geschaut, das Bild hat den richtigen Namen und ist auch etwa so groß wie das was Du gelinkt hast.

Das einzige was jetzt noch sein könnte, dass die Karte keinen VESA Mode unterstützt, aber das glaub ich eher nicht. Kann ich mir zumindest bei ner relativ neuen 9600 XT nich vorstellen.


Er macht übrigens auch keine 6 Sekunden Wartezeit beim Bootmenü. Er scheint also wirklich die loader.conf völlig zu ignorieren!?
 
Code:
loader_color="YES"		# D[COLOR=Red]ä[/COLOR]mon vom Loadermen[COLOR=Red]ü[/COLOR] farbig

Ich glaube nicht, dass Umlaute gesch(ae)tzt werden..
 
Auch nicht im Kommentar?

Ich mach die mal raus, aber wenns wirklich nur daran liegt beiß ich mir in poppes. Den Kommentar müsste er doch (zumindest so rein theoretisch) völlig ignorieren!?

Ich Probiers mal sofort. :)

Danke erstmal!
Gruß
 
Umlaute darfst du in Kommentaren verwenden, wie du willst :)
Code:
> egrep ü\|ä\|ö\|ß /boot/loader.conf
# ACPI-Unterstützung laden
# DMA-Modus für ATAPI-Laufwerke aktivieren
# Linux-Emulation incl. Linux-Prozeß-Dateisystem laden
# Modul für die Creative Audigy 2 laden
Ansonsten habe ich für meinen Splash-Screen die gleichen Einstellungen, funktioniert mit diversen ATI-, Matrox-, Cirrus Logic- und nVidia-Grafikkarten gleichermaßen gut. Mein Unterschied: Ich habe VESA im Kernel. Wenn ich mich recht erinnere (oh Mann, 5.3-Release erst vor zwei Monaten eingerichtet und schon wieder vergessen :rolleyes: ), dann hatte ich mit VESA als Modul kein Glück.
 
p.h. schrieb:
Mein Unterschied: Ich habe VESA im Kernel. Wenn ich mich recht erinnere [...], dann hatte ich mit VESA als Modul kein Glück.
Wie als Modul? Du meinst als Modul über die loader.conf hast Du es nicht geladen?

Vielleicht ist das bei mir auch, ich weiß nämlich auch nicht mehr ob ich das nun im Kernel hab oder net. ;)

Allerdings sollte doch der Dämon am Anfang im Bootmenü wenigstens farbig werden, auch mit oder ohne VESA oder?
Zumindest wird der auch nicht farbig. Und die Zeit nach der das Botmenü weiter bootet hat er auch immernoch auf 10 Sekunden. Also es ist wirklich so wie wenn er die loader.conf völlig ignoriert und ich hab keine Idee worans liegt.
Was für Rechte hat die denn bei dir. Als ausführbar muss ich die ja nicht markieren oder? Ist ja keine binär-Datei ... !?


Umlaute darfst du in Kommentaren verwenden, wie du willst
Ah Danke, dann war meine Intuition nicht ganz falsch.
Hat übrigens auch nichts gebracht die raus zu tun! :)

Danke auch mal wieder!
Gruß
 
Zum Vergleich meine /boot/loader.conf:

# ls -alh /boot/loader.conf
Code:
-r-xr-xr-x  1 root  wheel   263B 10 Okt 16:00 /boot/loader.conf
# more /boot/loader.conf
Code:
#/boot/loader.conf
# Andy, 10.10.2004

#Splash-Screen mit VESA
splash_bmp_load="YES"
vesa_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"

#Starteinstellungen
autoboot_delay="2"
kern.cam.scsi_delay="200"

#Sound
sound_load="YES"
snd_ich_load="YES"
 
Sieh mal mit kldstat(8) nach, welche Module überhaupt geladen wurden. Wenn du wissen willst, ob vesa(4) im Kernel ist, verwende:
Code:
kldstat -v -n kernel | grep vesa
Oder fragen Sie einfach Ihre Kernelconfig :)

Interessant wäre zu wissen, welche Dateien in /boot du verändert hast (das sind alle, deren Datum neuer als "5 Nov 02:26" gesetzt ist) und welchen Inhalt die betreffenden Dateien nun haben.

Die loader.conf braucht übrigens keine Ausführrechte, weil sie nur ge'source't wird.
 
Hi.

Danke p.h. das mit dem im Kernel hab ich inzwischen schon nachgeschaut, weil ich mir wirklich nicht sicher war und ich glaub ich habs wirklich nicht mitkompiliert. Aber da inzwischen ja eh schon nen Patch raus ist werde ich gleich mal Kernel inkl. World neu bauen.


@Andreas

Also ich glaube das könnte das Problem schon sein.
Bei mir sieht es nämlich (als root) so aus:
Code:
-rw-r--r--  1 root  wheel    1001 Dec 24 23:51 loader.conf

Werde ich nachher mal ändern müssen, jetzt gibts erst mal Essen. :)

Danke auch schon mal.
Gruß


[edit]
@p.h.
Wenn ich deine kleine Konsolenzeile bei mir eingebe (als root) kommt einfach gar keine Ausgabe. Ich werte das mal als Vesa ist nicht mitkompiliert im Kernel (ist es ja auch nicht, hab ja vorher nachgeschaut) und auch nicht als Modul geladen. :)
 
Also das Funzt bei mir immernoch nicht.
Die loader.conf ist immernoch dieselbe wie die, die ich oben geposted habe.

Vielleicht liegt das Problem bei der loader.4th.

Hier ( http://www.freebsd.org/cgi/man.cgi?query=loader.conf&sektion=5 ) steht nämlich ganz unten:
/boot/loader.4th defines the commands used by loader to read and process lader.conf.

Und vielleicht spielt auch noch die loader.rc ne Rolle da steht nämlich ebenso:
/boot/loader.rc contains the instructions to automatically process loader.conf.

Ich poste mal die zwei Dateien, schaut doch mal bitte was ihr da so habt oder posted sie, vielleicht liegt das Problem da!?
Komisch ist das nur, weil ich an den Dateien nie etwas verändert habe. Nur wie geschrieben, war ganz am Anfang die loader.conf leer und da hab ich dann nur die Sachen aus /boot/default/loader.conf übernommen.

/boot/loader.4th
Code:
 [kommentare...]
\ $FreeBSD: src/sys/boot/forth/loader.4th,v 1.24 2002/05/24 02:28:58 gordon Exp $

s" arch-alpha" environment? [if] [if]
        [...]
[then] [then]

s" arch-i386" environment? [if] [if]
	s" loader_version" environment?  [if]
		11 < [if]
			.( Loader version 1.1+ required) cr
			abort
		[then]
	[else]
		.( Could not get loader version!) cr
		abort
	[then]
[then] [then]

256 dictthreshold !  \ 256 cells minimum free space
2048 dictincrease !  \ 2048 additional cells each time

include /boot/support.4th

\ ***** boot-conf
\
\	Prepares to boot as specified by loaded configuration files.

only forth also support-functions also builtins definitions

: boot
  0= if ( interpreted ) get_arguments then

  \ Unload only if a path was passed
  dup if
    >r over r> swap
    c@ [char] - <> if
      0 1 unload drop
    else
      s" kernelname" getenv? if ( a kernel has been loaded )
        1 boot exit
      then
      load_kernel_and_modules
      ?dup if exit then
      0 1 boot exit
    then
  else
    s" kernelname" getenv? if ( a kernel has been loaded )
      1 boot exit
    then
    load_kernel_and_modules
    ?dup if exit then
    0 1 boot exit
  then
  load_kernel_and_modules
  ?dup 0= if 0 1 boot then
;

: boot-conf
  0= if ( interpreted ) get_arguments then
  0 1 unload drop
  load_kernel_and_modules
  ?dup 0= if 0 1 autoboot then
;

also forth definitions also builtins

builtin: boot
builtin: boot-conf

only forth definitions also support-functions

\ ***** check-password
\
\	If a password was defined, execute autoboot and ask for
\	password if autoboot returns.

: check-password
  password .addr @ if
    0 autoboot
    false >r
    begin
      bell emit bell emit
      ." Password: "
      password .len @ read-password
      dup password .len @ = if
        2dup password .addr @ password .len @
        compare 0= if r> drop true >r then
      then
      drop free drop
      r@
    until
    r> drop
  then
;

\ ***** start
\
\       Initializes support.4th global variables, sets loader_conf_files,
\       process conf files, and, if any one such file was succesfully
\       read to the end, load kernel and modules.

: start  ( -- ) ( throws: abort & user-defined )
  s" /boot/defaults/loader.conf" initialize
  include_conf_files
  include_nextboot_file
  \ Will *NOT* try to load kernel and modules if no configuration file
  \ was succesfully loaded!
  any_conf_read? if
    load_kernel
    load_modules
  then
;

\ ***** initialize
\
\	Overrides support.4th initialization word with one that does
\	everything start one does, short of loading the kernel and
\	modules. Returns a flag

: initialize ( -- flag )
  s" /boot/defaults/loader.conf" initialize
  include_conf_files
  include_nextboot_file
  any_conf_read?
;

\ ***** read-conf
\
\	Read a configuration file, whose name was specified on the command
\	line, if interpreted, or given on the stack, if compiled in.

: (read-conf)  ( addr len -- )
  conf_files .addr @ ?dup if free abort" Fatal error freeing memory" then
  strdup conf_files .len ! conf_files .addr !
  include_conf_files \ Will recurse on new loader_conf_files definitions
;

: read-conf  ( <filename> | addr len -- ) ( throws: abort & user-defined )
  state @ if
    \ Compiling
    postpone (read-conf)
  else
    \ Interpreting
    bl parse (read-conf)
  then
; immediate

\ ***** enable-module
\
\       Turn a module loading on.

: enable-module ( <module> -- )
  bl parse module_options @ >r
  begin
    r@
  while
    2dup
    r@ module.name dup .addr @ swap .len @
    compare 0= if
      2drop
      r@ module.name dup .addr @ swap .len @ type
      true r> module.flag !
      ."  will be loaded." cr
      exit
    then
    r> module.next @ >r
  repeat
  r> drop
  type ."  wasn't found." cr
;

\ ***** disable-module
\
\       Turn a module loading off.

: disable-module ( <module> -- )
  bl parse module_options @ >r
  begin
    r@
  while
    2dup
    r@ module.name dup .addr @ swap .len @
    compare 0= if
      2drop
      r@ module.name dup .addr @ swap .len @ type
      false r> module.flag !
      ."  will not be loaded." cr
      exit
    then
    r> module.next @ >r
  repeat
  r> drop
  type ."  wasn't found." cr
;

\ ***** toggle-module
\
\       Turn a module loading on/off.

: toggle-module ( <module> -- )
  bl parse module_options @ >r
  begin
    r@
  while
    2dup
    r@ module.name dup .addr @ swap .len @
    compare 0= if
      2drop
      r@ module.name dup .addr @ swap .len @ type
      r@ module.flag @ 0= dup r> module.flag !
      if
        ."  will be loaded." cr
      else
        ."  will not be loaded." cr
      then
      exit
    then
    r> module.next @ >r
  repeat
  r> drop
  type ."  wasn't found." cr
;

\ ***** show-module
\
\	Show loading information about a module.

: show-module ( <module> -- )
  bl parse module_options @ >r
  begin
    r@
  while
    2dup
    r@ module.name dup .addr @ swap .len @
    compare 0= if
      2drop
      ." Name: " r@ module.name dup .addr @ swap .len @ type cr
      ." Path: " r@ module.loadname dup .addr @ swap .len @ type cr
      ." Type: " r@ module.type dup .addr @ swap .len @ type cr
      ." Flags: " r@ module.args dup .addr @ swap .len @ type cr
      ." Before load: " r@ module.beforeload dup .addr @ swap .len @ type cr
      ." After load: " r@ module.afterload dup .addr @ swap .len @ type cr
      ." Error: " r@ module.loaderror dup .addr @ swap .len @ type cr
      ." Status: " r> module.flag @ if ." Load" else ." Don't load" then cr
      exit
    then
    r> module.next @ >r
  repeat
  r> drop
  type ."  wasn't found." cr
;

\ Words to be used inside configuration files

: retry false ;         \ For use in load error commands
: ignore true ;         \ For use in load error commands

\ Return to strict forth vocabulary

: #type
  over - >r
  type
  r> spaces
;

: .? 2 spaces 2swap 15 #type 2 spaces type cr ;

: ?
  ['] ? execute
  s" boot-conf" s" load kernel and modules, then autoboot" .?
  s" read-conf" s" read a configuration file" .?
  s" enable-module" s" enable loading of a module" .?
  s" disable-module" s" disable loading of a module" .?
  s" toggle-module" s" toggle loading of a module" .?
  s" show-module" s" show module load data" .?
;

only forth also


Und hier noch die andere:

/boot/loader.rc
Code:
\ Loader.rc
\ $FreeBSD: src/sys/boot/i386/loader/loader.rc,v 1.2 2003/11/21 19:01:02 dcs Exp $
\
\ Includes additional commands
include /boot/loader.4th

\ Reads and processes loader.rc
start

\ Tests for password -- executes autoboot first if a password was defined
check-password

\ Load in the boot menu
include /boot/beastie.4th

\ Start the boot menu
beastie-start


Wäre cool wenn jemand noch ne Idee hat oder seine Files mal posted.

Hatte denn irgendjemand schon mal so ein Problem?


Ach ja ... übrigens geht jetzt auch der VESA Support (nach einem neuen Kernel bauen). Ich hab zwar den SplashScreen deswegen immernoch nicht und auch der Dämon am Anfang is noch s/w, aber der Bildschirmschoner auf der Konsole (der kleine Dämon) ist nun viel kleiner und nich so pixelig und wenn ich das Kommando von p.h. ausführe kommt diese Meldung:
Code:
korpsvart@thrash$ kldstat -v -n kernel | grep vesa
                173 vesa


Danke!
Gruß :)
 
AndreasMeyer schrieb:
Wenn in der Datei /boot/loader.conf das steht:
Code:
splash_bmp_load="YES"
vesa_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"
sowie die Datei /boot/splash.bmp von:
[http://www.hta-bi.bfh.ch/~meyea1/freebsd/bilder/splash.bmp
stammt, sollte es gehen!

Ansonsten hast Du Pech gehabt..

geht hervorragend! :)
wenn ich es aber so einstellen könnte, dass es der splash screen wieder verschwindet, sobald alles geladen ist, würde ich es auf meinen zwei rechnern zu hause fix implementieren :cool:
 
Oder du stellst dir deine Konsolenschrift in der rc.conf um, dann verschwindet der Splash gegen Ende der Multiuser-Initialisierung.
 
Elessar schrieb:
Oder du stellst dir deine Konsolenschrift in der rc.conf um, dann verschwindet der Splash gegen Ende der Multiuser-Initialisierung.

yeah, diese variante gefällt mir besser (verschiedene geschmäcker halt :rolleyes: )
muss es aber erst testen!
 
zup schrieb:
Hast du auch
Code:
device		splash		# Splash screen and screen saver support
im Kernel?

Jup klar, danke für den Hinweis, aber hab ich drinne.

Funktioniert immernoch nicht, sehr seltsam. Obwohl ich jetzt ja auch den VESA Mode im Kernel drinne hab.
Das merkt man bspw. beim Bildschirmschoner in der Konsole. Ich hab da den kleinen BSD Dämon und der ist nun kleiner als vorher.

Aber mein SplashScreen ist immernoch nicht da. :(
Und der BSD Dämon im Textmode bei dem Bootloader ganz am Anfang ist auch immernch ganz einfach nur weiß. :confused:
 
HI

Danke für den Tip, das hatte ich schonmal probiert und von der CD geht das booten mit Splashscreen einwandfrei.

Wie gesagt, ich habe irgendwie das Gefühl, dass er die loader.conf auf der Platte völlig ignoriert. Er macht ja auch keinen farbigen BSDDämon im Bootmenü.

Ich hab echt keine Ahnung mehr woran das noch liegen könnte.
Gibt es denn irgendwas ganz rudimentäres was ich aktiviert haben muss oder was in einer Datei stehen muss, damit er solche Dateien wie die loader.conf auch ausführt?

Ich hatte mal in den man-Pages geschaut und da stand irgendwo was von der loader.4th.
Da steht ganz am Ende bei mir sowas, schaut doch mal bitte ob bei Euch da noch mehr steht.
Code:
: .? 2 spaces 2swap 15 #type 2 spaces type cr ;

: ?
  ['] ? execute
  s" boot-conf" s" load kernel and modules, then autoboot" .?
  s" read-conf" s" read a configuration file" .?
  s" enable-module" s" enable loading of a module" .?
  s" disable-module" s" disable loading of a module" .?
  s" toggle-module" s" toggle loading of a module" .?
  s" show-module" s" show module load data" .?
;

only forth also

Habt ihr denn im Verzeichnis /boot/ auch die Datei "loader"? Die gibts bei mir auch mit einfach zwei weißen Kästchen (kennt ihr sicher, die er oft anzeigt wenns das Zeichen in der entsprechenden Schrift nicht gibt).

Ich glaub ich schau die Tage hier noch mal rein und auch noch mal bei google.de/bsd und wenn ich da nix finde dann lass ichs.
Hab keine Idee mehr worans noch liegen könnte. :/

Danke schonmal.
Gruß


[EDIT]

Ich hab ger. hier http://students.seattleu.edu/hodeleri/FreeBSD/boot.html eine Info gefunden, dass bei der Ausgabe der Bootmessages ne Info kommen müsste. Ich hab dann mal mit dmesg geschaut und da kommt keine Info. Weder darüber, dass er die loader.conf lädt noch darüber, dass er den Splash Screen nicht anzeigen könnte.
Wie ich gesagt hab ignoriert er also die loader.conf völlig.

Hat da jemand ne Idee?
Muss ich das woanders noch eintragen, dass er die laden soll? Oder muss das in den Kernel mit rein?

Gruß
 
Zuletzt bearbeitet:
@[Thrash]

Das mag komisch klingen, aber bootest du FreeBSD überhaupt über den loader?

Gruß, matze
 
Ja das ist eine gute Frage ... scheint mir sinnvoll die zu stellen. Aber gleich die nächste: Wie finde ich das denn raus?

Ich hab bzgl. der loader.conf noch nie was einstellen müssen (deswegen hatte ich auch sofort den verdacht, dass er die ja viell. ganz ignoriert).

Meinst Du das Bootmenü beim Systemstart oder die F-Tasten-Auswahl am Anfang? Wenn Du den Bootmanager meinst nach dem Bios-Bootvorgang dann ja! Hab ja noch parallel Windows installiert.

Aber der Splash-Screen sollte doch eigentlich nach dem Menü mit dem ASCII-Demon auf der rechten Seite kommen?
Da ist doch der Loader (wo ich mit den F-Tasten das OS wähle) schon längst vorbei ... !?


Vielleicht sind wir auf dem richtigen Weg. ;)

Gruß
 
Zurück
Oben