[Edit 2023-11-10: See below for extra packages.]
This is nothing special: I just used the slarm64 nezha packages to build the image. I wanted a clean(-ish) starting point for the CRUX image I am doing next. It boots, it rotates the framebuffer correctly, drivers and all the CPi-specific bits are included, everything seems to work fine. [Edit: see the edit at the bottom: it requires a bit of tweaking before it works fine, depending on your definition of “fine”.]
A summary of things that differ from vanilla Slackware:
- The ClockworkPi code (audio patch, printer daemon, etc.) was coalesced into a single Slackware package.
- init scripts ported from systemd to sysvinit.
/usr/src/DevTermhas the contents of the git repo, so the code is all available if I messed anything up. There’s a handful of stuff in
- Partition layout, bootloader, and kernel were done by just copying the first 128MB from the official image, and then rsync’ing /lib/modules from the official image.
- Kernel is as in the official image.
- Partition resizing is left up to you, so if you want to split
/home, feel free. (I figure anyone interested in Slackware on RISC-V knows how, but the partition layout is a little strange, so make a note of the starting block for partition 4, delete it, make a new one with that starting block.) The image is a little under 8GB.
- Instead of passing
agetty(8), it just gives you a login prompt.
cpiboth have the password
- Some miscellaneous Plan 9 tools:
/usr/local/bin/drawtermand p9p in
/opt/plan9. (Haven’t attempted a native Plan 9 image but I suspect it would work great aside from the lack of Plan 9 drivers for, e.g., wifi chip.) If you have a venti server set up, you can save yourself a lot of wear and tear on your SD card by setting up
fossilto run out of
/home/cpiis set up as in the official image, with
- I loved the orange look from the official image (my first computer had a Hercules monochrome CGA card and monitor, which was already very old by the time I got it), so
/etc/issuesets the terminal colors to amber monochrome colors. Feels really nice. (I did the same with my
~/.conkyrc; ping me if you are interested.)
- Most of the package selection is coder-centric (slow but cool experimental CPU in a cyberdeck, I am guessing everyone that got an R01 got it for the love of the game), compilers and stuff.
- Most of the available editors are small to keep the image size down,
elvisfor the vi,
samare available in
slackpkg installyour large editor of choice if those don’t work. (Ken Thompson still uses
- Retained CPi tradition of
echo $message|figlet>/etc/motd, but it’s appropriately wide-screen.
Other than that, it is vanilla Slackware.
I booted it up to test it before dumping the image, and then shrank it, so you will want to clear out the ssh keys before starting sshd (same as the official image):
sudo rm -fv /etc/ssh/*key*.
I recorded the entire process in
screen, so any questions about what I did, I can answer, but may not be able to remember why I did it. This image is a one-off: I’ll be doing a CRUX image after this and probably also CRUX for the A06 after that, or since the hard work has been done for Plan 9 on RPi, maybe a Plan 9 image for the CM4, but I will probably be moving slow since I have a lot of projects (some of which rely on being able to use my DevTerm) and also have to work. (Building a new OS image is a nice background task, since there is a lot of waiting. I started a CRUX image but fried the microSD card it was on, and figured that making a Slackware image where it was mostly downloading precompiled packages would be faster than recompiling everything. Thanks to the slarm64 project for producing RISC-V packages! slarm64 - unofficial slackware port for aarch64 / riscv64 architecture )
Tor link: http://s3ldbb3l5eqd6tjsklzmxy6i47i3fim55fpxmgeaa6rvpcllkt4ci4yd.onion/r01_slackware.img.bz2
Regular web (IPFS gateway): https://dweb.link/ipfs/bafybeihoiuobwvosy4dlxjkgophbgizq5gyyi6p7jxgh4tanjbdy73aose
Regular web (kinda; another P2P gateway): https://media.freespeechextremist.com/rvl/full/17b30212e33512e8aa6e861a4adb9744b4a70a7b2d6febab72df4b0816f2f0e8
Also, the DevTerm extras package, most of which you could get by compiling the code in /usr/src/DevTerm/Code, along with a few trivial translations of the systemd init scripts into sysvinit scripts:
IPFS gateway: https://dweb.link/ipfs/bafkreicj2pf6oprjj4ryilaudeljze4aicztetk5aylduiac74afvm5csi
ALSO, Here is yatli’s port of the fbturbo graphics accelerator, including init script, source, etc. I took the liberty of statically linking the daemon.
IPFS gateway: https://dweb.link/ipfs/bafybeiafuixsxadgesa7mnppg7ey3c3ou6bhqqmxj52thljofop4pc7r64
[Edit: It works fine once you bring up wifi (short version:
sudo vi /etc/rc.d/rc.inet1.conf, enable
wlan0 by uncommenting
IFNAME="wlan0" on line 152, then
USE_DHCP="yes" below that, then
WLAN_WPA="wpa_supplicant" on line 166, edit
/etc/wpa_supplicant.conf to add your network, then either reboot or do
sudo /etc/rc.d/rc.inet1 wlan0_start) and then install some missing pieces that I erroneously trimmed in an effort to get the image size down:
slackpkg install libICE libSM libnghttp2 libXpm python-Jinja2 python-PyYAML fribidi pangomm pango cairomm cairo cmake extra-cmake-modules gtk+2 glib2 startup-notification gdk-pixbuf2-xlib gdk-pixbuf2 libwacom xsm libusb libusb-compat sqlite icu4c libxml2 graphite2 brotli harfbuzz. Pango/Cairo/gtk are needed for gkrellm,
libnghttp2 is needed for git,
startup-notification is needed for
urxvt, and X refuses to start unless you have installed the Wacom driver, for some unholy reason. I don’t know how necessary some of the other ones are but If you’re having trouble waiting for that stuff to download, try installing
bsd-games first so you can do
fortune -a while watching the progress bars. If you’d prefer to use
wpa_gui to configure your network than to edit
/etc/wpa_supplicant.conf, you can write the image to the SD card and fetch the packages directly from the slarm64 repo.]