My First Look at Plan 9

I first encountered Plan 9 on Devine Lu Linvega's site and was immediately interested in its minimalist design and "more unix than unix" philosophy. If you've never heard of it before, Plan 9 is a research operating system developed by Bell Labs in 1992, and takes the unix principle of everything as a file to the extreme. It has a lot of other interesting features and quirks, and if you're interested in learning more about them I would highly recommend the the Plan 9 about page or the several papers written about the operating system.

However, for all of the documentation I had a hard time actually getting Plan 9 (or, more accurately, 9front, a more maintained fork of Plan 9) to run on my pi 4. Though a few of the issues were certainly due to my own inexperience, I think there were a few which others might also face while trying to get it working on their own pi 4.

To start, the image file for the pi 4 can be found here (the pi3.img.gz file).

Confusingly though (because the 9front website says otherwise), the image file cannot simply be moved to a FAT32 formated micro sd card, it has to be flashed to the drive, using something like balenaetcher.

Additionally, by default the pi does not boot in something called "hdmi safe mode", which allows for maximum compatibility with hdmi output. This means that though the pi may be booting properly (as indicated by the green status led quickly blinking once the pi is first started and then turning off), the screen will not display any output. To fix this I needed to set a parameter called `hdmi_safe` in the `config.txt` file to `1`. That puts the pi into safe mode, which fixed the issue for me.

Also, something stupid I accidentally did which caught me up for a minute was trying to get hdmi output from the second micro hdmi port on the pi, which by default is disabled.

Once the pi boots, you should be greeted with a "bootargs" screen, which you can get through just by selecting the defaults (by pressing enter).

And with that done, your pi 4 should be good to go!