Bootbild i FreeBSD

Idag gjorde jag det igen för jag hade tråkigt. En "bootbild" är alltså en bild som visas när systemet startar. I detta fallet är systemet FreeBSD 6.0-RELEASE. Jag skriver detta för min laptop som är en IBM Thinkpad R40. Hur er bild ser ut är beroende på vilket grafikkort ni har och vilket videoläge som er BIOS och konsoll stödjer. Jag har inte forskat mycket i det området och är inte så bra på det så jag tänker endast säga vad jag har och vad jag gjorde.

Det första ni behöver är bilden och det är absolut inte mitt område så jag hittade en på nätet för länge sedan då jag först testade detta med FreeBSD 4.10. Jag hade nu turen att hitta samma bild lagrad på en server så jag använde den. Jag har ingen aning om vem som gjort bilden eller om jag får använda den men det är ett annat problem. Bilden hittar ni på länken nedan.

Jag la till lite enkel text på den och upptäckte att jag kunde ha fler färger än vad jag använt när jag testade detta första gången med FreeBSD 4.10. Jag har ingen aning hur många färger den har men den ser klart snyggare ut än mitt första försök.

http://swehack.se/pub/picz/nocturnal_splash.bmp

Här är även originalbilden, om någon kan förbättra den på något sätt genom att till exempel lägga till en text som säger FreeBSD, nocturnal eller swehack med en fin font så hade det uppskattats.

http://swehack.se/pub/picz/Acid.jpg

Som ni ser har den väldigt få färger. När splash koden introducerades i FreeBSD 3.1 så fanns det mest stöd för en upplösning på 320x200 och 256 färgers bitmap. Ny hårdvara har stöd för högre upplösningar, jag kunde tex ha en upplösning på 800x600 och jag kan säkert ha mer färger också men jag har inte testat än. Fler färger hade absolut gjort bilden lite snyggare men den är faktiskt snygg som den är. Jag kan absolut inget om grafik och bildformat så om någon har något att säga till om detta så får ni gärna göra det. Ni kan använda kommandot nedan för att se vilka videolägen er konsoll klarar av. Ni kan inte köra kommandot när en x server är igång.

 vidcontrol -i mode | egrep 'G [0-9]+x[0-9]+x8' | awk '{ print $5 }' | sed -e 's/x8$//'

Använder ni en bild som inte fungerar så händer inget eller så blir det svart och då trycker ni bara på en tangent så blir allt som vanligt igen. Samma sak gäller när er bild laddas, den kommer fortsätta och synas på skärmen om ni inte trycker på valfri tangent, då ser ni den vanliga boottexten igen och kan logga in. Ni kan även använda bilden som en skärmsläckare i konsollen men det är en helt annan historia. Gör ni egna splash bilder som är lite heta får ni gärna skicka dom till mig, det skulle uppskattas eftersom jag inte kan något om grafik och suger på att göra egna bilder i gimp.

Nu när ni har er bild så kan ni lägga den i /boot katalogen om ni vill. Där brukar jag ha den. Jag döper min till splash.bmp bara för att det är så de döpt den i loader.conf exemplet. Ni ska nu öppna filen /boot/defaults/loader.conf, ni som vet hur FreeBSD fungerar förstår nog att ni även kan lägga dessa inställningar i /boot/loader.conf om ni vill men jag visar i /boot/defaults/loader.conf i mitt exempel. Här nedan ser ni en bit av min loader.conf fil som visar mina egna inställningar.

 ##############################################################
 ###  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
 bitmap_type="splash_image_data" # and place it on the module_path
 loader_color="YES"		# Set this to YES to enable splash screen colors

Det är möjligt att kärnan som standard letar efter splash filen i /boot men som ni ser har jag skrivit hela sökvägen till filen för att undvika missförstånd. Det första alternativet anger att ni ska använda bmp, jag kan inget om bmp och pcx format så jag tog bmp endast för att jag kände igen det formatet men jag har sett pcx bilder och jag har även omvandlat bilder från bmp till pcx i gimp eller med convert utan problem.

Det alternativet jag missade första gången jag försökte mig på detta i FreeBSD 4.10 är vesa_load, det laddar vesa modulen i kärnan så att er konsoll kan visa bilder. Nästa alternativ måste också vara YES. Nu ser ni alternativet bitmap_name som anger namnet av filen som ska laddas. Jag vågade inte röra alternativet bitmap_type för jag antog att det redan var rätt. Det sista alternativet gör så att ni kan ha färger i er bootbild.

Tittar ni lite längre ner i loader.conf filen hittar ni andra alternativ som jag rekommenderar, tex så har jag satt alternativet beastie_disable till YES för att undvika menyn som är ny för FreeBSD 5 och 6. Jag har även satt alternativet autoboot_delay till 1. Där anger ni hur många sekunder systemet ska vänta innan kärnan startas. Ni kan ange -1 för att den inte ska vänta alls. Den här tiden är till för att ange startalternativ och det kan man ibland behöva.

Nu ska ni kunna starta om och se er bild när systemet startar. För att få se hur det ser ut på min laptop så har jag bifogat en film. Jag spelade in den med min mobiltelefon som använder sig av ett 3gp quicktime format. Det går att spela upp i mplayer men har kanske lite dålig kvalité.

http://swehack.se/pub/splash_boot.3gp