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