the Chromium logo

The Chromium Projects

HP Chromebox

Introduction

This page contains information about the HP Chromebox that is interesting and/or useful to software developers. For general information about getting started with developing on ChromiumOS (the open-source version of the software on the Chrome Notebook), see the ChromiumOS Developer Guide.

Specifications

Developer Mode

Caution: Modifications you make to the system are not supported by Google, may cause hardware, software or security issues and may void warranty.

Introduction

Enabling Developer mode is the first step to tinkering with your Chromebox. With Developer mode enabled you can do things like poke around on a command shell (as root if you want), install ChromiumOS, or try other OS's. Note that Developer mode turns off some security features like verified boot and disabling the shell access. If you want to browse in a safer, more secure way, leave Developer mode turned OFF. Note: Switching between Developer and Normal (non-developer) modes will remove user accounts and their associated information from your Chromebox.

Entering

To invoke Recovery mode, you insert a paper clip and press the RECOVERY BUTTON (just above the kensington lock) and press the Power button. Release the RECOVERY BUTTON after a second.

To enter Dev-mode you first invoke Recovery, and at the Recovery screen press Ctrl-D (there's no prompt - you have to know to do it). It will ask you to confirm by pressing the RECOVERY BUTTON again.

Dev-mode works the same as always: It will show the scary boot screen and you need to press Ctrl-D or wait 30 seconds to continue booting.

USB Boot

By default, USB booting is disabled. Once you are in Dev-mode and have a root shell, you can run:

sudo crossystem dev_boot_usb=1

and reboot once to boot from USB drives with Ctrl-U.

Legacy Boot

This device includes the SeaBIOS firmware which supports booting images directly like a legacy BIOS would. Note: the BIOS does not provide a fancy GUI for you, nor is it easy to use for beginners. You will need to manually boot/install your alternative system.

Like USB boot, support for this is disabled by default. You need to get into Dev-mode first and then run:

sudo crossystem dev_boot_legacy=1

and reboot once to boot legacy images with Ctrl-L.

Leaving

To leave Dev-mode and go back to normal mode, just follow the instructions at the scary boot screen. It will prompt you to confirm.

If you want to leave Dev-mode programmatically, you can run crossystem disable_dev_request=1; reboot from a root shell. There's no way to enter Dev-mode programmatically, and just seeing the Recovery screen isn't enough - you have to use the three-finger salute which hard-resets the machine first. That's to prevent a remote attacker from tricking your machine into dev-mode without your knowledge.

Troubleshooting

Legacy Boot Doesn't Work

Sometimes it's possible to break the SeaBIOS install in the flash (sometimes doing innocuous things like tweaking the GBB flags). If you do get into such a situation:

You can safely reset the copy of SeaBIOS in your flash by running (as root):

# chromeos-firmwareupdate --sb_extract /tmp
# flashrom -w /tmp/bios.bin -i RW_LEGACY

Running ChromiumOS

Before you start fiddling with your own builds it is strongly recommend to create a recovery USB stick or SD card. As long as you don't disable hardware write protect on the system & EC firmware, you can get your machine back into working order by entering Recovery Mode and plugging in your recovery image. You can create a recovery image from ChromeOS by browsing to chrome://imageburner or follow instructions for other OS on the ChromeOS help center site.

You can build and run ChromiumOS on your HP Chromebox (versions R32 and later). Follow the quick start guide to setup a build environment. The board name for the HP Chromebox is "zako". Build an image and write it to a USB stick or SD card.

To boot your image you will first need to enable booting developer signed images from USB (or SD card). Switch your machine to Developer mode and get to a shell by either via VT2 (Ctrl+Alt+F2) and logging in as root or by logging in as a user (or guest mode), starting a "crosh" shell with Ctrl+Alt+t, and typing "shell". Now run "sudo crossystem dev_boot_usb=1" and reboot "sudo reboot".

Plug your USB stick or SD card in and on the scary "OS Verification is OFF" screen hit Ctrl+u to boot from external media. If all goes well you should see a "ChromiumOS" logo screen. If you want to install your build to the SSD, open a shell and type "sudo /usr/sbin/chromeos-install". Note: This will replace EVERYTHING on your SSD. Use a recovery image if you want to get back to a stock ChromeOS build.

Have fun!

Firmware

This device uses coreboot and Das U-Boot to boot the system. You can find the source in the ChromiumOS coreboot git tree and the ChromiumOS u-boot git tree in thefirmware-zako-5219.B branches.