logo

tested with thinkpad and openbsd 7.8

update thinkpad boot screen

download a bios updater for your thinkpad. for example, x1 or t14.

populate variables with a path to your gif, bios id, and its sha256, for example, for t14:

# logo_gif=path/to/logo.gif
# bios=n3bur22w
# sha=a76f5bc06857ca44026b1630b727ba2f202fd5ab
#

install geteltorito:

# pkg_add geteltorito
quirks-7.147 signed on 2026-03-14T08:37:19Z
geteltorito-0.6: ok
#

download the iso:

# cd /tmp
# server=https://download.lenovo.com
# ftp -V "$server/pccbbs/mobiles/$bios.iso"
n3bur22w.iso 100% |*******| 83308 KB    00:02
#

verify its checksum:

# echo "SHA1 ($bios.iso) = $sha" >"$bios.sha"
# sha256 -C "$bios.sha" "$bios.iso"
(SHA1) n3bur22w.iso: OK
#

convert .iso image to .img:

# geteltorito -o "$bios.img" "$bios.iso"
Booting catalog starts at sector: 20
Manufacturer of CD: NERO BURNING ROM VER 12
Image architecture: x86
Boot media type is: harddisk
El Torito image starts at sector 27 and has 165888 sector(s) of 512 Bytes

Image has been written to file "n3bur22w.img".
#

warning! all data on sd2 will be erased.

plug in a usb drive as sd2, write the bios updater on to it:

# disk=sd2
# dd if="$bios.img" of="/dev/r${disk}c" bs=1m
81+0 records in
81+0 records out
84934656 bytes transferred in 10.084 secs (8422714 bytes/sec)
#

copy your gif to /FLASH/LOGO.GIF:

# mkdir -p "/mnt/${disk}i"
# mount "/dev/${disk}i" "/mnt/${disk}i"
# cp "$logo_gif" "/mnt/${disk}i/FLASH/LOGO.GIF"
# umount "/dev/${disk}i"
#

warning! next step may brick your thinkpad.

boot the usb drive and follow prompts.


see also

@hi@romanzolotarev.com