An open ChromeOS distro with a Go-based userland, X11, and upspin support. (WIP)
Clone or download
rminnich dep update
Also ensure we get dep 0.5.0

Signed-off-by: Ronald G. Minnich <>
Latest commit bbdc950 Sep 18, 2018
Failed to load latest commit information.
cmds Final fix for u-root changes Aug 16, 2018
etc sound: enable sound Jul 26, 2018
home/user/.config/google-chrome chrome: config files used to create usr/user.cpio Jul 26, 2018
lib newscript: use the tinycore lib/ and usr/ directories Sep 9, 2017
logo add logo directory with various logo styles/filetypes Aug 3, 2018
scripts Add Bootable USB toolchain Aug 17, 2017
usb Final fix for u-root changes Aug 16, 2018
usr uinit: add code to populate /home/user and .cpio Jul 26, 2018
vendor dep update Sep 19, 2018
.gitignore Move away from busybox mode to dynamic mode (#50) Nov 22, 2017
.travis.yml dep update Sep 19, 2018
CONFIG sound: enable sound Jul 26, 2018
Gopkg.lock dep update Sep 19, 2018
Gopkg.toml gpt: use the u-root gpt package, not the google UUID package Jul 11, 2018
LICENSE Initial commit Aug 14, 2017
QRUN QEMU: allow us to run from QEMU for testing Jul 28, 2018 pflag: update docs to reflect syntax changes Jul 28, 2018 Add doc covering sound driver progress Jul 25, 2018 all: move to pflag Jul 28, 2018


Build Status Go Report Card GoDoc License: GPL v2


Things we need for NiChrome.

To test out USB stick creation, you will need a ChromeOS-formatted boot stick with the right partitions. We don't know how to create those yet. One way to get such an image is with the chromeos recovery tool, found here:

You can pick any chromebook to get an image from, since the partition layout is the same on all of them, and the usb tool replaces the A image anyway.

To get an image, for both KERN-[AB] and ROOT-[AB],

Build the usb tool: (cd usb && go build .)

Plug in the chromeos-formatted USB stick.

./usb/usb --fetch=true --dev=/dev/your-usb-stick

e.g. ./usb/usb --fetch=true --dev=/dev/sdb

usb will default to /dev/null, which makes it easy to test it. You can also run to test.

You can skip the -fetch=true on second or later runs of usb.

This defaults to writing the A image (partitions 2 and 3). To use the B image, invoke usb with --useB=true