Plan 9 on a raspberry pi (with a screen case)
(hypothetical) wifi
If the pi's bwfm chip was supported, this is how (I assume) it would work:
term% cd /lib/firmware
term% hget http://firmware/openbsd.org/firmware/7.2/bwfm-firmware-20200316.1.3p3.tgz > firmware.tgz
term% tar xzvf firmware.tgz
term% cd firmware/
term% mv ./* ../
term% reboot
term% bind -a '#l1' /net
term% aux/wpa -s FCC_VIOLATING_WLAN -p /net/ether1
! Addidng key: proto=wpapsk essid=FCC_VIOLATING_WLAN
password: *******
!
term% ip/ipconfig ether /net/ether1
Until then, it's ethernet only (unless you can find a supported dongle).
Official raspi displays
I have a pi3 display and it's upside down. In order to fix this, do the following:
term% 9fs pidos
term% cd /n/pidos
term% sam config.txt
and append the line:
lcd_rotate=2
automatic booting
term% 9fs pidos
term% cd /n/pidos
term% sam cmdline.txt
Note: you must use spaces, everything after the first newline seems to be ignored. This is in direct contrast to a plan9.ini
on an i386 or amd64 installation where newlines are required. For all intents and purposes, cmdline.txt
is the pi equivalent to a plan9.ini
.
console=0 nobootprompt=local!/dev/sdM0/fs user=glenda
Configuring 9 to automatically submit a DHCP request when it boots (so I don't have to run ip/ipconfig
manually every time) and query an NTP server (because it's not 1970):
term% cp /adm/timezone/GMT /adm/timezone/local
term% sam /usr/glenda/lib/profile
My profile looks something like:
[lots of stuff]
webfs
plumber
ip/ipconfig ether /net/ether0
sleep 3 # because DHCP is SLOW
aux/timesync -n pool.ntp.org
[lots of other stuff]
Configuring the system in the hostowner's profile is hacky but it seems to work
upgrading the system
# get sources
sysupgrade
# build userland
cd /
. /sys/lib/rootstub
cd /sys/src
mk install
mk clean
# build manpages
cd /sys/man
mk
# build papers
cd /sys/doc
mk
mk html
# build kernel
cd /sys/src/9/bcm64
mk install
reboot