Another Month, Another ROM

“Yay”, I hear you say – someone has actually found a bona fide, reproducible problem with the last release. Apparently, the keyboard polling option in SeaBIOS causes double keyboard output in Grub, with devices which are capable of keyboard output via IRQ. So, I’ve made another release with the keyboard polling option of SeaBIOS removed. I recommend everybody using the last release (18/11/14) update if they ever envisage needing to use the Grub shell. Happy holidays!

9 thoughts on “Another Month, Another ROM”

  1. John,

    You have no idea how much you’ve just helped me. I’m an aspiring Computer Programmer still in my first year of college and I had very little money to actually buy a laptop, so I picked up a cheap little HP Chromebook 14 thinking it’d be enough to get me by. I’ve never been more wrong in my life.

    Using web-based IDEs had become so costly and troublesome that I was almost paying for another laptop with expenses alone! I was getting really desperate for a way to get a full-blown desktop enviroment on my Chromebook without having to use some “dev mode” to unlock my Chromebook just so it could relock itself and wipe the partition completely. I decided to dedicate a couple of hours to scowering the web for some information on this Chromebook thinking I could modify a couple things to remove the default ROM it has installed. Finding your blog was a god send. After about an hour I had Debian up and running on this Chromebook.

    The only issue I had was that 16Gb seemed abismal for what I was going to be doing, so I went out and bought a 128GB Sandisk SD card and I’m currently using that as my root partition. Needless to say, I’ve now got a 16GB bootloader/ /home partition integraded into my Chromebook :D.

    Anyway, sorry for the life story, just wanted to let you know, you’ve saved me a lot of time, money, and headache. Btw you can bet you’ll be seeing some donations from me! Thanks again!!

  2. Hey John,

    I am currently running your seabios ROM v181214 on the Chromebook Link (Pixel) and about 4/5 times I am unable to use the keyboard during boot up. Neither the bios nor grub are able to detect it, and once I’m a while neither is my distro during init (I have Fedora 21 with FDE and need to put in my password).

    Any idea why this would be?

    Thanks for the awesome work man!

    1. The EC sometimes gets itself into a knot. There’s not much you can do, except try an earlier ROM to see if that helps. Choose one that was mentioned in a release notice though, unless you want to risk a brick.

  3. Hi John

    I just downloaded the latest wolf ROM (aka Dell Chromebook 11) purely to extract the config.

    In there it says the ROM was built with commit cef55018e4e936af9a758675353e332df4d9d1a6 – however that commit doesn’t appear to be in the coreboot repo.

    In fact it appears to come instead from https://chromium.googlesource.com/chromiumos/third_party/coreboot/+/cef55018e4e936af9a758675353e332df4d9d1a6/src/cpu/intel/haswell/bootblock.c

    Do you have a private mirror with changes, or are they published anywhere?

  4. Hi John

    Thanks for reply – some more questions if I may:

    1) In a previous post about building the firmware you talk about cloning the vanilla coreboot repo: http://johnlewis.ie/compiling-your-own-coreboot-firmware-for-the-samsung-series-5-550-chromebook/ – that’s why I was surprised to find you were using Google’s fork. If you’ve not made changes to Google’s fork (other than the minor one you mentioned), I don’t see how changes such as removing the developer mode warning screen is achieved?

    2) There’s substantial differences in the config from the latest wolf ROM I downloaded from you, to what’s on my Dell Chromebook 11.

    Looking through your blog posts you mention a few of these, but I wondered if you source control your config settings somewhere publicly? Commit messages for each change would be very illuminating.

    3) How does jeltka get into the ROM if you've not made changes to the Google fork of Coreboot? Do you just dd it in to the resulting image? Is the jeltka source posted anywhere?

    4) The resulting cbfs layout is quite different – why the significant offset change?

    Thanks for all your posts on this – very helpful by the way.

    1. Hi Marcos,

      I’ve removed the .config and cbfstool printouts from your comment so it’s easier for me to reply.

      1) Yes, I started off using upstream and then when Haswell arrived last year, I switched to ChromiumOS coreboot on Ron Minnich’s advice. Therefore, every ROM up till the Haswell devices uses upstream, every ROM after uses ChromiumOS coreboot. It’s not a “fork” in the truest sense of the word because many of the same devs work on both, and the bulk of the changes are subsequently upstreamed. The stock ROM’s use Depthcharge as a payload, this is where the scary dev screen and other bits come in. By changing the payload to SeaBIOS all that nonsense is gotten rid of.

      2) The problem with me doing that is I often change settings on a whim, and documenting all of it is going to be a PITA. Seems like a lot of work for a few .configs, and no, I don’t. I will think about it though.

      3) Changing the size of CBFS to 4MB is a .config option, and that allows Jeltka to fit in, as well as the SeaBIOS stuff. Jelkta is added as a payload, using cbfstool, after the ROM is created. Jeltka is simply based on a massively stripped back Buildroot and kernel, again no source changed, but I don’t think the .config’s are included either.

      4) The offset change is because of the CBFS size change – coreboot counts back from the end of the ROM to find the start of CBFS, coreboot is at the start, CBFS and included SeaBIOS, etc. subsequent.

Leave a Reply