Build Your Own Baytrail BOOT_STUB

You’ll need git, gcc, ncurses-devel, iasl and possibly other tools installed.

Presumably from your home directory, run:

git clone https://github.com/KevinOConnor/seabios.git -b baytrail-testing baytrail-seabios

to download Kevin O’Connor’s Baytrail specific SeaBIOS sources. Change into the baytrail-seabios directory:

cd baytrail-seabios

Create a valid .config, and build:

echo -e 'CONFIG_COREBOOT=y\n# CONFIG_HARDWARE_IRQ is not set' > .config
make olddefconfig
make

and download the shellball for your device:

export MODEL=your_model_name
mkdir ${MODEL}
cd ${MODEL}
lftp https://johnlewis.ie/Chromebook-ROMs/shellballs/${MODEL}
mirror

Now we are going to prepare a new CBFS and download a statically linked cbfstool:

cp bios.bin bios.bin.new
wget https://johnlewis.ie/Chromebook-ROMs/utils/cbfstool
chmod +x cbfstool
./cbfstool bios.bin.new print

to confirm everything has gone okay so far. Now we have to remove the existing payloads, add a new one, plus config files, and write out the CBFS:

./cbfstool bios.bin.new remove -n fallback/vboot
./cbfstool bios.bin.new remove -n fallback/payload
./cbfstool bios.bin.new add-payload -n fallback/payload -f ../out/bios.bin.elf -c lzma
./cbfstool bios.bin.new add -n etc/boot-menu-message -f ../chromeos/etc/boot-menu-message -t raw
./cbfstool bios.bin.new add -n etc/boot-menu-key -f ../chromeos/etc/boot-menu-key -t raw
./cbfstool bios.bin.new add -n bootorder -f ../chromeos/bootorder -t raw
./cbfstool bios.bin.new add-int -i 0xd091f000 -n etc/sdcard0
./cbfstool bios.bin.new add-int -i 0xd091c000 -n etc/sdcard1
dd bs=1M skip=7 if=bios.bin.new of=bios.cbfs.new

Time to get flashy:

wget https://johnlewis.ie/Chromebook-ROMs/utils/flashrom
chmod +x flashrom
sudo ./flashrom -w -i BOOT_STUB:bios.cbfs.new

Assuming you haven’t received any errors thus far, it may be safe to reboot. Didn’t work? Something went wrong? Get yourself a RPi/BBB, suitable jumper wires, and Pomona 5250 SOIC clip!

4 thoughts on “Build Your Own Baytrail BOOT_STUB”

  1. Just stumbled upon your site while looking for ways to make my Acer Chromebook 11 boot Linux exclusively. I saw an earlier comment from 2014 that said Baytrail was not yet supported and not try anything on this model of Chromebook. The instructions in this new post could work for this model of Chromebook, correct?

    If so, where could I find more information and instructions about the process? I’m very new. Thanks!

  2. I have read your posts countless times and still I feel confused as what I need to do to enable booting from usb. For baytrail, in specific the acer chromebook cb3-111, do I follow the instructions in this post or the script at the bottom here: https://johnlewis.ie/custom-chromebook-firmware/rom-download/

    And before I even get to flash a Rom, do I have to take apart the twelve screws on bottom and unscrew the hardware screw?
    and when you say you can only boot by press esc or enter, I assume you mean after pressing ctrl + l?

    I really would appreciate your clarification before I do something that could potentially disable the machine.

    Another semi unrelated question, what commits to seabios are you looking at as at seabios.org I see several commits since December 2014, are you waiting for Google to take the code and doing something with it?
    I appreciate your work, some of the stuff you say just goes over my head.

    1. This post is for people who want to “roll their own” or at least know how it’s done. Most will want to use the script since there’s a lot less chance of a typo and therefore bricking.

      The ROM Download page is quite clear that you need to remove the hardware write-protect screw unless just flashing RW_LEGACY. No, ctrl + L ceases to be after flashing the custom BOOT_STUB.

      ChromiumOS have their own version/fork of SeaBIOS which contains patches for SD/eMMC (even though I can’t get the eMMC to work with them). There is a pending effort to upstream those, but I haven’t got a Baytrail Chromebook to test with, any more, and need more donations.

      Clearly.

Leave a Reply