- Insecure. Who knows who’s built the image and if they aren’t sending your Google login data to themselves when you login
- You’re stuck with that particular release. As I said, it’s in development, so new features and bug fixes get introduced on a daily basis
So I’ll show you how to (relatively) quickly build your very own Google Chrome OS. This instruction tells how to build Chromium OS with pre-built Chromium web browser. You will also need Sun VirtualBox.
In a nutshell:
- Install Ubuntu as a VirtualBox VM
- Download ChromeOS sources
- Build ChromeOS
- Create VMWare image
- Boot it in VirtualBox
- Enjoy
For the latest build release numbers check Chromium OS build page.
Preparation
Install Ubuntu
Do the standard installation, as you would normally do. I selected all defaults, and allocated 20GB single partition for the installation and assigned 512MB RAM.
Get OS source
Download/unpack http://build.chromium.org/buildbot/archives/chromiumos-0.4.22.8.tar.gz to /home/user/chromiumos/
NOTE! It seems that Google have removed OS tarballs and you now have to use these instructions to get the source code.
Install some additional packages required to build ChromiumOS
$ sudo apt-get install subversion pkg-config python perl g++ g++-multilib \ bison flex gperf libnss3-dev libgtk2.0-dev libnspr4-0d libasound2-dev \ libnspr4-dev msttcorefonts libgconf2-dev libcairo2-dev libdbus-1-dev $ sudo apt-get install wdiff lighttpd php5-cgi sun-java6-fonts
OS build
Building local repository
cd ~/chromiumos/src/scripts ./make_local_repo.sh
Watch the output carefully and make sure it hasn’t failed with some errors!
Google says if the script fails, remove repo directory and call the script again. It hasn’t failed for me, so if you’ve done everything as per above you should be fine. I don’t really understand why calling the same script might make any difference…
This step is quite lengthy, so you might want to make yourself some coffee or tea. Or just take a short walk if the weather is good.
Create build environment
Another totally automated step. Just run
./make_chroot.sh
Which creates chroot’ed build environment for you. This uses all packages you downloaded in the previous step. There are adoption how to pull required packages from the remote repositories (Google and official Ubuntu), but I advise to take an easy way and download all packages first and build locally.
Get Chromium binary
make the following directory:
mkdir -p ~/chromiumos/src/build/x86/local_assets
And download chromium package from Google:
wget -O ~/chromiumos/src/build/x86/local_assets/chrome-chromeos.zip \ http://build.chromium.org/buildbot/archives/chromium-chromiumos-r32516.zip
Building OS
First you need to enter you chroot’ed build environment. Use the following command:
./enter_chroot.sh
I also recommend generating password for shared user, so that you can sudo from the terminal:
./set_shared_user_password.sh
And finally build all packages:
./build_all.sh
At this point, go and make some more tea or coffee. Which I wouldn’t recommend, though. Simply because you will have trouble getting asleep. Because sleeping is the most sane thing you might want to do at this moment. Building OS packages takes ages!…
But seriously, it’s not that bad, it took about an hour and a half on my Ubuntu VM to build it.
Make VM image and boot it in VirtualBox
Build bootable image
Once all packages have been built, you need to create OS image to boot from. Image build process creates two artefacts:
- Master boot record (mbr.image)
- Root FileSystem (rootfs.image)
./build_image.sh
Once the image files have been creates, the script will tell you where to find them. It is going to be in ~/chromiumos/src/build/images//
Here’s what you will have once the image build is done:
pulegium@ubuntu:~/chromiumos/src/build/images/999.999.33509.212332-a1$ ls -lh
total 729M
-rw-r--r-- 1 pulegium 5000 512 2009-12-01 21:34 mbr.image
-rw-r--r-- 1 root root 40K 2009-12-01 21:31 package_list_installed.txt
-rw-r--r-- 1 root root 40K 2009-12-01 21:34 package_list_pruned.txt
drwxr-xr-x 22 root root 4.0K 2009-12-01 21:29 rootfs
-rw-r--r-- 1 pulegium 5000 950M 2009-12-01 21:23 rootfs.image

- Creating New VM for Chrome OS

Tell VirtualBox to use existing image

Add new image

Image added

- Chrome OS login screen

Selection of preinstalled application. All web based and ready to go. Make sure you have connection to the internet. Chrome OS bit dull and TBH useless without internet...

In general I think Chrome OS looks OK'ish, but this menu smells of M$ Windows...
Related posts:
Hey!
The link is http://chromeos-blog.com/download-chrome-os-usb-drive/ . At least I promise I didn’t change the code at all after downloading it from the repository. The new version seems to support more wireless network controllers than the version from the tarball that you describe.
Thanks for linking. I built a USB drive version of Chrome OS yesterday and somehow you can see me as a trusted source…
Bye!
hi, well comment re security is generic, i absolutely did not have anyone in particular in mind…
re recency of the build, there’s always an option to build off the development tree. but i somehow tend to be bit cautious about super fresh builds…
method two:
http://sites.google.com/a/chromium.org/dev/chromium-os/building-chromium-os/getting-the-chromium-os-source-code
Any change of an update??
more make_local_repo.sh
#!/bin/bash
# This script is no longer needed. This stub is here to avoid immediate
# buildbot breakage and will be removed soon.
exit 0
Eddie, yup seen that one… I’ll be making a new manual soon. Thanks for pointing that out though!