IntroductionThis page contains information about the Cr-48 Chrome Notebook that is interesting and/or useful to software developers. For general information about getting started with developing on Chromium OS (the open-source version of the software on the Chrome Notebook), see the Chromium OS Developer Guide.
Entering Developer ModeYou might want to enter developer mode if you're following the instructions in the Chromium OS Developer Guide, or if you just want to get access to a shell on your device to poke around. To get your device into Developer Mode, you'll need to flip the developer switch to the "Developer Mode" position.
The first time a Chrome Notebook boots in Developer Mode after leaving Normal Mode it will:
Here are some pictures that might help: Image 2: Developer Switch in "Developer Mode" position.
Getting the recovery kernelIf you are trying to install your own disk image onto your Cr-48 Chrome Notebook (maybe you're following the Chromium OS Developer Instructions), you need the recovery kernel. You can find it at: https://dl.google.com/dl/edgedl/chromeos/recovery/mario_recovery_kernel.zip
Leaving Developer ModeReturning to normal mode is as simple as entering developer mode: shut down, remove the battery, flip the switch, reboot. There are a couple of things to note, however.First, assuming you haven't modified anything, the first time you boot in normal mode after leaving developer mode, the stateful partition will be erased. This is a much faster erase process than when entering developer mode, usually only 30 or 40 seconds, and only happens with the first boot. Second, verified boot will be enabled, meaning that only Google-signed images will be bootable. If you haven't modified the original kernel or rootfs partitions in any way, you should have no problems. If you've made changes to the kernel partitions, the Cr-48 will refuse to boot that kernel and will display a recovery screen. You'll have to create a recovery USB drive to restore your Cr-48 to the factory condition. If you've made changes to the rootfs partition but not the kernel, the Cr-48 may appear to boot normally, but may later suddenly reboot and/or display the recovery screen. This happens because the kernel verifies the rootfs as each block is read from the SSD, so it may not encounter a modified block until sometime later. When it does, it will reboot immediately. How to use the Recovery Mode buttonRecovery mode is a special boot operation in which the BIOS will:
You can also force your Cr-48 into recovery mode (even in normal mode) by using the recovery mode button. On the bottom of the Cr-48, directly below the ESC key, there is a tiny pinhole: If you stick a paperclip into this hole, you'll feel it press a button. To force recovery mode, turn the Cr-48 off, press this button, and while keeping it pressed, turn the Cr-48 on again. This sometimes requires three hands or a bit of contortion, but you'll know it worked when you see the recovery screen instead of booting normally. There is little use for this button other than booting a recovery USB drive. In developer mode you can run your own scripts from the recovery USB drive, but in developer mode you can trigger recovery mode by just pressing SPACE at boot. Still, there it is. How to boot your own (non-Chromium OS) image from USBSometimes,
you just want to have a shell or maybe you want to install another
operating system. If you're in Developer Mode, then you can totally do
that. This tip could actually be useful
to someone who wasn't a Chromium OS developer. However, at the moment
the only easy way to get the tools is to follow many of the steps in
the Chromium OS Developer Guide.
If you don't care about developing for Chromium OS and just want to
get to booting your own stuff, you should read the developer guide with
these thoughts in mind:
The rest of the
instructions will assume that you've followed the instructions enough to
make a chroot and that you're currently in the chroot. Getting the recovery kernel for your Chrome OS NotebookYou'll
need to get a "recovery kernel" for your Chrome OS Notebook in order to
follow these instructions. The instructions for that are also in the
Developer Guide, though in a different context. You should follow the
instructions in the section "Get the Recovery Kernel for your Chrome OS
Notebook" under the section Getting your image running on a Chrome OS Notebook. Creating a USB disk that will boot a simple scriptUsing the make_developer_script_runner.sh tool,
you can create a USB disk that will run shell script. In this example,
we'll show how to create a USB disk with a script that will leave you
running the shell.Create the scriptecho -e '#!/bin/sh\nexec /bin/sh\n' > run_a_shell.shBuild a disk imageNow, use make_developer_script_runner.sh. The script will create a file called dev_runner_image.bin that can be placed on a USB disk. Note that these instructions assume that you've set the RECOVERY_KERNEL variable properly, as would happen if you followed the instructions in the Developer Guide../make_developer_script_runner.sh --kernel_image=${RECOVERY_KERNEL} --developer_script=run_a_shell.shFind your USB diskYou should plug a USB disk in to your computer now and wait a few seconds for it to be detected. You can then run this quick command to use some Chromium OS tools to detect the disk and find out where it is:bash -c 'source chromeos-common.sh; echo for disk in $(list_usb_disks); do echo /dev/$disk - $(get_disk_info $disk manufacturer) - $(get_disk_info $disk product); done'/dev/sdc:ALSO: If you mistype this step (don't put the right /dev/sdX in the command), it can blow away some other disk on your computer. BE CAREFUL! Really, I'm serious. Be very careful. If you shoot yourself in the foot with these instructions, you only get to blame yourself. OK, now that you've read all of the disclaimers, the command you'll need to enter is this, replacing ${MY_USB_KEY_LOCATION} with the /dev/sdX value that is for your USB disk (see the "Find your USB disk" instruction above).TODO:
You may need to unmount your USB disk before running this instruction
if Ubuntu mounted it for you. Put a set of instructions that tell how
to do that. sudo dd if=dev_runner_image.bin of=${MY_USB_KEY_LOCATION} bs=16M conv=fsyncBoot your Chrome OS Notebook with your USB imageNow,
shut off your Chrome OS Notebook and turn it back on. Since you're in
Developer Mode (right?), you should see the warning. Hit the space bar
to enter recovery mode. Once prompted, insert your USB disk. Assuming
that you haven't reimaged the built-in SSD with a developer-signed
image, you'll need to wait 5 minutes each time you boot up with this
disk image. This is a security precaution, to prevent someone from quickly rebooting your device from their USB key while you're getting more coffee (see the Developer Mode design document). Create a USB disk that will boot another operating systemTODO:
This should be possible for someone skilled in the art of Linux. The
above instructions tell you how to run any arbitrary Linux program, and
(with root access) you should be able to do pretty much anything you
want. It would be nice to get some good instructions here, though. How to install a different OS on your SSDThere's an example of configuring a Cr-48 to dual-boot Chrome OS and Ubuntu here. |


