Family Encyclopedia >> Electronics

Step-by-Step Guide: Build Chromium OS for Netbooks or Virtual Machines

A few weeks ago, Google announced Chrome OS's release for this fall. As with many Google innovations, it's poised to transform computing—no traditional desktop apps, just a seamless browser-based experience. Some view it as radical, others as the future. Its success could shape web-centric OS evolution. Want to test it yourself? Follow this proven guide to build the Chromium OS image. (Note: Technically, we're building Chromium OS, but the terms are interchangeable here.)

What to Expect

Compiling a full OS like Chromium OS involves more steps and time than a single app. With prior Linux compilation experience (e.g., as in standard Ubuntu builds), it's straightforward. Expect 1-4 hours total, mostly waiting for downloads and compilation, depending on your internet and CPU speed.

Prerequisites

Use a 64-bit Linux host—32-bit isn't supported yet, though that may change. Google recommends Ubuntu, which this guide follows.

Install required packages via terminal:

sudo apt-get install bison fakeroot flex g++ g++-multilib gperf libapache2-mod-php5 libasound2-dev libbz2-dev libcairo2-dev libdbus-glib-1-dev libgconf2-dev libgl1-mesa-dev libglu1-mesa-dev libglib2.0-dev libgtk2.0-dev libjpeg62-dev libnspr4-dev libnss3-dev libpam0g-dev libsqlite3-dev libxslt1-dev libxss-dev mesa-common-dev msttcorefonts patch perl pkg-config python python2.6-dev rpm subversion libcupsys2-dev libgnome-keyring-dev git-core subversion

Download Google's depot_tools tar.gz from here and extract to your home directory (~). Add to PATH permanently:

# Add to ~/.bashrc
export PATH=$PATH:~/depot_tools

Get the Source Code

Create a chrome directory in home, then fetch sources (several hundred MB, so patience required):

mkdir ~/chrome
cd ~/chrome
gclient config https://src.chromium.org/git/chromiumos.git
gclient sync
Step-by-Step Guide: Build Chromium OS for Netbooks or Virtual Machines

Now for the core build:

./setup_board --board=x86-generic  # Set architecture
./build_packages --board=x86-generic  # Main build; takes several minutes

If successful, proceed to image creation.

Generate the Image

Build the bootable image:

./build_image --board=x86-generic

Relax with tea—it'll take time. On completion, note the image path and options for USB, VMware, or VirtualBox variants.

Step-by-Step Guide: Build Chromium OS for Netbooks or Virtual Machines

Exit chroot first:

exit

For VirtualBox (adjust paths as needed):

./image_to_virtualbox.sh --from=~/chrome/chromiumos.git/src/build/images/x86-generic/[YOUR_IMAGE] --to=~/chromeOS.vdi

Troubleshooting

VMware/VirtualBox: If "Could not open /usr/lib/shflags" error, edit image_to_vmware.sh (affects VirtualBox script too): change sudo "$TEMP_MNT"/postinst /dev/sda3 to sudo "$TEMP_MNT"/postinst /dev/sda3 --postcommit.

USB: image_to_usb dislikes tildes in --from; use full paths.

Will Chrome OS redefine OSes, or is it a misstep? Build it and decide.