Enabling legacy boot on Chromebook Pixel without ChromeOS

4,314 views
Skip to first unread message

Luis Rodriguez

unread,
Jan 8, 2014, 7:03:50 PM1/8/14
to chromium-...@chromium.org

Hey folks,

I've installed Debian on my Chromebook Pixel, ChromeOS is long gone. Unfortunately I failed to hit the nagging CTRL-L once or twice and now the legacy boot won't trigger anymore. Upon my first install this happened as well and I successfully got the device back into legacy boot but this required a full recovery install of ChromeOS onto the device. I put quite a bit of work into my last install though and have shiny kernel code there which I wish to continue to hack on, and, my new PGP keys... I don't want to dump what I have anymore. I considered ripping out the SSD out of the Pixel but figured I'd first dig into alternatives before assuming I cannot use a Pixel sanely as my own personal device for development.

Is there a way to enable legacy boot without having ChromeOS installed on the Chromebook Pixel? Using the ChromeOS rescue image will simply destroy everything I have. From what I gather coreboot takes off on the Pixel and if legacy boot is enabled SeaBIOS will simply be used as the next payload. This is done on ChromeOS when this command is issued:

sudo crossystem dev_boot_usb=1 dev_boot_legacy=1

crossystem comes from vboot_reference git tree [0], and is also available through the vboot-utils debian package. Reading vboot_reference documentation gave me hope perhaps I can customize my own bootable 'rescue' image based on Debian (or whatever) but it seems the documentation is out of date now, as it used to refer to utility/firmware_utility which is now replaced by vbutil_firmware. With time I can review the code behind vbutil_firmware but figured its best now to ask if this is the right tool for to be using and if someone can just dump some quick set of examples of how to use it, perhaps best for a iso image. If that's not the right tool I'd appreciate some pointers to the right tools.

Ideally I later wish to just create my own coreboot ROM to replace the one on the Pixel to always load SeaBIOS as the default payload, should that be possible? I never want to load ChromeOS onto this device so the I want to skip this whole recovery thing and the nagging CTRL-L requirement. Anyone done any of this work already?


  Luis

Olof Johansson

unread,
Jan 8, 2014, 7:25:56 PM1/8/14
to mcg...@gmail.com, Chromium OS discuss
2014/1/8 Luis Rodriguez <mcg...@gmail.com>


Hey folks,

I've installed Debian on my Chromebook Pixel, ChromeOS is long gone. Unfortunately I failed to hit the nagging CTRL-L once or twice and now the legacy boot won't trigger anymore. Upon my first install this happened as well and I successfully got the device back into legacy boot but this required a full recovery install of ChromeOS onto the device. I put quite a bit of work into my last install though and have shiny kernel code there which I wish to continue to hack on, and, my new PGP keys... I don't want to dump what I have anymore. I considered ripping out the SSD out of the Pixel but figured I'd first dig into alternatives before assuming I cannot use a Pixel sanely as my own personal device for development.

The SSD is soldered down. You can't remove it.
 
Is there a way to enable legacy boot without having ChromeOS installed on the Chromebook Pixel?

If you hit tab on the developer mode screen, does it show that dev_boot_usb is enabled? If so, you can boot your own signed image from an USB stick, and then re-enable legacy booting.

But chances are that it's also not enabled, and if so there is no way to get back to it without reinstalling Chrome OS.


-Olof

Olof Johansson

unread,
Jan 8, 2014, 7:28:04 PM1/8/14
to mcg...@gmail.com, Chromium OS discuss



2014/1/8 Olof Johansson <ol...@chromium.org>

Well, there is one alternative -- reflashing the BIOS (not from the machine itself), and replacing it with one that is permanently legacy-enabled. I've never done it, and I don't think we have it documented anywhere. Of course that will require taking the machine apart, removing write protect and attaching a flash tool.


-Olof

Luis R. Rodriguez

unread,
Jan 8, 2014, 7:40:19 PM1/8/14
to Olof Johansson, Chromium OS discuss
On Wed, Jan 8, 2014 at 4:25 PM, Olof Johansson <ol...@chromium.org> wrote:
> 2014/1/8 Luis Rodriguez <mcg...@gmail.com>
>>
>>
>> Hey folks,
>>
>> I've installed Debian on my Chromebook Pixel, ChromeOS is long gone.
>> Unfortunately I failed to hit the nagging CTRL-L once or twice and now the
>> legacy boot won't trigger anymore. Upon my first install this happened as
>> well and I successfully got the device back into legacy boot but this
>> required a full recovery install of ChromeOS onto the device. I put quite a
>> bit of work into my last install though and have shiny kernel code there
>> which I wish to continue to hack on, and, my new PGP keys... I don't want to
>> dump what I have anymore. I considered ripping out the SSD out of the Pixel
>> but figured I'd first dig into alternatives before assuming I cannot use a
>> Pixel sanely as my own personal device for development.
>
>
> The SSD is soldered down. You can't remove it.

Oh boy. Maybe a *really long* cable to dd it out? :)

>> Is there a way to enable legacy boot without having ChromeOS installed on
>> the Chromebook Pixel?
>
> If you hit tab on the developer mode screen, does it show that dev_boot_usb
> is enabled?

It has:

dev_boot_usb: 0
dev_boot_legacy: 0
dev_boot_signed_only: 0

> If so, you can boot your own signed image from an USB stick, and
> then re-enable legacy booting.
>
> But chances are that it's also not enabled, and if so there is no way to get
> back to it without reinstalling Chrome OS.

Darn, thanks... I suppose this red flag is now documented.

Memo: don't use the Chromebook Pixel for your own personal dev /
reliable box unless you reflash the BIOS with SeaBIOS as the default
payload first, without this if you don't hit CTRL-L all your stuff may
be gone for good.

Luis

Luis R. Rodriguez

unread,
Jan 8, 2014, 7:46:17 PM1/8/14
to Olof Johansson, Chromium OS discuss
On Wed, Jan 8, 2014 at 4:28 PM, Olof Johansson <ol...@chromium.org> wrote:
> 2014/1/8 Olof Johansson <ol...@chromium.org>
>> But chances are that it's also not enabled, and if so there is no way to
>> get back to it without reinstalling Chrome OS.
>
> Well, there is one alternative -- reflashing the BIOS (not from the machine
> itself),

What cable is needed?

> and replacing it with one that is permanently legacy-enabled.

Neat, anyone have this BIOS already available by chance? Is the boot
order with coreboot [0] the only thing that would need to be modified
here so that SeaBIOS is the first always?

> I've never done it, and I don't think we have it documented anywhere.

I'd be content on accepting I've lost all my data on my system for now
with the tradeoff that I can actually replace the BIOS with one that
always uses the legacy boot always.

> Of course that will require taking the machine apart, removing write protect and
> attaching a flash tool.

How much is that? :)

If we can at least get a BIOS out for folks to use so that this
doesn't happen again that'd be neat.

[0] http://www.coreboot.org/SeaBIOS#Configuring_boot_order

Luis

Vadim Bendebury

unread,
Jan 8, 2014, 8:14:28 PM1/8/14
to mcg...@gmail.com, Chromium OS discuss
so, what state is your pixel in now - does it boot anything at all?

--vb
> --
> --
> Chromium OS discuss mailing list: chromium-...@chromium.org
> View archives, change email options, or unsubscribe:
> http://groups.google.com/a/chromium.org/group/chromium-os-discuss?hl=en
>

Luis R. Rodriguez

unread,
Jan 8, 2014, 8:22:21 PM1/8/14
to Vadim Bendebury, Chromium OS discuss
On Wed, Jan 8, 2014 at 5:14 PM, Vadim Bendebury <vbe...@chromium.org> wrote:
> so, what state is your pixel in now - does it boot anything at all?

It boots into the first splash page that says that "OS Verification is
off", where I typically can hit CTRL-L. I can't hit CTRL-L now, or
CTRL-U or anything... except Tab to display some verbose details.
After a few seconds it then goes into the recovery splash screen and
tells me I can insert a recovery USB stick or SD card. Even though it
says this, when I hit Tab it still displays:

dev_boot_usb: 0
dev_boot_legacy: 0
dev_boot_signed_only: 0

Will the Pixel only accept Google singed images for a USB stick and SD
card here, or given that I am in developer mode will it accept my own
signed images?

Luis

Olof Johansson

unread,
Jan 9, 2014, 12:58:58 AM1/9/14
to mcgrof, Vadim Bendebury, Chromium OS discuss



2014/1/8 Luis R. Rodriguez <mcg...@gmail.com>
It will accept self-signed images but only from the SSD. Since dev_boot_usb is 0, you can't make it boot from USB -- the only thing it will boot from there is a recovery image.


-Olof

Greg S

unread,
Jan 26, 2014, 6:41:37 PM1/26/14
to chromium-...@chromium.org
So this just happened to me too. Yesterday I had a working Debian install and today I turn it on and dev_boot_usb and dev_boot_legacy are both set to 0. AFAIK I didn't miss topping C-l ever. My best guess is that the machine crashed and rebooted overnight? It seems equally possible there just a bug that randomly resets them erroneously.

This seems untenable. I wonder if it would be possible to make a self-signed image that had a minimal cros partition, maybe 100M just so I can reach the console and flip these flags if they randomly get reset.

But if I understand this right I'm totally stuck now unless I'm willing to remove flash chips and flash them in a hardware flash writer I don't have?

Tony Godshall

unread,
Mar 6, 2014, 2:06:13 AM3/6/14
to chromium-...@chromium.org
In September I also lost the ability to boot my device into my onboard Debian install. Having discussed it tith Chromebook support the only way to get warranty service was to run the recovery usb image and lose all my stuff. Finally reconciled myself to do it.  Turns out my keyboard is emitting an extra character for every keystroke and now I've got a jpeg to show them as proof its not my config thats at fault.

But I won't be trusting a chromebook for development ever again.  Not unless the big G listens to statements like "this is untenable" in their product forums.

Nick

unread,
Mar 6, 2014, 12:13:21 PM3/6/14
to Tony Godshall, chromium-...@chromium.org
Quoth Tony Godshall:
> But I won't be trusting a chromebook for development ever again. Not
> unless the big G listens to statements like "this is untenable" in their
> product forums.

See, and this is the reason I'm interested in flashing a new
coreboot onto my Pixel, so I can sleep a little easier. But it's
scary, because obviously bricking it would reduce my sleep for a
while while I have to figure out how to use the buspirate.

Someday, though, when I'm feeling brave, I'll take the plunge.

It's a nice reminder that regular backups are important, though ;)

Nick

Olof Johansson

unread,
Mar 6, 2014, 1:04:54 PM3/6/14
to chromium-...@njw.me.uk, Tony Godshall, Chromium OS discuss
2014-03-06 9:13 GMT-08:00 Nick <chromium-...@njw.me.uk>:
Quoth Tony Godshall:
> But I won't be trusting a chromebook for development ever again.  Not
> unless the big G listens to statements like "this is untenable" in their
> product forums.

See, and this is the reason I'm interested in flashing a new
coreboot onto my Pixel, so I can sleep a little easier. But it's
scary, because obviously bricking it would reduce my sleep for a
while while I have to figure out how to use the buspirate.

Someday, though, when I'm feeling brave, I'll take the plunge.

This G+ community might be of interest: https://plus.google.com/communities/112479827373921524726

Most people there seem to be tinkering with coreboot on C710/C720.
 
It's a nice reminder that regular backups are important, though ;)

Yes.
 
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages