93 lines
3.4 KiB
Markdown
93 lines
3.4 KiB
Markdown
# Um was geht es?
|
|
|
|
* Endlose Aufnahme von WAV über die ALSA Schnittstelle
|
|
* Konvertieren der WAV Dateien nach MP3
|
|
* Upload der MP3 Dateien via rsync zu entfernten Server
|
|
|
|
## Vorbereitung
|
|
|
|
### Voraussetzung
|
|
|
|
#### Raspberry
|
|
|
|
* Anschluss USB-Soundkarte
|
|
* Einrichtung ALSA
|
|
* über welches Device kann das Mikro angesprochen werden? (hier: plughw:1,0)
|
|
|
|
#### Voraussetzungen entfernter Server (server)
|
|
|
|
* sshd
|
|
* apt-get install rsync
|
|
|
|
#### Raspberry (raspi)
|
|
* Passwortloses Anmelden auf entfernten Server einrichten:
|
|
|
|
```
|
|
pi@raspi:~> ssh-keygen -t rsa
|
|
pi@raspi:~> cat .ssh/id_rsa.pub | ssh user@server 'cat >> .ssh/authorized_keys'
|
|
user@server's password:
|
|
pi@raspi:~> ssh user@server
|
|
user@server:~> exit
|
|
```
|
|
|
|
### Installation
|
|
|
|
Auf dem Raspi folgendes ausführen:
|
|
```
|
|
git clone https://git.hs42.de/hs/sumsel.git
|
|
cd /sumsel
|
|
chmod a+x sumsel.sh
|
|
cp sumsel.conf.dist sumsel.conf
|
|
```
|
|
Anschliessend Variablen in ./sumsel.conf setzen:
|
|
| Variable | Optional/Required | Bedeutung | Default |
|
|
| ------------------------ | ----------------- | ----------------------------------------------- | ----------------------------------------- |
|
|
| REC_DEVICE | required | Adresse der USB Soundkarte | plughw:1,0 |
|
|
| REMOTE_DIR | required | Zielordner auf dem entfernten Server | <remote_user>@<remote_host>:<remote_path> |
|
|
| REF_FILE_TIME | optional | Laenge einer WAV Datei in Sekunden | 360 |
|
|
| REC_DIR | optional | Ordner, ind dem die WAV Dateien abgelegt werden | ./recordings |
|
|
| REC_PREFIX | optional | Prefix Dateiname WAV Dateien | sums |
|
|
| UPL_DIR | optional | Ordner in dem die MP3 Dateien abgelegt werden | ./upqueue |
|
|
| UPL_SUFFIX | optional | Ordner in dem die MP3 Dateien abgelegt werden | sumsi |
|
|
|
|
## Skripte
|
|
|
|
| Kommando | Aktion |
|
|
| ------------ | ------------------------ |
|
|
| sumsel.sh -s | Simulieren |
|
|
| sumsel.sh -r | Aufnehmen |
|
|
| sumsel.sh -c | Konvertieren + Hochladen |
|
|
|
|
## Betrieb
|
|
|
|
Im Dauerbetrieb laufen zwei Jobs:
|
|
|
|
| Jobtyp | Bezeichnung | Kommando | Betriebsart |
|
|
| ------- |------------------------- | ------------------------------- | -------------- |
|
|
| record | Aufnahme der WAV Dateien | ./sumsel.sh -r -C ./sumsel.conf | endlos |
|
|
| convert | Konvertierung + Upload | ./sumsel.sh -c -C ./sumsel.conf | alle 5 Minuten |
|
|
|
|
Die Jobs können über cron gestartet werden. Das Skript setzt einen Lock und sorgt dafür, dass von
|
|
jeden Jobtyp nur eine Instanz laufen kann. Stellt das Script fest, dass bereits eine Instanz läuft,
|
|
wird die aktuelle Instanz mit der Meldung "LOCK error" beendet.
|
|
|
|
```
|
|
hs@raspi4:~/dev/stage/sumsel $ ./sumsel.sh -c -C ./sumsel.conf
|
|
LOCK error
|
|
```
|
|
|
|
Beispiel für crontab:
|
|
|
|
```
|
|
*/5 * * * * <path>/sumsel.sh -r -C <path>/sumsel.conf >> <path>/sumsel_r.log
|
|
1,10,11,21,31,41,51 * * * * <path>/sumsel.sh -c -C <path>/sumsel.conf >> <path>/sumsel_c.log
|
|
```
|
|
|
|
|
|
|
|
### GIT commands
|
|
* git status
|
|
* git add ...
|
|
* git commit -m "..."
|
|
* git push origin master
|