http://tinycorelinux.net/ TCL is great for small computers, like the Raspberry Pi. I've put it on the RPi Zero W to act as a [[furinkan/sysadmin/Clevis_and_Tang| tang]] server. Running version 9 at the moment, because version 11 is still in beta, from early 2020 or so. = Initial wifi setup = The ZeroW is a little tricky because it only has wifi, and the stock image doesn't include that. Easy enough to fix, though the official wiki is down-ish at the moment. * Official wiki page, via archive-org: https://web.archive.org/web/20191011060430/http://wiki.tinycorelinux.net/picore:pi_zero_w_wifi * Forum page that started it: http://forum.tinycorelinux.net/index.php/topic,21134.15.html {{{ Download piCore-9.0.3.zip from http://tinycorelinux.net/9.x/armv6/releases/RPi/ dd it to the SD card: dd bs=1m if=piCore-9.0.3.img of=/dev/rdisk3 conv=sync run fdisk and manually extend the second partition to something more reasonable do a resize2fs to grow the filesystem Download all these extensions needed for wifi: mkdir required; cd required for pkg in libiw libnl readline wifi wireless-4.9.22-piCore wireless_tools wpa_supplicant firmware-rpi3-wireless; do for f in $pkg.tcz{,.dep,.md5.txt} ; do wget http://ftp.nluug.nl/os/Linux/distr/tinycorelinux/9.x/armv6/tcz/$f; done; \ done copy them to the just-grown second partition /mnt/mmcblk0p2/tce/optional/ Install the extensions immediately, and add them to the onboot list for future boots: tce-load -i firmware-rpi3-wireless tce-load -i wifi echo firmware-rpi3-wireless.tcz >> ../onboot.lst echo wifi.tcz >> ../onboot.lst Connect to wifi and make it persistent: sudo wifi.sh (and select an AP and enter password) echo "wifi.sh -aw" >> /opt/bootlocal.sh echo "/etc/wpa_supplicant.conf" >> /opt/.filetool.lst sudo filetool.sh -b sudo exitcheck.sh reboot }}} = Setting your timezone = The Pi Zero W doesn't have an onboard RTC, meaning you need to use NTP once the system is booted. But NTP isn't gonna help you unless you know your timezone offset, and you can tell Linux that. There are two ways to set your timezone: 1. The presence of `/etc/localtime`, which describes your location and when/how DST affects it 2. Passing the `TZ=foo` bootcode (generally called a "kernel commandline option" on regular distros) The first option is fine, albeit a little tedious. You get the tzdata.tcz extension, unpack it, find the file in `/usr/share/zoneinfo`, copy that to `/etc/localtime`, and add `/etc/localtime` to your backup list. The second method involves grabbing tzdata.tcz, finding your file in there, and inspecting the last line. It's mostly binary stuff, but there's plaintext at the end and that's your local timezone spec. Supply that as a bootcode in your boot config and bob's your uncle. * The method is described here: https://www.linuxsecrets.com/tinycorelinux-wiki/wiki:time_zone.html * And here's the Australia/Sydney TZ string: `AEST-10AEDT,M10.1.0,M4.1.0/3` Note that either way, if your local timezone spec ever changes, you'll need to update this yourself as neither method is self-maintaining. = Building extensions = Not all that different to building RPMs! Kinda. * Submission for the repo: http://forum.tinycorelinux.net/index.php/topic,330.45.html * https://web.archive.org/web/20191109095842/http://wiki.tinycorelinux.net/wiki:creating_extensions There's not really a process there per se, and it's not all that repeatable, but it's not bad. More exhaustive logs and notes on [[/BuildingExtensions]].