This should take no more than 1-2 hours from start to finish on an modern system with decent Internet connection spped. I ran from a Ubuntu 9.10 (Karmic) desktop that serves as my daily office machine: Intel Dual Core 2.0GHz and 2GB RAM.

Obtain a command line as a user on the sudoer's list.

Download the tarball and unpack it into a local directory called chromiumos.

Choose a place to unpack it (this is just my choice

Move the tarball and unpack it

Create a symlink to make paths easier:

Make your local repository

Create your build environment

(For me to get this to work, I had to not dowload the bianary before entering the chroot, but once in it and then move it where it belongs, so the commands are:)


Enter the chroot build environment

Get the bianary for the Chrome browser

And move it to where the compile will look for it later (with the double extension...look at the scripts and compiler output too see why...)

Now we can build the packages

And the image itself


The default output location for images is ~/chromiumos/src/build/images. The output of build_image.sh will create a unique monotonically increasingly numbered subdir under the output location which contains the master boot record (mbr.image) and the root filesystem image (rootfs.image). Check the output of build_image.sh to find the corresponding directory where your new image has been placed.


===========!!!you now have an installable OS image!!!===========



To check the contents of your image, mount it locally. In this example, SUBDIR is the subdirectory created in the previous step.

You're now in the image, and can do things like see how much space is used in the image or what packages were installed:

When done, exit the chroot shell and unmount the image:

Copy the image to a USB key

Use image_to_usb.sh to copy the image to a USB key. Do this outside the chroot environment. (If your USB key seems blank, you're probably inside the chroot environment.) Make sure you have a 4GB USB key.

SUBDIR is the subdirectory created by build_image.sh, and USBKEYDEV is the device for the USB key.

To determine the value for USBKEYDEV, use:

or

What you want is the device for the entire key (for example, /dev/sdb, not /dev/sdb1).

By default, image_to_usb.sh copies from the most recent image you've built to /dev/sdb, so you may be able to omit the --from and/or --to options.

Copy image to hard drive (see development hardware)

WARNING: this nukes your hard drive

Boot from the USB image you just burned. (If this is the first time you've booted from USB, you may need to go into the BIOS settings and change the boot order so that it'll boot from the USB drive)

After logging in, use Ctrl+Alt+T to open a terminal window and type:

Note: this will ask you for the password you set in the recommended step earlier. Unplug the USB drive, reboot and you're there.





Delete an old chroot build environment

To delete an old chroot build environment, use:

./make_chroot.sh --delete

Do NOT use rm -rf, since if there are stale bind mounts, you may end up deleting your source tree.








Just a follow up - if you run the image_to_usb script from inside the chroot jail it creates a single usb.img file, as opposed to the mbr.image and rootfs.image being written separately when the script is ran outside the chroot jail as I had mentioned.

You can then do a simple:

The usb.img is ~2.8GB