Cygwin, Moblin, and MeeGo
by brian hefele

I have sort of quasi-permanently borrowed an EeePC with Windows XP. I have been using it a bit lately, and realized that I hate how slow Windows is to boot on such a machine (never been quick on any machine, though), I hate the aesthetics of pre-Vista Windows, and I hate the overall Windows experience (having no comfortable command line is a big fright). Since the machine is not really mine, installing a new OS (something in a BSD, please?) seemed like a pretty bad idea. First idea: Cygwin.

Cygwin

I have always known about Cygwin. It is, essentially, a *NIX environment running on Windows (owned/maintained by Red Hat). I always thought it was a true Linux environment, running in something along the lines of a virtual machine. The reality is that it is a windows DLL which handles POSIX system calls and turns them into Windows system calls. All of the POSIX binaries that come with Cygwin (and everything in the package managers, everything you build with the toolchain) are native Windows binaries — just, they rely on the POSIX DLL. If you ask me, that is way cooler than a VM/emulation layer.

Aside from everything being native, there are a few other neat tricks that come of this. 'Normal' Windows binaries can be run from the 'POSIX' environment. So, for instance, while CYGWIN (or at least the way I set it up from my half-hearted flip through the package manager) comes with a POSIX-style ping tool, but no traceroute. That's okay though, because I can run Windows tracert from the comfort of my zsh. The other neat thing is that it can all be run through the system's own terminal emulator (if you can call it that), that is, the 'DOS Prompt.' Though, better yet is to install Console, to get tabs, better control over display, etc.

It actually turns out to be a really system. But, it's slow. And by this, I mean, I'm sure it's slow compared to a pure *nix install, but still tolerable. Pretty miserable on such limited hardware, however, especially when the underlying OS (and the boot times, the wake times, &c.) is already sucking resources dry. And of course, when you hate to look at the underlying OS, that makes things kind of unpleasant as well. But, on more powerful hardware, on Windows 7, I could definitely see myself enjoying the setup. Also, I learned that 'clear' is not a builtin, but part of (n)curses. For future reference, tput is (or should be) a builtin, and a simple alias to 'tput clear' should do the trick.

Moblin and Meego

The Eee has an SD slot, and I have some spare (not really, they're for my photography) 8GB SD cards hanging around, so plan B was to try installing a lightweight distro onto a card. What immediately jumped out at me was Moblin, a friendly distro maintained by Intel and targeted toward netbooks. I downloaded the most recent image, dded it onto an SD (remember, friends don't let friends drink and dd), played with it, and promptly discovered that Moblin is no longer maintained by Intel, or anyone else for that matter. Really would be nice to tell people that on the front page, and forward them to MeeGo, a new, similar distro which came to exist as a merge of Moblin and Maebo (formerly maintained by Nokia). So, I did the download, the dd, the playing, and ultimately the torturous second-dd-so-I-can-install-from-one-card-to-another game, and I have to say I'm glad I tried Moblin first.

Simply put, aside from the fact that it isn't maintained (and Twitter doesn't work anymore), everything about Moblin is better from a user perspective. The UI is considerably better, widgets in MeeGo look hastily implemented, and title bars are enormous, wasting countless precious pixels on the tiny Eee display. The command line environment on Moblin was also far superior, with MeeGo missing such crucial utilities as 'man.' Everything on the EeePC worked out of the box on Moblin, but I had to edit the options that the boot loader (extlinux) passes to vmlinuz in order to get volume keys functioning on MeeGo. MeeGo has fewer packages available, but it is a younger distro - hopefully people will invest time into this.

So, MeeGo kind of sucks compared to Moblin, but it's still a very capable, generally pleasing lightweight distro for lightweight devices. Is it ready for users who aren't nerds, though? I'm not sure. As I mentioned, on Moblin, volume keys worked right out of the box - on MeeGo they didn't. That sort of subtle detail makes a big difference to common users. If the keyboard says 'volume up,' and the computer doesn't do what it says, that's kind of a big deal. Emphasis is placed on the home screen, 'myzone,' and its social features. Yet, so far it only integrates with Twitter and Last.fm. The devs seem to think that two is good for a proof-of-concept, and vendors should implement the missing pieces (you know, Facebook, Flickr, identi.ca…) — typical open source bullshit, polluted further by the bullshit of two large corporations. Hopefully they come to their senses. This social aspect also includes email and instant messaging, but the IM client that comes with the OS includes a broken copy of libpurple — and therefore, AIM doesn't work. This is remedied by updating libpurple, but no update is included in the official repo - fortunately there is a community repo which, among other things, will fix this.

I have done a few other upgrades, such as adding 'man,' 'zsh,' and 'bc/dc.' MeeGo uses rpm/yum/zypper for package management, which is perfectly acceptable. Official packages are generally good, and unofficial repos are certainly welcome. Droid fonts are garbage, so I have replaced the monospace with Envy Code R, the serif with Gentium Book Basic, and I'll probably bring Helvetica over for the sans. I briefly mentioned that I had to image two SD cards, the live image is on a read-only filesystem, and simply using one to install onto another was easier than trying to hack at iso9660, ext3, and btrfs file systems on a Mac. I did have to edit the bootloader configuration to point to the right SD card in the end, as well as adding 'rootdelay=6,' seemingly the bare minimum of time before the kernel has a chance to mount or recognize or whatever the SD card. It makes booting slower, but that's pretty trivial on this setup. All in all, I'm pretty pleased, though I'm not sure it's ready for the typical casual user just yet.

PS, I plan to get my vim, fish, bash, zsh configs as well as scripts I use and play with up on bitbucket soon. It just makes sense to host this stuff somewhere.

categories: nix, software, review
date: 2011-01-27 16:41:11
blog comments powered by Disqus