Sunday, December 06, 2009

I've got wireless in ChromeOS on the EeePC 901

Although it's in a very primitive state of development, I'm intrigued by Google ChromeOS. I believe it will almost certainly develop into a huge player in the future of the Internet.
However, on my Asus EeePC 901 where I have ChromeOS on a 4GB pendrive, although it works OK it's really nothing to write home about.
In particular, given that this is an OS specifically being developed for netbook use, I was disappointed that I couldn't get wireless to work.
This blogpost raised my hopes, but unfortunately, this still didn't resolve my problem. Trawling through the EeePC forums, it seems that while other EeePC computers do accomodate wireless in ChromeOS, the 901 doesn't because of the Ralink chipset.
However, I do have an old Belkin F5D7050 Network Adapter hanging around so I decided to try that.
Plugged it in while ChromeOS was running and -- amazingly-- iwconfig now shows a wireless interface (wlan0). However, it's not associated.
Then tried "ifconfig wlan0 up" and this gives me an error message " SIOCSIFFLAGS: No such file or directory" which I gather generally means that no firmware is available for the wireless card.
OK, but which drivers/firmware does the Belkin adapter use?
Various RaLink drivers are mentioned as being used by the Belkin adapter throughout the web, but when I tried the same adapter in Ubuntu Karmic on the same 901, NetworkManager said it was using a zd1211 (ZyDAS) driver.
So, taking tips from the earlier mentioned blogpost, I opened a terminal in ChromeOS (ctl-alt-t), changed to root (sudo su with facepunch as the password) and mounted the root partition as rw

# mount -o remount,rw /

Now, after creating a directory for the Ubuntu root partition (from the same machine) called /media/ubuntu, I mounted this partition with this command
# mount -t ext2 /dev/sdb2 /media/ubuntu

Then it was just a matter of copying the zd1211 firmware directory from Ubuntu to ChromeOS using this command
# cp -R /media/ubuntu/lib/firmware/zd1211 /lib/firmware

Now, I rebooted to ChromeOS, clicked on the Internet Connection box (upper right) and my router essid showed up. I clicked on this, added the encryption key when asked, and now I had wireless.
The encryption, as expected, only needs to be added once.
Nice.

No comments:

Post a Comment