Meidokon Wiki
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Useful(?) links

  • furinkan's stuff

  • Postfix snippets


  • SystemInfo

  • This sidebar

Navigation

  • FrontPage
  • RecentChanges
  • FindPage
  • HelpContents

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

MeidokonWiki:
  • servers
  • makarov

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

Contents

  1. makarov
    1. Build notes
    2. network
    3. services
    4. apps
      1. Muzak app
      2. Frontpanel app
    5. Optimisation
    6. Read only system

Build notes

  • Setup new install, configure wifi, enable ssh
  • raspi-config, set locale and timezone and hostname
  • setup your SSH keys for login
  • apt update, full-upgrade and reboot
  • apt install git vim lsof
  • setup vim config

    # /etc/vim/vimrc.local
    syntax on
    set background=dark
    set modeline
    set scrolloff=3
    set mouse=
    set ttymouse=
    filetype plugin indent on

Now the hardware support, I stole bits of this from Mopidy's install docs.

  • apt install -y python3-rpi.gpio python3-spidev python3-pip
  • Enable SPI

    raspi-config nonint do_spi 0
  • Setup the Pirate Audio hat by appending to /boot/config.txt

    # Pirate Audio config
    gpio=25=op,dh
    dtoverlay=hifiberry-dac

Now reboot and cross your fingers.

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/make-your-raspberry-pi-file-system-read-only-raspbian-buster-c558694de79

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
  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01
MoinMoin Release 1.9.11 [Revision release], Copyright by Juergen Hermann et al.