                              
                                                     
                                                       
               ۰߰     ܰ۰  
             ۱      ܱ߰    ۰
             ۱          ۱      ۰  
                 ܰ߱    ߰۲    
              Outbreak Magazine Issue #15 - Article 5 of 11
          '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'


Okay this is something I just found out about recently but its been
around for a while. Now before you go saying ya i've seen that before,
you should read on as this is not your regular lilo/grub boot image.
This uses the framebuffer and sets a background image on your CONSOLE.
Thats right the console. You can also map the text to a certain area.
You can see examples at
http://130.13.102.100:8090/index.php?page=screenshot-archives

You do need a 2.4.19 kernel for this. It might work on others but I
haven't tested it at all. Ok first thing you need to do is go grab the
source for this stuff. Logon to
ftp.suse.com/pub/people/stepan/bootsplash/ and get the following files.

splashutil.tar.bz2
kernel/boot_splash_complete.2.4.19-vanilla.patch

First thing you want to do is build the splash utility, cd to an
appropriate directory, I prefer /usr/local, untar it, cd to the
splashutil directory, make, cp splash /usr/local/bin/ and then its
installed.

Now you want to patch the kernel with the boot_splash patch. You may
need to open up the patch in your favorite text editor and edit the
first two line to the proper directory for the kernel sources. Copy the
patch to /usr/src, cd to /usr/src/ and patch -p0 <
boot_splash_complete.2.4.19-vanilla.patch ... now you have to configure
the kernel. make menuconfig will bring you into the configuration menu.
The following options you need to compile into the kernel NOT AS
MODULES. 

Block Devices -> RAM Disk Support
Block Devices -> Loopback device support
Block Devices -> Initial RAM disk (initrd) support
Console Drivers -> Video Mode Selection Support
Console Drivers -> Frame-Buffer Support -> Support For Frame Buffer
Devices
Console Drivers -> Frame-Buffer Support -> VESA VGA Graphics Console
Console Drivers -> Frame-Buffer Support -> Use Splash Screen Instead Of
Boot Logo

DISCLAIMER!@# - Configuring the rest of your kernel is unfortunately
beyond the scope of this article. But please don't fubar your system to
get this working cuz I take no responsibility.

Now to create your background image. Do whatever you need in the gimp
to make whatever. Make sure that the image is the same resolution as
your frame buffer console otherwise it wont work. After you have your
image made you have to write up a config file. It contains the
following entry's ...

# This tells it to display the image.
state=1

# This tells it what jpg to load into the initrd image
jpeg=/usr/share/bootsplash-0.4/boot.jpg

# This is needed for certain color settings and other things
version=2

# The following are dimensions to display the console output
# tx = starting x cordinate in pixels
# ty = starting y cordinate in pixels
# tw = width of console output in pixels
# th = height of console output in pixels

tx=0
ty=0
tw=1280
th=1024

# fgcolor and bgcolor are pretty self explanitory here is a list of
# valid colors
#  0 - black
#  1 - blue
#  2 - green
#  3 - teal
#  4 - red
#  5 - purple
#  6 - brown
#  7 - grayish white
#  8 - grayish black
#  9 - light blue
# 10 - Bright Green
# 11 - Bright Cyan
# 12 - Bright Red
# 13 - Bright Magenta
# 14 - Yellow
# 15 - Bright White

fgcolor=7
bgcolor=0
#End of file

Those are the settings for my console background. You can get my boot
and console background and config files at
http://130.13.102.100:8090/stuff/

Now to set up the initrd image. Once you have your config and image
done you should probably move them to a suitable directory, I suggest
/usr/local/share/bootsplash/ ... cd to that directory and run 
splash -s -f ./config-file.cfg > initrd
then move initrd to /boot, make sure it is mounted if it is on a
different partition, then edit your lilo/grub config file and add the
lines

For lilo:
vga=791 # for 1024x768x16
# vga=794 # for 1280x1024x16
# From my experience 24bpp framebuffers wont work
initrd=/boot/initrd # May need to be /initrd depending on your setup

For grub:
vga=0x317 # For 1024x768x16
# vga=0x31A # For 1280x1024x16
# Will not work with 24bpp frame buffers AFAICT
initrd=/boot/initrd # May need to be ./initrd depending on your setup

After that run lilo if you have to and reboot, You should see a pretty
boot screen. Now you can go even further with this with the splash
program. 'splash -s -u <NUMBER> /path/to/config' will set the
background for a certain tty console. For example I have in my initrd
image a screen for booting, but it doesn't really look good in the
console, so I added a section to my /etc/profile that will reset the
background when I login. I had to set the app to run suid root so it
could access /proc/splash when logging in as a user. If you have any
questions email me at snoogans@qwest.net and good luck!

For more reference go to http://forums.gentoo.org/viewtopic.php?t=26494
this is where I first saw this and got all the information, theres also
some very cool bootscreens there.

-- 
/*  BoBB
 *  AIM: Jodokast49 ICQ: 151495596
 *  Jabber: BoBB@jabber.com
 *  http://knightsofchaos.com/~BoBB/new/
 */