How to create a custom syslinux splash

From FedoraProject

Revision as of 20:28, 13 September 2010 by Duffy (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Hicolor Syslinux Splash

Artwork F8Themes Infinity Round3Final infinity-syslinux final.png

(Above: example hicolor syslinux splash from Fedora 8)


Artwork F8Themes Infinity Round3Final infinity-syslinux-preview.png

(Above: preview graphic showing syslinux using the very first graphic above)


Step 1: Create or find some artwork

Create or find some artwork to use as your syslinux splash. The main restriction on syslinux hicolor splashes is that they must be 640 x 480 pixels (not very large these days!) There aren't any practically limiting color limits, though - 65,536 colors ought to be enough for anybody. :)

There are two odd requirements, though. We'll get you through them, no problem:

  • the image must be 16-bit. Don't worry, we'll walk through converting it to 16-bit.
  • the image should be a png with a jpg extension. I don't remember why, but it's how it is. Again, an easy thing to account for.

Step 2: Scale down the artwork

  • Open up the image you've got in the gimp. (yum install gimp)
  • Go to "Image > Scale Image" in the Gimp menus along the top of the image.
  • In the "Scale Image" dialog, make sure the lock icon is closed, then type in '640' for the width, erasing whatever was there. Gimp will automagically update the height field to scale it proportionally to a 640 pixel width based on the image's original proportions. If the image isn't in the same ratio as 640, 480, the height won't automagically update to '480'. That's okay. Based on what Gimp fills in for the height, we'll be able to change the picture's ratio. (see below)
    • If gimp fills in the 'height' field to a value greater than 480 (for example, 550), accept that value and hit the 'Scale' button in the lower right of the dialog. (This means the image ratio has more height than we need, so we'll crop it later.)
    • If gimp fills in the 'height' field with a value less than 480 (for example, 300), then change the 'height' value to 480. This will update the 'width' value to a value greater than 640. That's okay. It just means that the image has more horizontal image data than we need. We'll crop it later.
  • (If image isn't now perfectly 640x480) Crop the image down to 640x480 by opening up the "Image > Canvas Size" dialog. Click on the lock icon so it is unlocked. Replace the 'width' value with '640', and replace the 'height' value with '480'. There will be an image preview in the bottom of the dialog. Drag the image around in the preview - anything falling outside of the rectangular border that appears in the center of the preview will be cropped out. Move the image around as you desire and when you're satisfied, hit the 'resize' button.

Step 3: Save the image out

  • Still in Gimp, go to "File > Save As..." and save the image as "syslinux.png". Save it to your Desktop, okay? The instructions from here on out will assume you saved to your Desktop.

Step 4: Correct Colors & Color depth

  • Open up a terminal, you'll need the command line.
  • We're going to be using ImageMagick. If you don't know if you have it installed, try yum install ImageMagick.
  • Okay, cd ~/Desktop, and type the following command:
convert  -depth 16 -colors 65536 syslinux.png syslinux-vesa-splash.png

Step 5: Change File Extension

  • Still in the terminal, type the following to change the png to a jpg file extension:
mv syslinux-vesa-splash.png syslinux-vesa-splash.jpg

Step 6: Testing syslinux splash (mystery!)

I don't know how to test the hicolor syslinux splash. I do know as of Fedora 14 it goes to the following path:

  • /usr/share/anaconda/boot/syslinux-vesa-splash.jpg

Indexed color Syslinux Splash

Artwork F8Themes Infinity Round3Final infinity-syslinux small final.png

Step 1: Create or find some artwork

Create or find some artwork to use as your syslinux splash. Syslinux indexed color splashes have different requirements than the hicolor ones:

  • it must be 640 x 300 pixels - I usually crop my hicolor image down to 300 pixels tall for this.
  • 14 colors (like grub)

Step 2: Scale down the artwork

  • Open up the image you've got in the gimp. (yum install gimp)
  • Go to "Image > Scale Image" in the Gimp menus along the top of the image.
  • In the "Scale Image" dialog, make sure the lock icon is closed, then type in '640' for the width, erasing whatever was there. Gimp will automagically update the height field to scale it proportionally to a 640 pixel width based on the image's original proportions. If the image isn't in the same ratio as 640 x 300, the height won't automagically update to '480'. That's okay. Based on what Gimp fills in for the height, we'll be able to change the picture's ratio. (see below)
    • If gimp fills in the 'height' field to a value greater than 300 (for example, 550), accept that value and hit the 'Scale' button in the lower right of the dialog. (This means the image ratio has more height than we need, so we'll crop it later.)
    • If gimp fills in the 'height' field with a value less than 300 (for example, 150), then change the 'height' value to 300. This will update the 'width' value to a value greater than 640. That's okay. It just means that the image has more horizontal image data than we need. We'll crop it later.
  • (If image isn't now perfectly 640x300) Crop the image down to 640x300 by opening up the "Image > Canvas Size" dialog. Click on the lock icon so it is unlocked. Replace the 'width' value with '640', and replace the 'height' value with '300'. There will be an image preview in the bottom of the dialog. Drag the image around in the preview - anything falling outside of the rectangular border that appears in the center of the preview will be cropped out. Move the image around as you desire and when you're satisfied, hit the 'resize' button.

Step 3: Index the colors

  • Still in the gimp, visit the "Image > Mode > Indexed..." in the menus along the top of the image.
  • The "Indexed color conversion" dialog will appear. Under the colormap section towards the top, select the 'Generate optimum palette' option and type in '14' for the 'Maximum number of colors' value.
  • In the "dithering" section of the "Indexed color conversion" dialog, select 'Floyd-Steinburg (Reduced color bleeding'.
  • Click 'convert'.
  • Now the image is 14 colors. Depending on the original image you chose to use, it may now look extremely funkified.
  • Sometimes little artifacts show up in the indexed-color version of the image. E.g, you may have dark black spots in a medium blue colored area. What I do in these cases is use the 1px brush with the pencil tool, color drop a medium blue color, and fill in the dark black spots. You can do this quickly by doing:
    • 'Select > By color' from the menus, then clicking on the dark black spot color.
    • Using the eyedropper tool to select a medium blue you'd like to replace the dark black with
    • Click on the paint bucket tool icon. Go to 'Windows > Dockable Dialogs > Tool options'. In the tool options dialog, which show represent options for the paint bucket as that's your selected tool, click the 'Fill whole selection' radio button under 'Affected Area'.
    • Click Fill on one of the selected areas of the image. All the black spots should be filled in with medium blue.

Step 4: Saving your work

  • In gimp, go to "File > Save As..." and save to your desktop. You can use the filename syslinux-splash.png.

Step 5: Testing syslinux splash (mystery!)

I don't know how to test the hicolor syslinux splash. I do know as of Fedora 14 it goes to the following path:

  • /usr/share/anaconda/boot/syslinux-splash.png

Other Information

I don't know how to test syslinux's splash. The only way I can think of is by using a custom Fedora spin. The only reason you'd want to customize your syslinux splash is for a live usb stick - syslinux's splash is the first thing you see on the screen when you boot off of a Fedora live USB stick. So if you use a live usb stick try replacing the files at the paths listed in the steps above with the ones you created here!