How to change the BIOS bootsplash screen

From ThinkWiki
Revision as of 11:31, 4 January 2006 by 81.247.76.69 (Talk) (Method 1: Using a Non-Diskette-File and cabextract)
Jump to: navigation, search

This page describes how to replace the standard IBM BIOS Bootsplash (The one with the ThinkPad- and Pentium M-Logo), without access to Microsoft Windows or a floppy drive.

Windows users who want to have a custom splash image when they start up should try this guide instead.

Getting the Files

You'll need the bios upgrade file from the IBM website.

Method 1: Using a Non-Diskette-File and cabextract

For ThinkPads R50, R50p, R51 (1829, 1830, 1831, 1836), R52, T40, T40p, T41, T41p, T42, T42p, T43, T43p this file is suitable:

There may be a more recent file on the IBM website.

Last version at 2006-01-04 :

You need the cabextract tool to extract files from the exe:

# apt-get install cabextract

Do this to get the ibm file and extract the disk image from it:

# cd /tmp
# wget ftp://ftp.software.ibm.com/pc/pccbbs/mobiles/1ruj30us.exe
# cabextract -F *.IMG 1ruj30us.exe
# mv 1RUJ30US.IMG floppy.bin

Method 2: Using a Diskette-File and dosemu

Another option is to use the "Diskette BIOS file".
For ThinkPads R50, R50p, R51 (1829, 1830, 1831, 1836), R52, T40, T40p, T41, T41p, T42, T42p, T43, T43p this file is suitable:

The file is an OS/2 executables and don't run with wine, so you need to install dosemu to run it and create the image.

# apt-get install dosemu dosemu-freedos

(for non-debian-users: Get dosemu and freedos somewhere and make it work somehow).

With dosemu, you can run this executable, but this program unfortunately needs a floppy drive to write to. So use the loopback device, to create a virtual floppy.

# dd if=/dev/zero of=/tmp/floppy.bin bs=1024 count=1440
# losetup /dev/loop0 /tmp/floppy.bin

Put this block device (/dev/loop0) into the dosemu configuration as the floppy disk device. Now you can run the extractor executable, which makes /tmp/floppy.bin the desired floppy image.

# dosemu 1ruj27ud.exe
# losetup -d /dev/loop0

Adding the custom image

Mount your floppy.bin as a loopback device.

# mkdir /tmp/mnt
# mount -o loop,umask=000 /tmp/floppy.bin /tmp/mnt

Create a 16 color 640x480 BMP (4 Bit/pixel) (for example with Gimp) and save it to /tmp/mnt/logo.bmp. You could use this tux image (logo.bmp, logo.mod) for example.

When creating your image, keep in mind that on the T43p (and others??), regardless of your custom bootsplash screen there will be a superimposed black "Centrino" logo (~100x100 pixels) on the upper right of your display, so you might want to keep that area clear. You might also want to reserve the bottom 150 pixels for the "boot options" / "Entering BIOS setup" message(s) too, which will also be displayed.

Now prepare the image with prepare.exe using wine: (This does not work with dosemu!)

# wine prepare.exe logo.scr

The image must compress to <10k. If you receive an error, you can try reducing the number of colors in your image palette (step down to an 12 or 8 color palette for a very significant reduction in image size.) When successful, there should be a new logo.mod and your logo.bmp. If so, you are set, don't forget to unmount your loopback device:

# umount /tmp/mnt

Fake a floppy

Now you need to put the image on a floppy and boot from it. Since recent Thinkpads don't have a floppy drive, we can use a CD-R (or a CD-RW, actually, for the cheap ones, like me) and burn it with the following command:

# mkisofs -b floppy.bin floppy.bin | cdrecord dev=<device> -

(<device> being your cd writer device)

The exciting part

After this worked, reboot your Thinkpad from the cdrom by pressing F12 while booting and wait for the IBM tool to start. Be sure to have your Thinkpad on AC power and say Yes to the questions the BIOS Upgrade Tool asks. It will then flash the BIOS, which will take about a minute.

Suddenly the laptop turns itself off with two beeps. When booting, you'll have your bootsplash picture.

Unfortunately, you won't see it really long, but it's better than the standard one, so it was worth the action.

Have fun!