Pi Zero radio aanvulling 3

Door synoniem op donderdag 23 juli 2020 22:30 - Reacties (6)
Categorie: Raspberry Pi, Views: 2.699

Hoewel op een lager pitje afgelopen tijd, blijf ik nog wel verbeteringen aan mijn Pi Zero radio doorvoeren.
Behalve de "gewone" bugs die ik tegen kom in het gebruik is Python 2 inmiddels end of life. Reden genoeg om pydPiper te promoveren naar Python 3.

Voor een deel kun je dat geautomatiseerd doen met 2to3 maar dan blijft er nog genoeg handwerk over. Daarnaast heb je een andere Docker container nodig omdat de oorspronkelijke container van dhrone op Python 2 gebaseerd is. Ook dat vergde wat handwerk om uit te vinden welke versie van de bibliotheken je nodig hebt. De voorbeeld Dockerfiles van dhrone werkte niet zonder meer.

Uiteindelijk heb ik zelf een image gereleased: synoniem/pydpiper3:latest op hub.docker.com. Deze werkt in ieder geval voor pydPiper3 met het 16x2 LCD display dat ik gebruik. Overige displays zul je eventueel zelf moeten testen. De image is gebaseerd op arm32v6/python:3-alpine die in principe op alle Pi's zou moeten werken. Voor alle versies van de Pi vanaf 2 zou je ook arm32v7/python:3-alpine als basis kunnen nemen.

En uiteraard moet je Python3 versie van pydPiper gebruiken waarvoor ik een nieuwe repo aangemaakt heb op https://github.com/synoniem/pydPiper3.

Naar aanleiding van de discussie onder Pi Zero radio aanvulling 2 was het ook tijd om het pydpiper.service voor systemd eens aan te pakken. Dus ook hier is een nieuwe versie voor gekomen.

code:
1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description = pydPiper
Requires = docker.service
After=volumio.service

[Service]
Restart = always
ExecStart = /usr/bin/docker run --rm --network=host --privileged --name pydpiper -v /var/log:/var/log:rw -v /home/volumio/pydPiper3:/app:rw synoniem/pydpiper3:latest python /app/pydPiper.py
ExecStop = /usr/bin/docker stop -t 2 synoniem/pydpiper3:latest
[Install]
WantedBy = multi-user.target

Zoals je kunt zien wordt bij het stoppen van de service de gebruikte container nu direct verwijderd. Uiteraard wordt de Python 3 code en image gebruikt voor het opstarten en krijgt de container de naam van pydpiper mee.

Allemaal geen grote schokkende verbeteringen maar vele kleintjes maken één grote. De volgende stip op de horizon is om Volumio zelf te containeriseren. De eerste pogingen in die richting stemmen nog niet hoopvol. Zo is op dit moment het alleen mogelijk om met een X86_64 onder Debian Jessie (versie 8!) een nieuwe image te bouwen. Er wordt wel gewerkt aan een versie voor de huidige Debian stable Buster (versie 10) maar zover is het nog niet.