Tuner für Raspberry Pi 5(00)

  • > Normal ist bei Linux (eine übliche Distro meine ich, kein abgespecktes Image), dass die unterstützte Hardware einfach funktioniert. Maximal muss man ein Paket
    > mit Firmware installieren, aber das war. (Das ist doch auch gerade das geile an Linux!)

    Man kann das Ganze eigentlich recht einfach — und historisch — sehen.
    Am Anfang gab’s ausschließlich Kernel-Treiber, weil es gar keine andere Möglichkeit gab. Später kam dann die Möglichkeit hinzu, Treiber auch im Userspace zu betreiben. Genau diese Schnittstellen wurden damals geschaffen, um komplexeren Code nicht im Kernel laufen zu lassen – also dort, wo jeder Fehler gleich das ganze System reißen kann.

    Wir haben uns eben auf diese Userspace-Variante gestützt. Das war kein Zufall, sondern eine bewusste Entscheidung. Leider hat sich über die Jahre kaum jemand die Mühe gemacht, die Userspace-Infrastruktur konsequent weiter auszubauen – von uns mal abgesehen.

    Dass Kernel-Treiber der „Standard“ seien, ist eher historisch gewachsen als technisch begründet. Nur weil etwas im Ring 0 läuft, heißt das noch lange nicht, dass es sinnvoll ist. Im Gegenteil:
    Ein schlecht gepflegter oder schlecht getesteter Treiber im Kernel ist ein massives Sicherheitsrisiko.

    Und was das Argument angeht, dass „unter Linux alles einfach läuft“ – das stimmt nur, solange die Hardware schon drin ist. Sobald neue Geräte auf den Markt kommen, hängt’s meistens: kein Treiber, keine Firmware, kein Support. Die wenigsten Anwender kompilieren sich selbst irgendwas, und genau das ist ja auch nicht Sinn der Sache.

    Zur Pflege: Man schaue sich mal die glibc an – Open Source, seit Ewigkeiten da, also müsste sie doch top gepflegt sein, oder?
    Wer da wirklich mal in den Code eintaucht, wird schnell merken, dass „gut gepflegt“ relativ ist.

    Kurz gesagt:
    Userspace-Treiber sind nicht „gegen den Standard“, sondern genau dafür gedacht – um Systeme stabil, sicher und updatefreundlich zu halten. Nur nutzen diese Möglichkeit halt die wenigsten (abgesehen von jenen die unsere Geräte verwenden ;)

  • Das war's nun aber auch endgültig vom mir und ich entschuldige mich bei Themanstarter für das Chaos.:versteck

    Nix zu entschuldigen, ich habe die Diskussion mit großem Interesse mitverfolgt ;)

    Ein Punkt ist allerdings etwas untergegangen: Wenn ich das richtig mitbekommen habe, hat der Sundtek einen Tuner, der Hauppauge dagegen zwei. Stimmt das?

    Aktuell bin ich nämlich mit den PCIe-Karten im alten/großen Server in der glücklichen Lage, vier Tuner zu haben, und es kommt auch öfters vor, dass ein oder zwei Sendungen aufgenommen werden und gleichzeitig Live-TV gestreamt wird. Eine Verminderung auf zwei Tuner (eine Sendung aufnehmen, parallel dazu eine live streamen) könnte ich mir noch vorstellen (sooo viel nehme ich inzwischen auch nicht mehr auf); aber dass man während einer Aufnahme gar nix live anschauen kann, wäre schon eine arge Einschränkung.

    Ist das so? Das würde meine "Kaufentscheidungs-Waage" eher zugunsten des Hauppauge pendeln lassen... (oder kann man einfach zwei Sundteks reinstecken?) Oder ganz anders?

  • Ja, der Tuner hat zur Zeit nur einen Empfänger. Die Dual DVB-C/C2/T/T2/S/S2 Tuner werden noch getestet (der Empfang wird noch getestet, auch gibt's in der Produktion bei uns Upgrades); Es werden demnächst dann weitere Tuner auf den Markt kommen.

  • Klar kann man 2 USB-Tuner parallel stecken... Oder 4.

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    http://www.easy-vdr.de

  • der Hauppauge dagegen zwei. Stimmt das?

    Ja.
    Steht sogar explizit im Wiki, dass zwei Tuner verbaut sind:

    Quote

    Components Used

    • USB interface: Empia EM28274
    • Demodulator: 2*Silicon Labs Si2168-B40
    • Tuner: 2*Silicon Labs Si2157-A30

    Eine Verminderung auf zwei Tuner (eine Sendung aufnehmen, parallel dazu eine live streamen) könnte ich mir noch vorstellen (sooo viel nehme ich inzwischen auch nicht mehr auf); aber dass man während einer Aufnahme gar nix live anschauen kann, wäre schon eine arge Einschränkung.

    Ein VDR mit nur einem Tuner macht wirklich keinen Spaß, allein schon wegen des EPG-Scan, der gelegentlich laufen muss.

    Funktioniert das auch an einem (externen) USB-Hub? So irre viele freie USB-Ports hat der Pi ja nicht.

    Prinzipiell ja.
    (AFAIK gab es sogar mal einen Dual-Stick/Karte, die intern aus zwei identischen Karten plus USB-Hub bestand.)
    Die Datenrate von einer DVB-Karte ist eigentlich auch nicht besonders viel für USB 2.
    Die Besonderheit gegenüber zB. einem Datenträger ist aber, dass die Daten mit einer vorgegebenen Geschwindigkeit rein kommen und rechtzeitig abgeholt werden müssen, bevor der Puffer auf dem Stick voll ist. Wenn das nicht klappt, hat man Datenfehler, eine zweite Chance gibt es da nicht. Das Timing kann bei mehreren Geräten an einem Bus also eine Herausforderung sein.
    Ob das mit deine Hardware-Zusammenstellung dann funktioniert, müsste man also ausprobieren.

    Die Kombination mit Massenspeichern an einem BUS würde ich vermeiden und den USB3-Port auch, der schaltet während der Übertragung zum DVB-Stick nämlich eh in den USB2-Mode.
    Mehrere DVB-Karten an einem Hub könnte man versuchen, evtl. noch mit einer Maus oder so.

    Wenn ich gerne zwei Tuner hätte, würde ich aber gleich den Dualtuner-Stick nehmen.
    Zumal der Stick wohl vom mehreren hier im Forum erfolgreich verwendet wird und das Preis/Leistungs-Verhältnis stimmt IMHO auch. Da der eh nur USB2 hat könnte man den dann notfalls alleine an den USB2-Port hängen und die USB3-Ports bleiben anderweitig nutzbar.
    Bei Zweifeln einfach mal selber hier im Forum :suche, da gibt es einiges zu dem Stick. (Ich habe nur Sat und daher bei Kabel-Karten nicht der Spezialist.)

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • So, es ging jetzt wie folgt weiter:

    Ich habe den Hauppauge-Stick (wegen: 2 Tuner) in den Pi 500+ gesteckt. Dann kam das hier in dmesg, was meiner Meinung nach ganz gut ausschaut:

    Diese "not found"-Firmware hätte ich gefunden auf https://palosaari.fi/linux/v4l-dvb/firmware/Si2168/ (sogar -02 statt -01, ist aber trotzdem schon elf Jahre alt gemäß dem Dateidatum. Braucht man die denn? Und wo müsste ich die hinkopieren? Anscheinend passiert aber so auch schon was; jedenfalls kriege ich Meldungen à la

    Code
    Dez 03 14:42:45 home02 vdr[21910]: [21916] frontend 0/0 timed out while tuning to channel 2 (ZDF), tp 394
    Dez 03 14:43:06 home02 vdr[21910]: [21920] frontend 1/0 timed out while tuning to channel 8 (EinsExtra), tp 426
    Dez 03 14:43:06 home02 vdr[21910]: [21916] frontend 0/0 timed out while tuning to channel 1 (Das Erste), tp 410

    aber das liegt vermutlich daran, dass ich noch keinen w_scan laufen hab lassen. Auf jeden Fall tut das Dings anscheinend schon mal was.

    Damit ich ernsthaft was damit machen kann, habe ich dann noch vdradmin-am installiert. Das wollte zuerst nicht starten, weil es nach /etc/vdradmin/vdradmind.conf gesucht hat, das Verzeichnis aber vom Paketmanager als /etc/vdradmin-am angelegt wurde. Also habe ich einen symbolischen Link vdradmin->vdradmin-am angelegt. Jetzt findet er sie, aber starten will er immer noch nicht, und zwar wegen (dradmind)[23235]: vdradmin-am.service: Failed to determine user credentials: No such process

    An der Stelle hänge ich jetzt noch ein bisschen fest. Ich werde mal ChatGPT befragen, aber falls hier schon jemand was weiß... in einem anderen Forenbeitrag war die Rede davon, dass man die Pakete libdatetime-format-http-perl und/oder libwww-perl installieren muss - habe ich gemacht, aber ohne Erfolg (und die Fehlermeldung deutet ja auch auf etwas anderes hin).

    Ich werde derweil mal w_scan machen, aber falls jemand einen Tipp hat... besten Dank schon mal!

    Nachtrag: w_scan sagt

    ERROR: Sorry - i couldn't get any working frequency/transponder
    Nothing to scan!!
    was natürlich ziemlich blöd ist. Ich rufe es auf mit

    w_scan -f c -c DE -C UTF-8 -E 0 -o 21 -a /dev/dvb/adapter0/frontend0

    was auf meinem alten Server (mit einer PCIe-Karte) einwandfrei funktioniert.

    Es gäbe offenbar auch noch

    w-scan-cpp/stable 20231015+dfsg-3+b2 arm64
    DVB channel scanner (successor of w_scan)

    aber ob das besser funktioniert?! Kanns ja mal probieren... sonst irgendwelche Ideen?

    Danke nochmal...

    Nach-Nachtrag: Nachdem ich eine Datei namens dvb-demod-si2168-d60-01.fw nach /lib/firmware kopiert habe, findet w_scan jetzt jede Menge Sender. Das ist also erledigt.

    Der vdradmin will anscheinend unter dem User vdradmin laufen, aber es gibt nur vdradmin-am... anscheinend das gleiche Problem wie bei /etc. Ich schau nochmal nach...

    Und noch ein Nach³-Trag:
    vdradmin läuft jetzt (da waren N Inkonsistenzen zwischen "vdradmin" und "vdradmin-am"), allerdings sagt er manchmal, dass er Port 6419 vom vdr nicht findet. aufm alten Server war der offen, aufm Pi jetzt sind nur 2004 und 3000 offen... na, mal sehen.

    letztes Problem ist jetzt, dass der vdradmin kein Antennensymbol zum Streamen anzeigt, obwohl das streamdev-server-Plugin geladen wird. wenn da jemand was weiß...


    ...und auch das geht jetzt, man musste ST_LIVE_ON in vdradmind.oonf setzen.

    Jetzt sortiere ich noch die Channels.conf.... und dann ist alles paletti. Uff!

    Eigentlich könnte ich jetzt das ganze Posting ja wieder löschen ;) aber vielleicht hilfts der Nachwelt, wenn das auch mal jemand machen will und über diesen Beitrag solpert...

    Edited 4 times, last by mhanft (December 3, 2025 at 6:07 PM).

  • und noch was: Leider tritt nach einiger Zeit auf:
    Dez 03 18:44:19 home02 kernel: em28xx 3-1:1.0: failed to get i2c transfer status from bridge register (error=-5)
    Dez 03 18:44:19 home02 kernel: em28xx 3-1:1.0: reading from i2c device at 0xce failed (error=-5)
    Dez 03 18:44:20 home02 vdr[782]: [843] changing pids of channel 224 (Sky Sport F1 HD) from 2047+2047=27:0;2050=qae@106,2052=qaf@106:0:0 to 2047+2047=27:0;2050=qae@106:0:0
    Dez 03 18:44:40 home02 kernel: em28xx 3-1:1.0: writing to i2c device at 0xce failed (error=-5)
    Dez 03 18:44:40 home02 kernel: em28xx 3-1:1.0: writing to i2c device at 0xc8 failed (error=-5)
    Dez 03 18:44:48 home02 vdr[782]: [842] frontend 0/0 timed out while tuning to channel 231 (13th Street HD), tp 386
    Irgendwann wird der Fehler immer häufiger (Sekundentakt). ChatGPT meint, dass das Timing empfindlich ist und der Pi vielleicht nicht schnell genug ist...
    Allerdings ist das jetzt erst nach ein paar Stunden intensiver Benutzung aufgetreten - evtl. ein Wärmeproblem? Ich schalte die Kiste mal über Nacht ab und gucke, obs morgen "kalt" besser wird..

  • Hi,

    Wscan-cpp ist der gepflegte Nachfolger...

    Evtl. hilft das dynamite-Plugin? Damit wird det Tuner ja schlafen gelegt, wenn unbenutzt (vermutlich bleibt einer für EPG-Scan etc aktiv).

    MfG Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    http://www.easy-vdr.de

  • Braucht man die denn?

    Vermutlich ja.
    Ohne Firmware sind eigentlich alle neueren DVB-Tuner nur als Briefbeschwerer zu brauchen.

    Und im Zweifelsfalle brauchst Du auch exakt die verlangte Firmware: https://palosaari.fi/linux/v4l-dvb/…2168-D60/6.0.1/

    Das steht auch alles im von mir weiter oben schon verlinkten Wiki zu der Karte: https://www.linuxtv.org/wiki/index.php…dualHD#Firmware

    Firmware gehört bei Linux eigentlich immer unter /user/lib/firmware (früher /lib/firmware).
    Wenn das nicht geht, könnte es auch /user/lib/firmware/dvb oder so sein, da müsste ich dann aber auch nachschauen, was da jetzt aktuell ist.

    Auf jeden Fall tut das Dings anscheinend schon mal was.

    Nicht wirklich.
    Ohne Firmware läuft die Karte zwar, die Tuner darauf aber nicht.

    Es kann also nichts getunt werden und auf I2C- Anfragen antwortet der Tuner natürlich auch nicht korrekt.

    Gruss
    SHF

    Mein (neuer) VDR:

    Software:
    Debian Wheezy mit Kernel 3.14
    VDR 2.0.7 & div. Plugins aus YaVDR-Paketen
    noad 0.8.6

    Hardware:
    MSI C847MS-E33, onboard 2x1,1GHz Sandybridge Celeron 847, 4GiB RAM
    32GB SSD (System), 4TB 3,5" WD-Red HDD (Video)
    TT FF DVB-S 1.5 FullTS-Mod PWM-Vreg-Mod, DVB-Sky 852 Dual DVB-S2
    Das ganze im alten HP Vectra VLi8-Gehäuse versorgt von:
    PicoPSU-160-XT und Meanwell EPP-150 im ATX-NT-Gehäuse

  • Ja, mit Firmware ging dann alles, auch das "alte" w_scan.

    Blieb nur noch das hier:

    Code
    kernel: em28xx 3-1:1.0: writing to i2c device at 0xce failed (error=-5)

    Da hat mir ChatGPT einiges empfohlen:

    • /etc/modprobe.d/em28xx.conf mit "options em28xx i2c_retry_count=10" (und "options i2c_timeout=250" wäre noch gut gewesen, geht an der Stelle aber nicht)
    • /boot/firmware/cmdline.txt hinten ergänzen mit "usbcore.autosuspend=-1 dwc_otg.fiq_enable=0"

    Vor allem letzteres (dwc...) hat einige Zeit geholfen, aber dann ist der Fehler wieder aufgetreten.
    Als letzte Hoffnung habe ich schließlich den USB-Stick an einen USB-Hub mit eigener Stromversorgung angeschlossen - und siehe da, seit 24 Stunden läuft das Dings jetzt ohne jeglichen Fehler!

    War wohl die Pi-Spannung (trotz des "offiziellen" 27W-Netzteils) nicht so richtig stabil...

    Also ich denke, das passt jetzt so. Danke für alle Tipps!

    (Kommt mir grad noch so ein Gedanke: Der Hub hat ja noch ein paar USB-Löcher. Kann ich da weitere Hauppauges reinstecken und habe dann 4/6/8/10/unendlich Tuner?)

  • (Kommt mir grad noch so ein Gedanke: Der Hub hat ja noch ein paar USB-Löcher. Kann ich da weitere Hauppauges reinstecken und habe dann 4/6/8/10/unendlich Tuner?)

    Also mit 3 Haupauge Dual Tuner hab ich den VDR schon betrieben. das klappte.
    Ich meine aus alten Zeiten konnte der VDR nur mit 16 Tunern gleichzeitig arbeiten?

    Fritzbox SatIP Server (4x DVB-C)
    Wohnzimmer: NUC10I3 - Logitech z-5500 - Philips 55OLED707 - Fritz DVB-C - Ubuntu 22.04 LTS - yavdr ansible
    Schlafzimmer: NUC10I3 - old LG 42" TV - Fritz DVB-C - Ubuntu 22.04 LTS - yavdr ansible
    Recordingingserver: VDR VM - Fritz DVB-C - Ubuntu 22.04 LTS - yavdr ansible
    diverse Test Clients: -Raspberry Pi + openelec, i3 mit Geforce1030

  • Ob aber der Pi das packt...

    Der hat ja nur 1x PCIe x1 so weit ich weiß...

    MfG Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    http://www.easy-vdr.de

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!