| Index: scripts/newbitmaps/README
|
| diff --git a/scripts/newbitmaps/README b/scripts/newbitmaps/README
|
| index d07be4ddcf4c6b7bf7a869f2cdbeb175777de647..bc8cb8f93fbc831b1687fec868205b5cf344ccbd 100644
|
| --- a/scripts/newbitmaps/README
|
| +++ b/scripts/newbitmaps/README
|
| @@ -14,15 +14,15 @@ BIOS is compiled. The result is an opaque blob that cannot be viewed or
|
| edited with linux-based tools.
|
|
|
|
|
| -New-style bitmaps:
|
| +New-style bitmaps (version 1.0):
|
|
|
| Future BIOSes will continue to display the same basic screens, but using a
|
| -different format. Each screen will have separate bitmaps for the basic
|
| -graphic, the URL, and the informative text, and will be displayed by
|
| -rendering each component in order. This will allow us to modify and replace
|
| -any bitmap (most frequently the HWID), using standard command-line tools
|
| -such as imagemagick. Compositing each screen in this way also means that we
|
| -can easily provide localized BIOS screens or custom messages.
|
| +different format. Each screen has separate bitmaps for the basic graphic,
|
| +the URL, and the informative text, and will be displayed by rendering each
|
| +component in order. This will allow us to modify and replace any bitmap
|
| +(most frequently the HWID), using standard command-line tools such as
|
| +imagemagick. Compositing each screen in this way also means that we can
|
| +easily provide localized BIOS screens or custom messages.
|
|
|
|
|
| Note:
|
| @@ -31,7 +31,7 @@ Because the bitmap images and display code is part of the Read-Only BIOS,
|
| back-porting the new-style bitmaps to older devices is not possible.
|
|
|
|
|
| -Instructions:
|
| +Manual instructions:
|
|
|
| The bmpblk_utility reads a config file and produces a binary bmpblock. The
|
| config file lists the individual bitmaps and describes where to place each
|
| @@ -41,11 +41,11 @@ composited screens as described by the config file.
|
|
|
| * First, get the bitmap_viewer working. This is best used OUTSIDE of the
|
| chroot. Test it by changing to the scripts/newbitmaps/images/1280x800
|
| - directory and running "../../bitmap_viewer unknown.yaml". You may need to
|
| - install some additional packages. For example, on Ubuntu you'll probably
|
| - need to install the "python-yaml" and "python-wxgtk2.8" packages.
|
| + directory and running "../../bitmap_viewer hwid_unknown.yaml". You may
|
| + need to install some additional packages. For example, on Ubuntu you'll
|
| + probably need to install the "python-yaml" and "python-wxgtk2.8" packages.
|
|
|
| -* Now make changes to the unknown.yaml config file, and use the
|
| +* Now make changes to the hwid_unknown.yaml config file, and use the
|
| bitmap_viewer to see how the layout looks. Hit Ctrl-R in the small window
|
| to reload the config file without restarting.
|
|
|
| @@ -59,7 +59,7 @@ composited screens as described by the config file.
|
| * When you have the screens tweaked to your satisfaction, generate the
|
| binary bmpblock to embed into the BIOS.
|
|
|
| - bmpblk_utility -c unknown.yaml bmpblock.bin
|
| + bmpblk_utility -c hwid_unknown.yaml bmpblock.bin
|
|
|
| * Use the gbb_utility to modify the BIOS to contain our new set of bitmaps.
|
|
|
| @@ -74,7 +74,7 @@ composited screens as described by the config file.
|
|
|
| Get a copy of the current BIOS.
|
|
|
| - flashrom -r bios.bin
|
| + flashrom -p internal:bus=spi -r bios.bin
|
|
|
| Put our bmpblock in our copy of the BIOS
|
|
|
| @@ -82,7 +82,7 @@ composited screens as described by the config file.
|
|
|
| Reflash the BIOS with the new content
|
|
|
| - flashrom -w bios.bin
|
| + flashrom -p internal:bus=spi -w bios.bin
|
|
|
| * Reboot. You should see your new bitmaps appear whenever the BIOS screens
|
| are displayed. If you have more than one localization, you should be able
|
| @@ -96,3 +96,92 @@ composited screens as described by the config file.
|
| bmpblk_utility -y bmpblock.bin
|
|
|
| bmpblk_utility -x -d /SOME/SCRATCH/DIR bmpblock.bin
|
| +
|
| + Once you've unpacked it you can use the bitmap_viewer on the unpacked yaml
|
| + file to see what it looks like. There's not (yet) a single tool that just
|
| + displays the raw binary.
|
| +
|
| +
|
| +
|
| +Automated instructions:
|
| +
|
| +If you've got a LOT of HWIDs to generate, this is one way to do it. You can
|
| +do this entirely outside of the chroot if you've built vboot_reference
|
| +natively and put the resulting binaries into your $PATH.
|
| +
|
| +
|
| +* First, we generate the strings and bitmaps for each HWID:
|
| +
|
| + cd ./strings
|
| + mkdir ./hwids
|
| + cd ./hwids
|
| +
|
| + Put the list of new HWIDs strings into a file 'w':
|
| +
|
| + SAMS ALEX ALPHA-US
|
| + SAMS ALEX ALPHA-GB
|
| + SAMS ALEX ALPHA-FR
|
| + SAMS ALEX ALPHA-DE
|
| + SAMS ALEX ALPHA-ES
|
| +
|
| + You need to generate the HWID checksum numbers. I wrote this script, named
|
| + 'hwidsum', to append the digits to the string:
|
| +
|
| + #!/usr/bin/python
|
| + import sys,zlib;
|
| + me=' '.join(sys.argv[1:]);
|
| + print me, ('%04u'%(zlib.crc32(me)&0xffffffffL))[-4:]
|
| +
|
| +
|
| + Run another script like this to generate the checksums for the whole list:
|
| +
|
| + #!/bin/bash
|
| + while read STUFF; do
|
| + full=$(hwidsum "$STUFF")
|
| + str=$(echo "HWID ${full}" | sed 's/ /_/g').txt
|
| + echo "$full" > "$str"
|
| + done < w
|
| +
|
| +
|
| + And now convert the text files into bmps:
|
| +
|
| + ../text_to_bmp *.txt
|
| +
|
| +
|
| +* Move those HWID bmp files to the appropriate images directory:
|
| +
|
| + pushd ../../images/1280x800/
|
| + mkdir ./hwids
|
| + mv ~1/*.bmp ./hwids/
|
| +
|
| +
|
| +* Generate the yaml files for all these new HWIDs:
|
| +
|
| + ../make_yaml_from_hwids hwids/*.bmp
|
| +
|
| +
|
| +* Look at them with the bitmap viewer if you want.
|
| +
|
| + ../../bitmap_viewer hwid_sams_alex_alpha-us_4504.yaml
|
| +
|
| +
|
| +* Convert the yaml files into bitmap blobs:
|
| +
|
| + for i in *.yaml; do bmpblk_utility -c $i ${i%.yaml}.bin; done
|
| +
|
| +
|
| +* Test the bitmaps on a running system:
|
| +
|
| + As root on an Alex, for example, you'd say something like this:
|
| +
|
| + stop update-engine
|
| + cd /mnt/stateful_partition
|
| + flashrom -p internal:bus=spi -r bios.rom
|
| + scp USER@HOST:/SOME/PATH/TO/hwid_sams_alex_alpha-us_4504.bin .
|
| + gbb_utility -s \
|
| + -i 'SAMS ALEX ALPHA-US 4504' \
|
| + -b hwid_sams_alex_alpha-us_4504.bin
|
| + bios.rom newbios.rom
|
| + flashrom -p internal:bus=spi -w newbios.rom
|
| +
|
| + Then reboot and see what happens.
|
|
|