Open Source Software

Public GitHub.com Repositories

Hausautomation mit Homeassistant

Funkmast

Freifunk, Amateurfunk und ADS-B Funk

Hardware Funkmast:

  • ADS-B 1090 MHz Antenna (1.2m, 8.5dBi) (pimoroni.com)
  • Albrecht Allband Discone-Antenne (RX-Bereiche: 25-1300 MHz)
  • Ubiquiti PicoStation M2 (WLAN-Antenne für Freifunk)

ADS-B:

WLAN:

Angeschlossen an:

  • Raspberry Pi3 mit 2x NooElec NESDR SMArt
  • 1Gb/s Netzwerkanbindung
Compiling TvHeadend

from source with static libffmpeg

Before you start, install some software:

sudo apt-get install build-essential git pkg-config libssl-dev bzip2 wget libavahi-client-dev zlib1g-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev gettext cmake

Get the source code:

cd ~
mkdir -p ~/workspace/
cd ~/workspace/
git clone https://github.com/tvheadend/tvheadend

Compile with / rerun to update:

cd ~/workspace/tvheadend/
make clean
git pull
./configure --enable-libffmpeg_static
make -j8

Replace "8" with amount of CPU Cores.

Run with: 

./build.linux/tvheadend

Hint: use screen to keep control of your tvheadend instance. If you run tvheadend the first time, use

./build.linux/tvheadend -C

More links: TvHeadend Wiki: Building

HTML Quicksheet

Quicksheet für CSS, HTML, JavaScript

  • Sanfte Umbrüche: shy­­
Bilder auf 16:9 zuschneiden

mit GIMP

Ablauf:

  1. Gimp öffnen
  2. Datei öffnen
  3. Bild > Leinwandgröße
  4. 0,5625 x Breite im Taschenrechner ergibt die Höhe

Herleitung Faktor:

  • 0,5625 = 9 / 16 = 1 / (16 / 9)
UDP Paketverlust vermeiden
su 
netstat -su | grep Paketempfangfehler

falls keine Ausgabe erfolgt, ist die Systemsprache vermutlich Englisch:

netstat -su | grep "packet receive errors" 

Falls Ausgabe > 0:

echo 2147483647 > /proc/sys/net/core/rmem_max

Der Wert 2147483647 ist willkürlich und kann von System (RAM) unterschieden werden. Kontrolle, ob der Wert erlaubt ist, mit

cat echo /proc/sys/net/core/rmem_max

Damit der Buffer nach Neustart erhalten bleibt:

nano /etc/sysctl.conf 

dort folgendes anhängen:

net.core.rmem_max=2147483647
PulseEight USB-CEC HDMI Port

Falls beim Einschalten von Kodi der A/V Receiver z.B. auf Eingang "Video" anstatt "SAT" schaltet, kann dies in Kodi mit Einstellungen > Eingabegeräte > libCEC > HDMI Port auf 4 schalten gelöst werden.

Synchronisation mit Syncthing unter Debian

Syncthing via apt-get installieren. 

sudo apt-get install syncthing

Danach als User (z.B. "christian") Syncthing starten:

christian@nzxt:~$ syncthing 

Die Configs anpassen:

nano ~/.config/syncthing/config.xml

Dort nach address suchen und die IP anpassen

0.0.0.0:8384

Dann den Dienst einrichten:

  • Wichtig: "christian" mit dem eigenen Benutzernamen ersetzen

Der Dienst muss als System-Dienst laufen (siehe https://docs.syncthing.net/users/autostart.html#how-to-set-up-a-system-service)

sudo systemctl enable syncthing@christian.service

Und dann den Dienst starten:

sudo systemctl start syncthing@christian.service

Status ausgeben mit:

sudo systemctl status syncthing@christian.service

Webbrowser öffnen: http://localhost:8384

Bluray Disc BD unter Debian Linux brennen

Benötigte Software-Pakete:

sudo apt-get install brasero brasero-cdrkit cdrskin dvd+rw-tools growisofs
  1. Mit Brasero ein ISO (Abbild) erstellen, z.B. BACKUP001.iso (max. 25GB)
  2. cdrskin -v dev=/dev/sr1 -dao /home/christian/Downloads/Brennen/CCMBU-20160510-20170518.iso

Quellen / Referenzen: Debian Wiki

VPN mit Programmen nutzen

Einem Prozess eine bestimme IP-Adresse zuweisen

bind.c herunterladen und unterLinux kompilieren:

wget http://www.ryde.net/code/bind.c.txt -O bind.c
gcc -nostartfiles -fpic -shared bind.c -o bind.so -ldl -D_GNU_SOURCE

Die Fehlermeldung kann ignoriert werden, im Ordner wurde die Datei bind.so erstell.

IP-Adresse der VPN-Verbindung herausfinden:

ip addr

Die tun0-Adresse kopieren und das gewünschte Programm starten. Z.B.:

BIND_ADDR="ip_of_tun0" LD_PRELOAD=./bind.so twinkle

Twinkle kommuniziert nun über den VPN

 

Alternativ:

sudo groupadd vpnrout
sudo iptables -A OUTPUT -m owner --gid-owner vpnroute \! -o tun0 -j REJECT
sudo -g vpnroute transmission-gtk &

für Winden / Pfalz

Wir betreiben einen Freifunk Hotspot in Winden/Pfalz

Weitere Informationen

Plex: Youtube

Youtube Agent für Plex

Vorabeiten:

  • Aktuelle youtube-dl Version
  • Youtube-Videos im Format
    • ./youtube-dl -o "%(uploader)s [%(channel_id)s]/%(playlist_title)s [%(playlist_id)s]/%(playlist_index)s - %(title)s [%(id)s].%(ext)s" -f bestvideo+bestaudio <Playlist-URL>

Absolute Series Scanner:

  • Installation Absolute Series Scanner für Plex
  • (ggf. /var/lib/plexmediaserver/Library/Application Support/Plex Media Server/X-Plex-Token.id anlegen, Inhalt siehe hier)

Youtube Agent:

  • Installation via WebTools UAS http://localhost:33400
  • Plugin-Name "YouTube Series and Movies Metadata Agent"

Plex:

  • Neustart
  • Neue Mediathek anlegen
    • Mediathek-Typ: Serien
    • Name: z.B. "Youtube"
    • Erweitert
      • Scanner: Absolute Series Scanner
      • Agent: YouTubeSeries
      • eigener "YouTube Data API v3" Key
Postgresql Backups

Lokale .pgpass Datei erzeugen:

nano .pgpass
localhost:5432:<dbname>:postgres:password
chmod 600 .pgpass

SQL-Datei erstellen:

pg_dump <dbname> -h localhost -U postgres > backup.sql

Script:

nano backup_db.sh
#!/bin/bash
TS=$(date +"%Y-%m-%d_%H-%M-%S")
DUMP=/home/ckarrie/pgdump_$TS.sql
TAR_DUMP=/home/ckarrie/pgdump_$TS.tar.gz
pg_dump kb2020 -h localhost -U postgres > $DUMP
tar -cpPzf $TAR_DUMP $DUMP
mv $TAR_DUMP /home/ckarrie/sql_backups/
rm $DUMP
chmod ug+x backup_db.sh

in Crontab einfügen:

# m h  dom mon dow   command
  20 12    *  *    *   bash /home/ckarrie/backup_kb2020_db.sh