Sunday, June 20, 2010

How (not) to get chrome OS running in vmware

This weekend, I was just trying out Google's Chromium OS. The build went fine, all credits to Gentoo. But, the script to make a vmware image out of it failed miserably. After a lot of debugging I realised that a post install script is getting called which is causing all these issues. Now, what does the post install do?

/postinst messes up with your disk! Thank god that I realised this and I did not have something called /dev/sda12. Whatever be the the reason, they should have at least warned the users that script will try to mess up with the disk. Since I was pretty sure that I am interested in a vmware image, and no disk need to be involved here, I simply commented out that and proceed.

Once the image was formed, it was not booting in VMWare. Then I downloaded a openfiler vmware image and mounted chromeos disk as secondary. After a bit of tweaking with the grub configuration file (/boot/extlinux.conf), I was able to see something on the screen. I did the following things for this.

1. Marked /dev/sdb12 as a bootable partition using cgpt
2. Removed quiet and console options from kernel command line
3. Changed from USB boot to hdd boot
4. Changed the root device to /dev/sda3 and changed the ro option to rw

Now, comes the second pain. The X won't startup. I still haven't got it solved. But, I can currently run chrome. Lets see what I did for that.

1. Create a back-door entry by editing /etc/init/tty2.conf
1.1 Ask agetty to use /bin/bash as login program
2. Create a small shell script in / and pass the path to it as user name
(These were again done by mounting the disk on another working vmware appliance)
3. Create a /etc/init/network.conf for bringing up the wired network (Yep, that also did not work. Added a modprobe, ifconfig and route to do this)

Booted the machine and after ui.conf failed, I switched to tty2. Just gave my script path as login name and I got a shell. Now, I was able to start the X server. Created a new config file using X -configure and copied it to /etc/X11/xorg.conf. After this, I put the following line to ~/.xinitrc

echo /opt/google/chrome/chrome > ~/.xinitrc

Now, I typed in xinit and I have the chrome running!

There were many other painful stuff that I had to go through from yesterday morning till today 11AM to get this stuff working. But, I am still not happy. I want the UI to come up auto magically and let me login to google. I can see the reboot speed is really fast. I say reboot and the its done in 2-3 seconds! But, I really want to see the time taken by the actual UI to come up. If I get this working, I will post it here.

Currently, chrome allows me to browse the web like it does on a normal browser. Only change I could see was the presence of network icons on the top right corner. Also, if I directly type in, it crashes. It seems like it is looking for some key manager and does not find it. At times, I can see it cribbing about CrOS library not getting loaded. Anyway, I only spent a day on this. Rest, next week :)

Sunday, June 13, 2010


Well, I just read about this in LFY today and wanted to try it. Seems like its a cool tool. I made a introductory Linux presentation (meant for our Java developers) in this. May be it is not a real strong use case. But, Freemind sure did help me organize things a bit. The software has got some nice folding and re-arranging options which I liked.

You can find FreeMind at

I am also uploading the stuff that I made (exported to jpeg) using this.