Warum denn noch eine DVB Seite?

Eigentlich hat es mich gejuckt, auf einem Raspberry Pi 4 mobil fernsehen zu können. Und das war dann doch nicht so einfach.
Wahrscheinlich gibt es schon irgendwo so eine Anleitung dazu, ich habe sie aber nicht gefunden und deswegen diese Anleitung erstellt.
Zum besseren Verständnis fange ich mal bei Adam und Eva an:
Wenn das Internet nur durch langsame Leitungen tröpfelt und mobile Daten schlecht oder gar nicht verfügbar sind, das soll es auch heute noch geben, dann braucht man eine Lösung Inhalte anders empfangen zu können. Heutzutage ist alles digital, damit auch die Verbreitung von Medien über Funk. Wahlweise auf der Erde oder per Satellit. Das nennt sich dann DVB-T2 (http://www.dvb-t2hd.de) und DVB-S2 (https://www.ard-digital.de/empfang/dvb-s), also die 2. Generation.
Grundsätzlich unterscheiden sich die beiden System durch die verwendeten Empfangsmittel, von der Struktur der Nutzung aber nicht, und die beschreibe ich hier.
Vorneweg noch ein Hinweis: Diese Anleitung funktioniert nur für frei empfangbare Inhalte!
Wer also kommerzielle Inhalte schauen will, muss sich ein passendes Gerät kaufen.
Der grundsätzliche Aufbau
Wie kommt der Datenstrom in meinen Computer?
Im Wesentlichen sind das die Antenne und der Empfänger sowie der passende Kernel Treiber dazu.
Ich habe mich für USB Geräte entschieden, weil sie an diversen Geräten betrieben werden können und leicht anzureihen sind, also mehrere Empänger an einem Gerät.
Egal welcher Empfänger zum Einsatz kommt, der Linux Kernel erzeugt mit dem passenden Treiber ein Device dazu:Sind mehrere Empgänger angeschlossen, so wird der Adapter hochgezählt. Unterstützt das Gerät mehrere Empfangsarten (DVB-C2, DVB-T2) dann wird das Frontend hochgezählt./dev/dvb/adapter0/frontend0
Wie suche ich mir einen Sender aus?
Mir perönlich sind zwei Open Source Lösungen bekannt:- TVHeadend (https://tvheadend.org)

Diese Software unterstützt Empfänger mit mehr als einer Empfangsart, allerdings habe ich ihn bei mir nicht zum Laufen gebracht.- Mir fehlte diese Lösung: Error 403 forbidden access ( https://tvheadend.org/d/8481-cannot-access-tvheadend-403-forbidden)
- Bei mir wurden die gefundenen Sender nicht in die Services übernommen.
- VDR (http://tvdr.de)

Den betreibe ich seit Jahren mit vier parallelen Empfängern für DVB-S2, allerdings kann der ausschließlich Frontend0.
Dazu habe ich aber diese Lösung gefunden: Problem mit hybrid DVB-USB-Stick mit zwei frontends
(https://www.vdr-portal.de/forum/index.php?thread/129861-gel%C3%B6st-problem-mit-hybrid-dvb-usb-stick-mit-zwei-frontends/)
Das Ergebnis ist immer eine Streaming-Schnittstelle, die über Netzwerk (LAN/WLAN) genutzt werden muss.- TVHeadend (https://tvheadend.org)
Wie schaue ich mir das Programm an?
Auch hier gibt es viele Lösungen. Ich habe mich für Kodi entschieden (https://kodi.tv)
Die Software läuft auf diversen Plattformen und unterstützt mit dem passenden Plugin auch den VDR.
Diese Kombination läuft stabil und ist leicht reproduzierbar.
Die Umsetzung

Da kommen wir auch schon zu den Problemen, die ich hatte.
- Die Fenster in unserem Haus sind mit einem Wärmeschutz versehen der zwar Wäremstrahlung hinein, aber nur wenig hinaus lässt. Was ich nicht wusste, damit ist der Empfang von DVB-T2 im Haus extrem gedämpft, also praktisch unmöglich.
- Mein Wohnort liegt hinter zwei Hügeln, vom Sendemast aus gesehen. Um überhaupt etwas empfangen zu können, muss die Antenne im Obergeschoß im offenen Fenster stehen.

Die MicroSD Karte habe ich mit den mir passenden Parametern inklusive Lokalisierung und System Update normal erstellt.
Ob der USB-Stick vom Raspberry Pi erkannt wird lässt sich einfach kontrollieren:
lsusbBus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 15f4:0131 HanfTek Astrometa DVB-T/T2/C FM & DAB receiver [RTL2832P]
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Jetzt muss man noch kontrollieren, ob der DVB Empfänger auch vom Kernel unterstützt wird:
ls -l /dev/dvb/drwxr-xr-x 2 root root 140 5. Mai 13:45 adapter0
Und schon sind wir beim nächsten Problem.
- Das Gerät hat zwei Fronends und wir brauchen das Zweite!
ls -l /dev/dvb/adapter0/crw-rw----+ 1 root video 212, 0 5. Mai 13:45 demux0
crw-rw----+ 1 root video 212, 1 5. Mai 13:45 dvr0
crw-rw----+ 1 root video 212, 3 5. Mai 13:45 frontend0
crw-rw----+ 1 root video 212, 4 5. Mai 13:45 frontend1
crw-rw----+ 1 root video 212, 2 5. Mai 13:45 net0
Bei meinem Adapter kann nur der zweite Tuner (frontend1) DVB-T2. Das lässt sich mit dem DVB-Frontend-Tool aus der DVB-Toolbox kontrollieren.
sudo apt install dvb-tools
dvb-fe-tool
Es zeigt die Fähigkeiten des Adapters 0 Frontend 0 an. Also genau den Tuner, den der VDR benutzt.
Da bei meinem Tuner nicht DVB-T2 aufgelistet ist, brauche ich diese Lösung:
(https://www.vdr-portal.de/forum/index.php?thread/129861-gel%C3%B6st-problem-mit-hybrid-dvb-usb-stick-mit-zwei-frontends/)
Da bei meinem Tuner nicht DVB-T2 aufgelistet ist, brauche ich diese Lösung:
(https://www.vdr-portal.de/forum/index.php?thread/129861-gel%C3%B6st-problem-mit-hybrid-dvb-usb-stick-mit-zwei-frontends/)
sudo nano /etc/systemd/system/exchange-dvb-frontends@.service[Unit]
Description=exchange frontends for adapter %i on startup
Wants=dev-dvb-adapter%i-frontend0.device
Wants=dev-dvb-adapter%i-frontend1.device
After=dev-dvb-adapter%i-frontend0.device
After=dev-dvb-adapter%i-frontend1.device
Before=vdr.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/mv -bS .orig /dev/dvb/adapter%i/frontend1 /dev/dvb/adapter%i/frontend0
ExecStart=/bin/mv /dev/dvb/adapter%i/frontend0.orig /dev/dvb/adapter%i/frontend1
[Install]
WantedBy=multi-user.target
sudo nano /etc/udev/rules.d/98-dvb.rulesSUBSYSTEM=="dvb", TAG+="systemd"
sudo systemctl enable exchange-dvb-frontends@0.service
sudo reboot
Danach hat das richtige Frontend die Nummer 0. Mit dem DVB-Frontend-Tool aus der DVB-Toolbox (siehe oben) kann man das kontrollieren.
dvb-fe-tool
Mein USB-Receiver besitzt einen Infrarot Empfänger mit passendem Handsender. Der hat mir für Kodi zu wenig
Tasten. Ich werde also meine Fernbedienung anlernen. Um heraus zu bekommen, welcher Empfänger und welches Protokoll
verwendet werden, brauchen wir ir-keytable.
sudo apt install ir-keytable
Dieses Paket braucht man unbedingt, sonst existiert das Verzeichnis "/usr/lib/udev/rc_keymaps" nicht.
Ohne Parameter werden all Empfänger aufgelistet.
ir-keytable
In meinem Fall nutze ich den Astrometa DVB-T2 und der ist unter rc2 zu erreichen.
Dann schauen wir, ob die Fernbedienung erkannt wird und welches Protokoll die Fernbedienung verwendet.
sudo ir-keytable -s rc2 -c -p all -t
Zum Beispiel
lirc protocol(nec32)
Wichtig ist auch die Default keymap rc-astrometa-t2hybrid
Jetzt brauchen wir noch eine Umsetzung der Scancodes in Tasten.
sudo nano /usr/lib/udev/rc_keymaps/hama-src-4513.toml[[protocols]]
name = "HAMA SRC-4513"
protocol = "nec"
variant = "nec32"
[protocols.scancodes]
0x9b443100 = "KEY_0"
0x9b44a101 = "KEY_1"
0x9b44a202 = "KEY_2"
0x9b44a303 = "KEY_3"
0x9b44a404 = "KEY_4"
0x9b44a505 = "KEY_5"
0x9b44a606 = "KEY_6"
0x9b44a707 = "KEY_7"
0x9b44a808 = "KEY_8"
0x9b44a909 = "KEY_9"
0x9b44001f = "KEY_VOLUMEUP"
0x9b440c15 = "KEY_VOLUMEDOWN"
0x9b441c56 = "KEY_CHANNELUP"
0x9b441742 = "KEY_CHANNELDOWN"
0x9b44460d = "KEY_ENTER"
0x9b441f47 = "KEY_ESC"
0x9b441e0c = "KEY_X"
0x9b441754 = "KEY_MENU"
0x9b441b10 = "KEY_LEFT"
0x9b440a11 = "KEY_RIGHT"
0x9b440e0b = "KEY_UP"
0x9b440e54 = "KEY_DOWN"
0x9b442a0b = "KEY_MUTE"
0x9b441517 = "KEY_POWER"
Dieses neue Keymapping muss aktiviert werden. In der Liste der rc_keymaps ist die Zeile mit der passenden Keymap anzupassen.
Gegebenenfalls ist eine neue Zeile einzufügen.
sudo nano /etc/rc_maps.cfg#* rc-astrometa-t2hybrid astrometa_t2hybrid.toml
* rc-astrometa-t2hybrid hama-src-4513.toml
Die Tastenbelegung lässt sich einfach mit diesem Kommando testen.
sudo ir-keytable -s rc2 -w /usr/lib/udev/rc_keymaps/hama-src-4513.toml -t
Nach einem Reboot können die Scancodes ermittelt werden.
sudo reboot
Nachdem die Hardware nun läuft, kommt die Software. Ich persönlich favorisiere KODI mit dem Plugin zur Anbindung an den VDR.
sudo apt install vdr vdr-plugin-vnsiserver kodi kodi-pvr-vdr-vnsi
Die Kanalliste
Ohne Sendefrequenzen geht beim VDR gar nichts. Mir hat diese Seite dabei weiter geholfen.
http://vdr-wiki.de/wiki/index.php/VDR_mit_DVB-T2_unter_Debian
Zum Scannen der DVB-Frequenzen gibt es aus den bereits installierten DVB-Tools den DVB-Scanner.
Bevor wir aber loslegen können, muss der VDR gestoppt werden. Sonst hat der Scanner keinen Zugriff auf die Hardware.
Bevor wir aber loslegen können, muss der VDR gestoppt werden. Sonst hat der Scanner keinen Zugriff auf die Hardware.
sudo service vdr stop
Weiterhin braucht der Scanner eine Frequenzliste zum Scannen. Für Deutschland gibt es dazu diese Website
http://www.dvb-t2hd.de und unter Downloads
http://www.dvb-t2hd.de/downloads gibt es die aktuelle Liste der DVB-T2 Sendestandorte und Kanäle.
Wie die Startliste aufgebaut ist, erklärt diese Seite. https://www.linuxtv.org/wiki/index.php/Dvbv5-scan Aus beidem zusammen habe ich mir diese Liste erstellt.
Wie die Startliste aufgebaut ist, erklärt diese Seite. https://www.linuxtv.org/wiki/index.php/Dvbv5-scan Aus beidem zusammen habe ich mir diese Liste erstellt.
nano start-channels[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 474000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 482000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 490000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 498000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 506000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 514000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 522000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 530000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 538000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 546000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 554000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 562000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 570000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 578000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 586000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 594000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 602000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 610000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 618000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 626000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 634000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 642000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 650000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 658000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 666000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 674000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 682000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 690000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 698000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 706000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 714000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 722000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 730000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 738000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 746000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 754000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 762000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 770000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 778000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 786000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 794000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 802000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 810000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 818000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 826000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 834000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 842000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 850000000
BANDWIDTH_HZ = 8000000
[CHANNEL]
DELIVERY_SYSTEM = DVBT2
FREQUENCY = 858000000
BANDWIDTH_HZ = 8000000
Jetzt muss die Antenne noch eine gute Empfangsposition haben und dann kann es los gehen.
Ich persönlich musste mit der "Stummelantenne" auf den nächsten Hügel fahren, um überhaupt etwas zu empfangen.
Dann können die gefundenen Kanäle nicht direkt geschrieben werden, sondern müssen erste einmal zwischengespeichert werden.
Dabei werden alle gefundenen Sender angezeigt.
dvbv5-scan -O vdr start-channels -F -o channels.conf
sudo cp channels.conf /var/lib/vdr/channels.conf
Das Programm läuft eine ganze Weile ...Dabei werden alle gefundenen Sender angezeigt.
Sobald die Kanalliste kopiert ist, kann der VDR mit der neuen Liste gestartet werden.
sudo service vdr start
Das war's, wenn jetzt der Kodi gestartet wird, kann er mit der Infrarotfernbedienung gesteuert werden und es kann fern geschaut werden.
Wem das zu umständlich ist, der kann auch einfach den VLC Player (https://www.videolan.org/vlc/) verwenden. Der kann den DVB-T2 Empfänger direkt nutzen. Allerdings kann VLC keine Kanalsuche. Eine Anleitung gibt es hier: https://www.vlc-forum.de/thread/908-tv-empfang-f%C3%BCr-dvb-t-t2-dvb-s/
Wem das zu umständlich ist, der kann auch einfach den VLC Player (https://www.videolan.org/vlc/) verwenden. Der kann den DVB-T2 Empfänger direkt nutzen. Allerdings kann VLC keine Kanalsuche. Eine Anleitung gibt es hier: https://www.vlc-forum.de/thread/908-tv-empfang-f%C3%BCr-dvb-t-t2-dvb-s/

