MeidokonWiki:

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 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.

Process for piCore 11.x

  1. Image as normal

    wget http://www.tinycorelinux.net/11.x/armv6/releases/RPi/piCore-11.0.zip
    unzip -p 2020-02-13-raspios-buster.zip | sudo dd of=/dev/sdX bs=4M conv=fsync status=progress
    
    # Run fdisk and manually extend the second partition to something more reasonable.
    
    # Run fsck and then resize2fs to grow the filesystem to fill the partition.
  2. Copy wifi extensions over, piCore 11.x has some small changes to the set now. You need the tcz and dep and md5.txt files for each package.

    ca-certificates.tcz
    firmware-rpi-wifi.tcz
    libnl.tcz
    ncurses.tcz
    openssl.tcz
    readline.tcz
    wifi.tcz
    wireless-4.19.81-piCore.tcz
    wireless_tools.tcz
    wpa_supplicant.tcz

    These go in /mnt/mmcblk0p2/tce/optional/, or wherever you've mounted up the second partition of the SD card.

  3. Boot system for first time
  4. Edit wireless_tools.tcz.dep to remove libiw.tcz as a dependency (it's part of wireless_tools now)
  5. Do wifi setup and config

    tce-load -i firmware-rpi-wifi
    tce-load -i wifi
    echo firmware-rpi-wifi.tcz >> /mnt/mmcblk0p2/tce/onboot.lst
    echo wifi.tcz >> /mnt/mmcblk0p2/tce/onboot.lst
    
    sudo wifi.sh
    -- Do setup as normal
    echo "wifi.sh -a" >> /opt/bootlocal.sh
  6. Save your changes and reboot

    filetools.sh -b
    exitcheck.sh reboot
  7. Everything should just work once it comes back.

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.

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.

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.

MeidokonWiki: TinyCoreLinux (last edited 2020-07-07 08:26:42 by furinkan)