= makarov =

 * RPi Zero W
 * RPi OS buster Lite (based on Debian 10.10)
 * `Linux makarov 5.10.17+ #1421 Thu May 27 13:58:02 BST 2021 armv6l GNU/Linux`
 * Located wherever I take it

<<TableOfContents>>


== network ==

Static DHCP assignment in IOT VLAN, it should have minimal access privileges, it literally only needs web access. No IPv6 apart from usual linklocal stuff.

== services ==

 * SSH
 * Some avahi junk I should probably disable


== apps ==

 * `muzak` systemd unit plays music, running as the `pi` user
 * `frontpanel` systemd unit manages the LCD and button inputs

=== Muzak app ===

Runs mpv with a playlist of Youtube links, super basic. Audio goes out through an I2S soundcard. Playlist loops forever as you'd expect. Playlist and extra stuff is in /home/pi

=== Frontpanel app ===

A python script with some basic GPIO interfacing, controls mpv by talking to its JSON-IPC socket. Displays images and UI on the LCD screen.


== Optimisation ==

Aim to disable as much stuff as possible, to reduce CPU load and boot times.

Try to disable:
 * bluetooth
  * `dtoverlay=disable-bt` in config.txt
  * `systemctl disable hciuart --now`
  * `systemctl disable bluetooth`
  * reboot then `apt purge bluez bluez-firmware`

 * apt-daily-upgrade
  * `echo 'APT::Periodic::Enable "0";' > /etc/apt/apt.conf.d/10periodic`

 * ModemManager
  * `apt purge modemmanager`
  * `apt autoremove -y`

 * avahi-daemon.service
  * `systemctl disable avahi-daemon.service --now`
  * Does this work? `systemctl disable avahi-daemon.socket`

 * dhcpcd
  * add `noarp` to the config to make it boot faster

 * Remove the Mopidy stuff that I installed {{{
systemctl disable mopidy --now

for i in spi i2c gpio video ; do deluser mopidy $i ; done

# as root:
pip3 uninstall mopidy-youtube Mopidy-PiDi Mopidy-Local mopidy-raspberry-gpio
pip3 uninstall mopidy_autoplay mopidy_mobile mopidy_muse musicbrainzngs

apt purge mopidy
rm -rf /var/lib/mopidy

# Mark gstreamer plugins to be kept now that mopidy is gone
apt install gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-alsa \
    gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-pulseaudio \
    gstreamer1.0-x python3-gst-1.0

rm /etc/apt/sources.list.d/mopidy.list
apt-key del 271D2943
}}}

== Read only system ==

Make the filesystems read-only, as much as possible. Refer to this: https://medium.com/@andreas.schallwig/how-to-make-your-raspberry-pi-file-system-read-only-raspbian-stretch-80c0f7be7353

{{{
apt purge triggerhappy
systemctl disable console-setup
apt purge logrotate

apt install busybox-syslogd
apt purge rsyslog

systemctl stop dphys-swapfile.service
apt purge dphys-swapfile

apt autoremove -y
}}}