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

Reply via email to