* Setting up 9front on a Raspberry Pi 3 B+ Author: nf Last updated: 15 August 2020 ** Introduction This document is about the getting the 9front fork of plan9 running on a Raspberry Pi, as there are some idiosyncrasies that are not covered in the documentation. Note that I am a newcomer to plan9 and so what I have written here may be incorrect in subtle (or significant) ways. Please email me with any corrections. Please read the documentation at 9front.org and, and use the built-in documentation by typing 'man thing' where thing is the subject of your enquiry. A decent newbie guide to plan9: http://www.quanstro.net/newbie-guide.pdf You'll want to learn how to use Acme so that you can easily browse the file system and edit files. Watch Russ Cox's excellent Tour of Acme for an overview: https://www.youtube.com/watch?v=dP1xVpMPn8M If you're used to Unix, know that in rio the delete key works like ctrl-C. ** Writing a disk image Download 9front-7781.38dcaeaa222c.pi3.img from 9front.org/iso and write it to an sdcard: diskutil list # check you're looking at the right disk! diskutil unmountDisk disk3 dd if=9front-7781.38dcaeaa222c.pi3.img of=/dev/disk3 bs=1024000 These instructions are for macOS; on Linux you'll not need the diskutil stuff, just find the right device. The dd command should be the same. ** Booting Insert the sdcard in the Pi and boot it up. A plan9 console should appear. It prompts for 'bootargs', meaning the file system to boot from. The default (sdM0/fs) should be correct. Hit enter. It prompts for 'user', with 'glenda' as a default. Hit enter. The window manager, rio, should start, showing a couple of term windows. ** Boot configuration (plan9.ini) You may see references to plan9.ini in the 9front docs, or indeed in the plan9.ini man page. It provides boot configuration options, and lives in a FAT partition, outside the main plan9 file system. On the Raspberry Pi 9front image there is such a FAT file system. You can mount it with 9fs pidos and the file system will appear under /n/pidos. But note that the plan.ini file is not there - rather it is synthesized from a file name cmdline.txt that you should find there. The one you see there should contain just the string 'console=0'. You can put boot configuration (see 'man plan9.ini') in cmdline.txt. To avoid pressing enter on the bootargs and user prompts, as you did earlier, you can add these options to the file: nobootprompt=local!#S/sdM0/fs user=glenda Note that unlike plan9.ini, in cmdline.txt all options must be on one line. ** Network configuration To get your wired ethernet going, edit /lib/ndb/local. Uncomment the lines at the bottom (starting with auth=cirno ...) and set up your subnet, DNS, and IP address as appropriate. Your Pi's ethernet MAC address is in /net/etherU0/addr which you should put on the final line after the string 'ether='. If you want to set your IP and DNS by DHCP, you just need two lines: auth=cirno authdom=9front sys=cirno dom=cirno.9front ether=111122223333 Change the system name (host name) by replacing all occurrences of 'cirno' with your preferred name. And replace 9front with your local network name. Reboot the system with 'reboot', the network should come up on boot. ** TODOs - Persist ssh keys in factotum after reboot - Start sshfs on startup - Creating a new user (not 'glenda') and giving it appropriate permissions - Sharing the cpu server from the Pi, connecting to it with drawterm