What's new in Pixel's BIOS:
Previous Chrome devices have had limited support for booting alternate OSes. While it has always been possible to install your own customized version of Chromium OS, the unconventional nature of the Chrome OS BIOS (fast, simple, secure) is radically different from the legacy BIOS environment that off-the-shelf PC OSes expect or require. Still, as with the rest of Chrome OS, we try to continually improve to meet our users needs. Since part of the Chrome OS BIOS is read-only, we generally only get to make major improvements in the BIOS by releasing a new Chrome device.
The Chromebook Pixel is no different in that regard. As usual there are a number of changes that are (hopefully) invisible to the user, but one change that is not invisible is the support for a user-provided custom bootloader. Chrome OS firmware normally consists of three distinct BIOS images. First, there is the read-only BIOS, which is (duh) read-only. It can’t be modified without disassembly. Then there are two read-write BIOS images, called RW A and RW B. The read-only BIOS is what runs when the machine is first powered on. It checks the two read-write BIOSes (A, then B), looking for one that is correctly signed by Google. If it finds one, it jumps to that image, which then looks for a valid kernel, and so forth. If there is no valid RW firmware (or some other fault has occurred), the execution stays in the RO BIOS and enters Recovery mode.
With the Pixel, we’d added an extra (unverified) BIOS slot. It only works in developer mode, and you have to explicitly enable it, but we’ve put a copy of Seabios in the Pixel firmware. Here’s how I booted Linux Mint on it:
1. Enter developer mode (hold Esc+Refresh, poke the Power button). When you see the recovery screen, press Ctrl-D, then Enter.
Remember that in dev-mode, you'll see the scary boot screen at every boot. Just wait 30 seconds or press Ctrl-D to boot from the SSD. The first boot in dev-mode will take 5 minutes (so someone doesn’t flip it while you’re up getting your coffee).
2. Log in, download the latest 64-bit USB image from http://linuxmint.com
3. Get a root shell: Press Ctrl+Alt+T, then run "shell", then "sudo bash".
4. Use 'dd' to copy the image onto a USB stick or SD card. For example
dd if=linuxmint-14.1-cinnamon-dvd-64bit.iso of=/dev/sdb bs=1M
The standard cautions about picking the correct /dev/??? apply!
crossystem dev_boot_usb=1 dev_boot_legacy=1
6. Power off, then on again.
7. This time, when you see the scary boot screen, press Ctrl-L instead of Ctrl-D
8. When you see the SeaBIOS screen, press ESC
9. Pick the drive to boot from
10. When you see the "Automatic boot in 10 seconds...", press ESC
11. Highlight "Start Linux Mint", press TAB
12. Replace "--" with "mem=4G"
13. Press ENTER
The keyboard and WiFi works (for open access ports at least), but the trackpad doesn't. You'll have to connect a USB mouse.
Installing it on the SSD is left as an exercise for the reader. :-)
No, there's no way to set the legacy boot as the default option.
If you want to tweak your own SeaBIOS, you'll have to ask +Stefan Reinauer
. He's the one who made it work.