Mike Bland

Plan 9 on VMware Fusion 7.1.1

I've finally gotten Plan 9 and its rio windowing system running successfully under VMware Fusion 7.1.1 on OS X 10.10.3 and feel like shouting about it.

- Alexandria
Tags: Plan 9, technical

After all these years of thinking and wishing and hoping I could try the Plan 9 operating system for myself, the dream has finally come true:

The Plan 9 operating system and its rio window manager running within VMware Fusion 7.1.1 on OS X 10.10.3
Click for a larger image.

I’m running VMware Fusion 7.1.1 on OS X 10.10.3, using the stock Bell Labs Plan 9 distribution. I actually got the bare, shell-only system running last weekend, but today I discovered how to wave the dead chicken to get the rio window manager to work, as Plan 9 is pretty damn hard to use without it.

Here’s the trick, which I figured out after reading an old comp.os.plan9 thread. After booting from the Plan 9 CD-ROM image and selecting Install Plan 9 from this CD, at some point it will prompt you for your monitor dimensions. Enter “1280x768x24” for vgasize and “cinema” for monitor. This will result in the following error message:

vgasize [640x480x8]: 1280x768x24
monitor is [xga]: cinema
/bin/aux/vga: vgactlw: <type vmware>: bad VGA control message "type vmware"
rio: can't open display: initdisplay: /dev/draw/new: no frame buffer

failed to start rio.  you can start a text-based installation by running

        inst/textonly


init: starting /bin/rc
%

Go ahead and run inst/textonly as instructed; the monitor settings are actually configured even though the attempt to start the graphical installer failed. When finished with the installation and reboot, enter “glenda” at the login prompt, and voila! A fully-functioning Plan 9 environment running rio.

Well, almost fully-functioning. I still have to figure out how to configure the network interface, but that’s a blog post for another day. At any rate, I’m hopeful others looking to install Plan 9 on VMware may stumble upon this post and get up and running more quickly than I.

(Another quick tip: Control-C doesn’t work in rc, the Plan 9 shell. The ASCII DEL code is required instead. On a Mac, that translates to fn-delete. Other nifty tips are in the Plan 9 lfaq)

As for why I want to install Plan 9 in the first place, on one level I’m just curious about other operating systems, and Plan 9 has long been known as the platform on which the original UNIX hackers at Bell Labs further developed their ideas. On top of that, the Go programming language (developed by some of the same original UNIX hackers) runs on Plan 9, and I’d like to make good on my promise to try running bitly/oauth2_proxy tests on Plan 9. Of course, that also means I need to get the networking config worked out first, and to get a git wrapper for Plan 9 installed.

Tedious? Yes. But solving problems like this is a big part of what got me interested in computers in the first place. (My first command-line interface, Zork: The Great Underground Empire, was the other big part.)