Sundtek Support Forum
Deutsch => Sundtek MediaTV Pro => Treiber => Thema gestartet von: Tihass1975 am Januar 19, 2025, 09:44:45 Nachmittag
-
Moin Forum und Support,
ich bräuchte mal euer Fachwissen, ich habe hier ein Host auf dem läuft Proxmox, darauf habe ich eine VM mit Debian 12 und Docker, Docker Compose und Portainer installiert und möchte gern den TV-Stick in den TVHeadend Docker Kontainer durchreichen und den Treiber installieren.
Ich habe auf dem Host (Proxmox) die Nodes installiert.
wget http://sundtek.de/media/sundtek_netinst.sh
chmod 777 sundtek_netinst.sh
./sundtek_netinst.sh -createnodes
Busybox installation
Creating static nodes
Das hat auch funktioniert.
root@pve:~# ls /dev/dvb
adapter0 adapter1
root@pve:~#
root@pve:~# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 2659:1210 Sundtek MediaTV Pro III (EU)
Bus 001 Device 002: ID 1a86:55d4 QinHeng Electronics SONOFF Zigbee 3.0 USB Dongle Plus V2
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Dann habe ich den Stick in die VM durchgereicht, einmal habe ich es mit der ID gemacht
usb0 host=2659:1210
Und einmal habe ich den kompletten Port durchgereicht. Und diese Version probiert.
usb0 host=1-6
Bei beiden Versuchen konnte man den USB Stick sehen, aber der /dev/dvb Pfad fehlt.
root@docker:~# lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 2659:1210 Sundtek MediaTV Pro III (EU)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0627:0001 Adomax Technology Co., Ltd QEMU Tablet
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
root@docker:~# ls /dev/dvb
ls: Zugriff auf '/dev/dvb' nicht möglich: Datei oder Verzeichnis nicht gefunden
Wenn ich meine TVHeadend Docker Compose YAML ausführe kommt natürlich eine Fehlermeldung das /dev/dvb nicht vorhanden ist.
---
services:
tvheadend:
image: lscr.io/linuxserver/tvheadend:latest
container_name: tvheadend
environment:
- PUID=0
- PGID=0
- TZ=Europe/Berlin
# - RUN_OPTS= #optional
volumes:
- /mnt/tvheadend/data:/config
- /mnt/tv-aufzeichnungen:/recordings
ports:
- 9981:9981
- 9982:9982
devices:
# - /dev/dri:/dev/dri #optional
- /dev/dvb:/dev/dvb #optional
- /dev/bus/usb:/dev/bus/usb
restart: unless-stopped
networks:
mvl:
ipv4_address: 192.168.178.36
networks:
mvl:
external: true
Jetzt meine Frage, was mache ich falsche, reiche ich den Stick falsch durch ? Muss ich auf der VM auch noch die Nodes installieren ?
Ich danke Euch für Hilfe !
Gruß
Matthias
-
https://sundtek.de/wiki/index.php?title=Docker
Hast Du Dir unsere Notizen dort durchgelesen?
In der virtuellen Maschine muss es /dev/bus/usb geben.
-
Moin,
ich habe jetzt die Nodes vom Host gelöscht, den USB Port in die VM durchgereicht.
root@server:~# ls -l /dev/bus/usb
insgesamt 0
drwxr-xr-x 2 root root 80 22. Jan 18:12 001
drwxr-xr-x 2 root root 80 22. Jan 18:12 002
drwxr-xr-x 2 root root 60 22. Jan 18:12 003
Die Nodes auf der VM installiert.
wget http://sundtek.de/media/sundtek_netinst.sh
chmod 777 sundtek_netinst.sh
./sundtek_netinst.sh -createnodes
Busybox installation
Creating static nodes
root@server:~# ls -l /dev/dvb
insgesamt 0
drwxr-xr-x 2 root root 100 22. Jan 18:14 adapter0
drwxr-xr-x 2 root root 100 22. Jan 18:14 adapter1
TVHeadend mit diesem Compose YAML erstellt
services:
tvheadend:
image: lscr.io/linuxserver/tvheadend:latest
container_name: tvheadend
environment:
- PUID=1000
- PGID=100
- TZ=Europe/Berlin
# - RUN_OPTS= #optional
volumes:
- /srv/dev-disk-by-uuid-70ab5780-c50a-4f11-8da3-253d9b43d0b2/docker/tvheadend/data:/config
# - /mnt/tv-aufzeichnungen:/recordings
ports:
- 9981:9981
- 9982:9982
devices:
# - /dev/dri:/dev/dri #optional
- /dev/dvb:/dev/dvb #optional
- /dev/bus/usb:/dev/bus/usb
restart: unless-stopped
networks:
mvl:
ipv4_address: 192.168.178.33
networks:
mvl:
external: true
Den Treiber im Docker installiert.
docker exec -it tvheadend /bin/sh
wget http://sundtek.de/media/sundtek_netinst.sh
chmod 777 sundtek_netinst.sh
./sundtek_netinst.sh -docker -use-custom-path /config
exit
docker restart tvheadend
Der Stick läuft jetzt einwandfrei mit TVHeadend !
Ich hoffe das Szenario ist jetzt so in Ordnung ? Ich dachte eigentlich das die Nodes zwingend auf dem Host eingetragen sein müssen ?
Gruß
Matthias
// Edit Sundtek, Nodes / nicht Notes
-
Bei Docker müssen die Nodes eigentlich auf dem Host erzeugt werden bevor das Docker System gestartet wird, sonst kann der Treiber eigentlich keine Nodes mit den entsprechenden Major/Minor Nummern im Docker erstellen
-
Das habe ich so versucht, ohne Erfolg !
Kann man das jetzt so lassen, oder ist das Mist ? Vielleicht funktioniert das in diesem Fall so, weil ich den Stick per USB passthrough in die VM gereicht habe ?
-
Wenn Du das System neu startest gibt's auf dem Host kein /dev/dvb und auch keine "dummy" Nodes. Die virtuelle Maschine wird sich dann wohl nicht starten lassen. Das war bis jetzt meine Erfahrung (als Anmerkung, bei LXR Containern ist das besser geregelt).
Wahrscheinlich hattest Du die Nodes auf dem Host vorher bereits erzeugt bevor du das Docker Image gestartet hast. Createnodes im Docker an sich schadet nicht aber bringt auch nichts, der Treiber erzeugt die Nodes ja selber --- wenn er es darf (also entsprechende Berechtigungen hat).
Docker überprüft die existierenden Nodes in /dev vor dem Start des Images und macht wohl eine Liste welche Devicenodes auch im Docker Image verwendet werden dürfen.
-
Das ist tatsächlich so wie du es sagst, nach einem neustart von Proxmox, fliegen die Nodes aus der VM. Ich habe dann nochmal nur nie Nodes auf dem Host neu erstellt, und die VM neu gestartet, das funktioniert leider nicht, obwohl /dev/bus/usb in der VM vorhanden ist. Wenn ich die Nodes auf dem Host und der VM installiere, und den docker neu starte funktioniert alles wie es soll ! Das Problem, wenn ich jetzt den Host einmal neu starte, werden die Nodes vom Host und der VM gelöscht !
Hast du eine Idee warum das so ist ? Ist die Art wie ich die Nodes erstelle, vielleicht falsch ?
Für weiter Hilfe, wäre ich dir sehr dankbar.
Gruß
Matthias
-
https://sundtek.de/wiki/index.php?title=Docker#Device_Nodes_on_the_Host
Auf dem Host kannst Du in der Konfiguration enabledocker=on setzen.
echo "enabledocker=on" > /etc/sundtek.conf
Dadurch erstellt der Treiber die Dummy Nodes und beendet sich sofort, er wird nicht auf die Tuner Hardware zugreifen.
----
Jetzt zur VM:
Der Treiber gibt eine Fehlermeldung aus wenn er die Nodes nicht erstellen kann, schau dir mal die Logfiles an.
Per Konfiguration kann das Logging so eingeschalten werden (das sollte in der VM gemacht werden)
/etc/sundtek.conf
loglevel=max
-
Moin,
ich habe das jetzt mal so ausprobiert.
Auf dem Host
wget http://sundtek.de/media/sundtek_netinst.sh
chmod 777 sundtek_netinst.sh
./sundtek_netinst.sh
echo "enabledocker=on" > /etc/sundtek.conf
In der VM
wget http://sundtek.de/media/sundtek_netinst.sh
chmod 777 sundtek_netinst.sh
./sundtek_netinst.sh
echo "enabledocker=on" > /etc/sundtek.conf
echo "loglevel=max" > /etc/sundtek.conf
Proxmox neu gestartet anschließend docker neu gestartet, die Nodes werden erstellt und das funktioniert soweit, aber der stream ruckelt ganz extrem und macht auch stopptanz !!
In der VM wird ein log file erstellt, unter /var/log/mediasrv.log das ist allerdings leer. Ich hoffe das ist das richtige log file ?
Wenn ich die Treiber vom Host und von der VM deinstalliere, ./sundtek_netinst.sh -u und anschließend wieder die Nodes so erstelle: ./sundtek_netinst.sh -createnodes und anschließend den docker neu starte, läuft das wie es soll, ohne Ruckler !!!!
Wird der Treiber vielleicht nicht richtig beendet ?
Für weiter Hilfe fürs Debugging, bin ich dir sehr dankbar.
-
Schaue dir die CPU Auslastung an.
Schaue dir die Signalstatistik an:
/config/opt/bin/mediaclient --readsignal=0 -d /dev/dvb/adapter0/frontend0
Eventuell auch überprüfen welche Programme auf den Tuner zugreifen
/config/opt/bin/mediaclient --lc
Bezüglich dem Ruckeln würde ich vorrangig das allgemeine System überprüfen (z.B.: CPU zu weit runtergetaktet mit dem ondemand scheduler?)