streaming-kamera/raspi_setup.md

95 lines
1.8 KiB
Markdown
Raw Normal View History

2021-03-03 08:25:58 +01:00
# Raspberry Pi
2021-03-03 12:50:11 +01:00
## Raspbian lite installieren
2021-03-03 08:25:58 +01:00
Auf der vorbereiteten SD-Karte muss im Laufwerk "boot" eine leere Datei `ssh` angelegt werden, damit der SSH-Zugang freigeschaltet wird.
2021-03-03 12:50:11 +01:00
### Nach dem ersten Login:
2021-03-03 08:25:58 +01:00
```
sudo apt update
sudo apt upgrade
```
2021-03-03 12:50:11 +01:00
### Konfiguration anpassen:
2021-03-03 08:25:58 +01:00
```
sudo raspi-config
```
2021-03-03 12:50:11 +01:00
- Zeitzone anpassen
- Passwort ändern
- Spracheinstellungen ändern
## Zusatzprogramme installieren
2021-03-03 08:25:58 +01:00
```
2021-03-03 10:45:26 +01:00
sudo apt install mc git zbar-tools build-essential python-dev
2021-03-03 12:50:11 +01:00
```
## Benutzer anlegen
Damit der Benutzer auch auf die GPIOs zugreifen kann, muss er zur Gruppe `pgio` hinzugefügt werden.
```
adduser kamera
...
sudo usermod -a -G gpio kamera
```
## virtuelle Python Umgebung einrichten
```
sudo apt install python3-venv
cd /opt
sudo python3 -m venv kamera
sudo chown -R kamera:kamera /opt/kamera/
```
### virtuelle Umgebung aktivieren
```
su kamera
cd /opt/kamera
source bin/activate
```
Wenn alles geklappt hat, befindet man sich jetzt in der virtuellen Python Umgebung und kann dort die benötigten Module installieren
```
2021-03-03 14:07:15 +01:00
pip install rpi.gpio flask uwsgi
deactivate
```
### streaming-kamera klonen
```
cd /opt/kamera
git clone https://git.jgz-energie.net/ENERGIE/streaming-kamera.git
Außerhalb der virtuellen Umgebung kann das Programm mit `/opt/kamera/bin/python /opt/kamera/streaming-kamera/kamera.py gestartet` werden.
Der uWSGI-Server kann mit `/opt/kamera/bin/uwsgi --socket 0.0.0.0:8000 --protocol=http -w server:first_app`, wenn man sich in dem Arbeitsverzeichnis (/opt/kamera/streaming-kamera) befindet.
### Service für uWSGI anlegen
/opt/kamera/uwsgi_config.ini
```
[uwsgi]
chdir = /opt/kamera/streaming-kamera
module = kamera_server:server
master = true
processes = 1
threads = 2
uid = kamera
gid = kamera
socket = /tmp/sample_app.sock
chmod-socket = 664
vacuum = true
die-on-term = true
```