1.0 Requirements for GRUB splashimages:
1. xpm.gz file type
2. 640x480
3. 14 colors only
1.1 I have my image, now what?
1. Gzip your xpm file and put it into your /boot/GRUB directory (or to any directory of a /dev/hda1 partition). (do: `gzip myfile.xpm`)
2. Edit your GRUB config file (aka /etc/GRUB.conf) and add this line:
splashimage=(hd0,0)/GRUB/myfile.xpm.gz
NOTE: Change the partition and directory according to your system's setup.
3. reboot and cross your fingers
1.2 Remapping hard drives in device.map problem
While using Debian GRUB v0.93+cvs20030224-2 package, Alexey Chernyak has reported the need to re-issue the *grub-install* command every time he changed splashimage line in his menu.lst file for the change to take effect. This was a side effect of having remapped hard drives in device.map file. Example:
(fd0) /dev/fd0
(hd0) /dev/hde
(hd1) /dev/hdb
(hd2) /dev/hda
For whatever reason you may need to do this, it seems that for that old version of GRUB with the patch did in fact have a bug/intended behaviour that required you to do that. Alexey then reported that he contacted Jermey Katz and that little afterwards Debian had a new unstable release with this fixed.
1.3 It doesn't work you suck!
Too bad. Screw you =-) No really, if it didn't work or if this text needs clarification you can e-mail me and I can try to help you/ourselves out. I can't promise anything though, since school forces me to be a busy person.
1.4 Tips and tricks
1.3.0 Test all your images with only one reboot
!
As you can imagine rebooting every time to test just one freakin' image can be painful and frustrating... With GRUB you don't have to! I'd recommend creating several xpm images you'd like to try out and after that, reboot to interact with GRUB to test each and everyone one of them one by one (don't forget to gzip each one and to put them in /boot/GRUB or so). So just reboot using the default splashimage given to you (don't edit the GRUB conf file).
After your reboot, when the menu for GRUB pops up, just hit "c" to go into the command-line prompt. At the prompt, load the partition with the GRUB images. Please try to make it your /dev/hda1 (which is (hd0,0) in GRUB-partition-nomenclature). I tried using some other partition several times and I only got GRUB to lock itself sometimes. You load partitions by doing:
root (hd0,0)
Then try to load the splash images, one by one:
splashimage /GRUB/myfile.xpm.gz
Do this command for each image you have... Cool huh? Once your satisfied with the splashimage just go ahead and boot up and edit to your GRUB conf file to use it. You may want to keep in mind that GIMP sometimes makes a file look a bit ugly when converting it to 14 colors... and it may take you a long time to re-edit it to make it look priiiiity. That's what happened to me. I used a friend's ruslug tux image and I ended up having to edit the file pixel by pixel... (not fun, it took me about 2-3 hours). What works nice is actually starting a file using 14 colors only and then creating your original artwork from there.
NOTE: it makes it even easier if you have two computers. You can have one on the GRUB prompt and use the other one to edit the xpm files and save them onto floppy disks. Then you just load the floppy instead of a hard drive partition
(fd0) I think. Yes, there's a GIMP version for windows too
It's a shame that running GRUB from the prompt, once Linux starts, it doesn't allow you to use the `splashimage` command. Otherwise you'd be able to test all these images without even restarting :P (I tried running it from both terminal and virtual terminal).
1.3.1 Only 14 colors... How do I do that?
To get GIMP to use only a 14 color palette, right click on your file and press ALT+I and put 14 where it says "Generate Optimal Palette:" on the top of the menu. If ALT+I doesn't get you there then right click on the image and go to:
Image-->Mode-->Indexed
Specify you want 14 colors and then if you want (*recommended*) select NO DITHERING. This will tell the gimp not to try to guess colors in between areas. It is also possible that you tell them gimp what colors you want in your 14-color pallete, I actually had to do this for one of my images and I replaced a dark color for a light one.
The GIMP ROCKS!
1.3.2 Does it have to be filename.xpm.gz?
Not really. GRUB just provides automatic unzip'ing functionality. How you think your bzImage kernel images get's loaded? Heh. So that's just a feature and it's good practice. According to `info GRUB` it does loads quicker. The reason for loading quicker is that -believe it or not- compressed files load quicker on today's computers than uncompressed files. Why? Well because the amount of time it takes for today's average computer to read from the hard drive an uncompressed (thus bigger) file is longer than the amount of time it takes for it to read a smaller hard area on the hard drive + pass it onto main memory + uncompress it with CPU power. Well anyway, you can still leave your xpm images uncompressed, they should work fine (they did when I tested them).
1.3.3 Can I change the foreground and background color of the menu?
Yes you can. Just put something like the following in your menu.lst file:
foreground = ffffff
background = 000000
1.5 File size... ?
There doesn't seem to be any file size limiation on the splash image file (well yes, maybe the size of your RAM)...