Authors

James Choate (jchoate@confusionresearchcenter.org) 1 & 2

1. Confusion Research Center (http://confusionresearchcenter.org)
2. Central Texas Commodore User Group, Round Rock, TX. (http://www.meetup.com/Central-Texas-Commodore-Users-Group/)


Abstract

This document details the installation of Plan 9 on a Raspberry Pi 3.


Installing Plan 9 on a Raspberry Pi 3

These are the notes taken in the planning and initial execution phase of this project from 10 - 15 August 2016.
This is commentary added after the installation and is intended to go into more details about why we did what we did, and what we learned.

We've been intermittent Plan 9 users since the early 90s when the OS first became available to academic sites only. It's a next generation Unix that addresses many of the issues that were found with the Unix approach. It also brough in the first wave of distributed (what we call cloud services now) computing along with the Amoeba OS (which gave us Python). It consists of process, filesystem, I/O, and authorization servers that use a 'everything is a file' interface.

System:

Raspberry Pi 3

Installation Process:

Warning: Always work from copies if any master SD cards, the installation process wipes out the original contents when the install is done.

We need to find out what device the SD Card is and then unmount it.

diskutil list

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *750.2 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            749.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +748.9 GB   disk1
                                 Logical Volume on disk0s2
                                 6E72CCC4-6962-45CE-BA7C-C1FFCC660C38
                                 Unencrypted
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk2
   1:                        EFI EFI                     209.7 MB   disk2s1
   2:                  Apple_HFS MORGUE                  999.8 GB   disk2s2
/dev/disk3 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *15.7 GB    disk3
   1:             Windows_FAT_16 RECOVERY                1.2 GB     disk3s1
   2:                      Linux                         33.6 MB    disk3s5

diskutil unmountDisk /dev/disk3

Sanger:RPi Plan 9 Install JamesChoate$ diskutil unmountDisk /dev/disk3
Unmount of all volumes on disk3 was successful

Now we format it (FAT 32 in this case) and put the Plan 9 image (9pi.img) onto it.

sudo newfs_msdos -F 32 /dev/disk3

Sanger:RPi Plan 9 Install JamesChoate$ sudo newfs_msdos -F 32 /dev/disk3
Password:
newfs_msdos: warning: /dev/disk3 is not a character device
512 bytes per physical sector
/dev/disk3: 30665440 sectors in 1916590 FAT32 clusters (8192 bytes/cluster)
bps=512 spc=16 res=32 nft=2 mid=0xf0 spt=32 hds=255 hid=0 drv=0x00 bsec=30695424 bspf=14974 rdcl=2 infs=1 bkbs=6
Sanger:RPi Plan 9 Install JamesChoate$ 

Use the raw disk device (it has no buffering) so it will go much faster.

sudo dd bs=1m if=9pi.img of=/dev/rdisk3

This took a lot less time than expected, the Plan 9 image isn't that big. Start: 01:12 End: 01:14 The output of the above commands is ‘silent’ meaning it doesn’t give you any update while it’s processing. You can send a SIGINFO (Ctrl+t) for current status.

load: 1.04  cmd: dd 1139 uninterruptible 0.00u 0.03s
46+0 records in
45+0 records out
47185920 bytes transferred in 5.803482 secs (8130622 bytes/sec)

Once complete you should be able to remove the SD card and place in the Raspberry Pi 3 and boot/install normally. When complete if the SD card auto-mounts you’ll need to unmount it before removing it.

Contgratulations, at this point you should have a working Plan 9 installation on your Raspberry Pi 3!

Bibliography and References

[1] Wikipedia - Plan 9 from Bell Labs

[2] Choate, James. ”A Gentle Introduction to Plan 9.” System Admin Magazine. Feb. 2004.

[3] Plan 9: The Way the Future Was

[4] Operating System Documentation Project - Plan 9

[5] BendyWorks - Getting Plan 9 running on the Raspberry Pi

[6] Embedded Linux Wiki - Plan 9 on Raspberry Pi

[7] Raspberry Pi - Plan 9 available

[8] Plan 9 from Bell Labs, Fourth Edition

[9] Plan 9 from Bell Labs, Fourth Edition (mirror)

[10] YouTube - Plan 9 Operating System for the Raspberry Pi - ported by Richard Miller

[11] YouTube - Let's Install and Look at Obsecure Operating Systems: Plan9

[12] Harvey OS - A Fresh Take on Plan 9