A couple of people have speculated about what exactly is in the 9pi SD card
image.
I should really publish a build script, but first I would have to write one.
Informally, here's how the 9pi fossil contents were created, starting from the
Bell Labs 4th Edition download CD image on 9p.io:
1. Installed the 4e filesystem onto a freshly formatted fossil image:
echo uname upas :upas >>/srv/fscons
disk/mkfs -a -s /n/cd /n/cd/dist/replica/plan9.proto | disk/mkext -ud
/n/fossil
2. Copied all bcm kernel source from /n/sources/contrib/miller/9/bcm on 9p.io
to /sys/src/9/bcm
3. Applied these updates from /n/sources/patch on 9p.io
aes-ctr
armv7-atomic
exec-postnote-race
exit-wrong-parent
pread-offset
ramfs-fixes
segment-overlap
ssh2-aes-ctr
ssh2-dh-group14
usb-ether-lan78xx
usbserial-ftdi-writelen
4. Applied these updates from http://9legacy.org/patch.html
aux-wpa
bcm-brian-man [followed by a small correction to /sys/man/3/spi]
factotum-wpa
fossil-wstat-qid
libsec-tlshand12-fixes
libsec-tlshand12-norc4
libsec-tlshand12-nossl3
libsec-x509-sha2
libsec-x509-sig
tcp-close
tls-devtls12
tls-tlshand12
usb-usbd-usb3
5. Copied the latest /sys/src/cmd/aux/wpa.c and
/sys/src/cmd/auth/factotum/wpapsk.c
from 9front.org, with a couple of small edits to remove 9front dependencies
6. Copied wifi firmware files from
https://github.com/RPi-Distro/firmware-nonfree
into /sys/lib/firmware
brcmfmac43430-sdio.bin
brcmfmac43430-sdio.txt
brcmfmac43455-sdio.bin
brcmfmac43455-sdio.clm_blob
brcmfmac43455-sdio.txt
7. Adjusted a few config files and scripts for an easier first-time experience
of Plan 9 on a Raspberry Pi
/adm/timezone/local
/adm/users
/dist/replica/client/*
/rc/bin/replica/pull
/rc/bin/termrc
/rc/bin/termrc.local
/sys/lib/newuser
/usr/glenda/bin/arm
/usr/glenda/bin/rc/patch-apply
/usr/glenda/bin/rc/riostart
/usr/glenda/lib/profile
8. Built and installed libraries, commands and kernels for ARM, and removed the
corresponding 386 binaries. Also ran mkindex in /sys/lib/man/lookman to
update
the database for the lookman command.
9. As an extra bonus, installed go1.14 (cross-compiled under go-linux-386), into
/sys/lib/go1.14, along with its dependencies /rc/bin/git (a just-enough-git
emulation from David du Columbier) and /sys/lib/tls/ca.pem which were needed
for 'go get' (not sure if they still are). A new /lib/namespace.local with
'bind -a /sys/lib/go1.14/bin /bin' makes it simple to use 'go' as a command
invoking the latest installed release.
------------------------------------------
9fans: 9fans
Permalink:
https://9fans.topicbox.com/groups/9fans/T16171523f95d8656-M87e4ccc2f2348d4492e94048
Delivery options: https://9fans.topicbox.com/groups/9fans/subscription