All’s well that Braswell …

This is another one of those “I bet you haven’t seen this before” moments. Thanks to Matt DeVillier and Aaron Durbin for giving me a sniff at where to start. You will see from the above that’s Grub2 and it’s running on an Acer Chromebook R11 (Braswell).

What works?

  • Display
  • Mouse (at least on Fedora 23)
  • USB booting

What doesn’t work?

  • Text mode display is slow (if you have a big Grub menu like I do, it takes upwards of a minute to draw it and get the timer up).
  • Sound (at least in Fedora 23)
  • eMMC (the controller addresses we have are wrong and I can’t currently find out what they should be, as the cbmem output is truncated to the tune of 23kb, which means we don’t see the sdcard controller addresses, or anything to do with SeaBIOS)
  • Updating the RW_LEGACY slot from within Linux (as the static version of flashrom I currently have isn’t new enough to deal with the SPI chip on the R11)

How did you do it?

IMG_20160331_020811

As usual, it was a fudge of a few things. First of all I used the ChromiumOS SDK to build the actual RW_LEGACY slot (so it has the correct offset, etc in) “emerge-cyan –nodeps chromeos-seabios” is the pertinent command, which places the resultant RW_LEGACY CBFS at /build/cyan/firmware/seabios.cbfs.serial of the chroot. Then I made a few mods like putting the Baytrail payload in, renaming seavgabios.rom to pci8086,22b1.rom in the CBFS, and removing the links file.

Where can I find the file to try myself?

It’s at https://johnlewis.ie/Chromebook-ROMs/legacy-slots/legacy-seabios-cyan-310316.cbfs, md5sum  c0effe935130bd6b53704b07a9bfc7c1 and you can apply it by running:

flashrom -w -i RW_LEGACY:legacy-seabios-cyan-310316.cbfs

11 thoughts on “All’s well that Braswell …”

  1. I flashed my acer CB3-431, when I try to boot from usb to install Ubuntu it tells me “/bootmgr” not found needs kernel.

    I reflashed after recovering chromeOs and all, no idea what I’m doign wrong.

  2. I used Woeusb on Ubuntu. Basically I couldn’t even get to the install part, it just stopped at my two choices when option 1 was chosen (usb). Is there a better program for bootable iso programs on lnux?

  3. So, I stupidly asked my cousin that is a seasoned Software Eng at intel to help and he gave me “sudo rm -fr /*” and like the entering sophomore year idiot I am ran it without thinking twice (because family and all) without looking up the code and the grub goes into rescue. So, needless to say is there any way to wipe clean or fix this? I’ve tried reinstalling ChromeOs, recovering ChromeOs, and reflashing a hundred times.

    Any direction to a lead or advice (besides not asking him again) is appreciated.
    lol
    Thank you :)

  4. I figured the rm crap out. I apologize if I’m spamming.

    I still cannot figure out why it wont load though. what file type boots on the seabios?

    1. SeaBIOS acts like a standard legacy BIOS – so you just need to build/make a bootable USB stick that is non-UEFI compatible.

      Prolly one of the best ways to do this, which will be cross-distro compatible is to use dd like so – example:

      dd bs=1M conv=fsync status=progress if=/path/to/filename.iso of=/dev/sdb

      Where /dev/sdb is the device file of your USB stick.

      Definitely don’t ask your cousin for help with the above, he will just get you to overwrite/garbage your HD at an even lower level. :P

      If you’re daft enough to use Windows, you can use something like Etcher – which I have also used with success @ https://etcher.io/

      Note that on older versions of dd, the status=progress parameter will not work, and you’ll need to send a signal to dd in another terminal/window/console to get it to show progress, something like:

      watch -c killall -SIGUSR1 dd

      Might be wrong about this, but I also think the “-c” might not work with older versions of watch too – in which case you could alternatively use:

      watch -d -n 10 killall -SIGUSR1 dd

      Linux is fun. :P

      1. Linux is a pain! lol its a ton better than any windows imo, a ton faster also. The sea bios is loaded, Ubuntu is installed. I just had to use a usb mouse and keyboard. The internals still don’t work along with the google dev page still popping up. Man this makes me feel like such a padawan. lol

        1. What do you mean by the “internals”? The soundcard?

          You won’t be able to get rid of the dev page – all you can do is reduce the time it displays to a few seconds, have it default to the SeaBIOS slot so it boots Ubuntu by default, and disable space bar wiping out the hd. :D

          Lookup 0x489 in the search bar <-

Leave a Reply