MeidokonWiki:

asval

Build notes

This is the most generic stuff to do for initial setup, before tweaking it to a specific use.

OS imaging

Using the Raspberry Pi Imager app, start with RPi OS Lite 64-bit, suitable for the RPi 3B+

It lets you make some customisations before flashing, which is really nice:

Prepare DHCP server with static address for the LAN MAC address.

Put in the card and let it boot, should be fairly quick.

First login

  1. Login as pi@asval and copy your SSH key there

  2. sudo up and copy your SSH key to root's account as well
  3. Login again directly as root
  4. Install base packages

    apt install -y vim git screen ack
  5. Edit /etc/pam.d/sshd and remove user_readenv=1, this will keep the logs tidy

  6. Configure vim

    cat <<EOF > ~/.vimrc
    set nocompatible
    syntax on
    set background=dark
    set hlsearch
    set modeline
    set scrolloff=3
    EOF
  7. Configure shell
    • Edit /root/.bashrc to enable colours

    • Set the default editor to vim.basic:

      update-alternatives --config editor

Disable wifi and bluetooth on RPi

I'm using asval as a network appliance, so I don't need the radios: https://sleeplessbeastie.eu/2018/12/31/how-to-disable-onboard-wifi-and-bluetooth-on-raspberry-pi-3/

  1. Add dtoverlays to your /boot/config.txt to disable the radios:

    cat <<EOF >> /boot/config.txt
    dtoverlay=disable-wifi
    dtoverlay=disable-bt
    EOF
  2. Disable the hciuart daemon used for bluetooth modem access

    systemctl disable --now hciuart
  3. Reboot

Configure hardware RTC

I've installed the Jaycar XC-9044 RPi realtime clock RTC, it's apparently a good clock chip with a little battery (or something). Most models using this chip have a spot for a watch battery, but this one has a tiiiiny little thing soldered on the board. I hope it's decent.

  1. Physically install the module on the 3V3 plus I2C pins
  2. Enable i2c with raspi-config, it's in Interface Options -> I2C -> Enable

    • You can also do it yourself if you want:
      1. Comment out any blacklist entries for i2c[-_]bcm2708 in /etc/modprobe.d/raspi-blacklist.conf

      2. Load the module at boot:

        echo i2c-dev >> /etc/modules
      3. Uncomment/add dtparam=i2c_arm=on in /boot/config.txt

      4. Activate it now:

        modprobe i2c-dev
  3. Reboot now, it can't hurt
  4. Install i2c tools

    apt install -y i2c-tools
  5. Detect the device on i2c bus: i2cdetect -y 1

    • Should appear at 0x68
  6. Enable the kernel driver for it, or something, by adding a devicetree overlay

    echo "dtoverlay=i2c-rtc,ds3231" >> /boot/config.txt
  7. Reboot again to load the device tree overlay that we just configured
  8. Again detect the device on i2c bus: i2cdetect -y 1

    • Should appear at 0x68, BUT with "UU" at the address this time
  9. Remove the fake hardware clock

    systemctl disable fake-hwclock --now
    apt purge -y fake-hwclock
  10. In theory everything just works now thanks to a udev rule: https://www.raspberrypi.org/forums/viewtopic.php?t=209700

    root@asval:~# cat /lib/udev/rules.d/85-hwclock.rules
    # Set the System Time from the Hardware Clock and set the kernel's timezone
    # value to the local timezone when the kernel clock module is loaded.
    KERNEL=="rtc0", RUN+="/usr/lib/udev/hwclock-set $root/$name"
  11. Install chrony so it manages the hardware clock

    apt install -y chrony

    It'll do the rest once it's installed and synced. Try some commands to see how it's fairing:

    chronyc sources
    chronyc tracking

MeidokonWiki: servers/azusa (last edited 2023-11-24 13:24:21 by furinkan)