Installation eines VDR+Plugins nativ auf CoreELEC Boxen

  • Der build-Prozess ist für mich in weiten Teilen immer noch ein Buch mit 7 Siegeln. Kann ich ein einzelnes addon kompilieren, ohne dass dabei auch ein komplettes image gebaut wird?

    Das geht. Allerdings ist das Erzeugen der toolchain der wirklich bremsende Faktor falls nur addons compiliert werden sollen. Daran kommt man nicht vorbei.

    Code
    ./build.sh -config CoreELEC-20-ng -addon dvb-latest --addononly

    Unter CoreELEC/target/addons (oder ähnlich) findet sich dann das installierbare addon-zip.


    In Deinem git finde ich unter releases nur images und update-files, aber keine fertig kompilierten addons. Vielleicht könntest Du zumindest für die von Dir gepatchten addons die installationsfertigen zip-Pakete auch bereitstellen?

    Ich denke schon lange darüber nach, die Files in den Releases zu reduzieren. Die ganzen Images sind z.B. nicht unbedingt notwendig, es würden die Update-tar ausreichen. Dann müsste man erst das "echte" CE/LE installieren und dann das Update machen. Meine Hoffnung ist, das die Build-/Upload Zeit stark reduziert würde.

    In dem Zusammenhang könnte ich aber das dvb-latest Addon mit bauen und hochladen lassen.


    Und dann hätte ich auch gleich noch einen Wunsch für dvb-latest: Könntest Du da bitte den Treiber hdpvr (drivers/media/usb/hdpvr) mit anknipsen? Das ist CONFIG_VIDEO_HDPVR.

    Das wollte ich mal eben machen, aber ich verstehe gerade das Build nicht. Das addon will einfach nicht neu gebaut werden weil es wohl schon angeblich irgendwo existiert und ich komme nicht dahinter woran das scheitert.

  • Wie man im Plot schön sehen kann, passiert nach dem Start von sys-devices-virtual-net-docker0.device ca. 24 Sekunden nichts mehr, dann starten cefbrowswer und docker und der VDR


    Ist das bei Dir ähnlich?

    Kann man evtl. den VDR schon ohne Browser starten? Ich hab allerdings keine Abhängigkeit in den systemd units gefunden.

    Hast Du an den systemd units zwischenzeitlich noch was geändert, was beim normalen Update nicht automatisch übernommen wird?

    Das ist bei mir ähnlich. Ich bin aber noch nicht dazu gekommen, das näher zu analysieren. Es liegt an Docker und dem Browser? Das ist zumindest ein Ansatz.

  • In dem Zusammenhang könnte ich aber das dvb-latest Addon mit bauen und hochladen lassen.

    Das wollte ich mal eben machen, aber ich verstehe gerade das Build nicht. Das addon will einfach nicht neu gebaut werden weil es wohl schon angeblich irgendwo existiert und ich komme nicht dahinter woran das scheitert.

    Moin Zabrimus,

    bist Du da weitergekommen? Ich habe ./update.sh -a ausgeführt und versucht, das addon neu zu bauen. Ich kriege hier ebenfalls immer wieder

    Code
    *** WARNING: driver.dvb.dvb-latest-20.4.0.zip already exists. Not overwriting it. ***

    auch wenn ich die Datei im target-Ordner zuvor gelöscht habe. Ich habe sogar schon sämtliche Ordner mit dvb-latest im Namen gelöscht, aber immer wieder das gleiche Ergebnis. Was mir auch auffällt: eine Datei 03-dvb-latest.patch habe ich nirgendwo!

    Wenn die zip-Datei erstellt wird (zumindest wird sie das, wenn ich sie vorher gelöscht hatte) enthält sie aufgrund des fehlenden Patches aber erwartungsgemäß weder den Treiber pvrusb2 noch hdpvr.


    Übrigens:

    Code
    sed -e 's/# CONFIG_VIDEO_PVRUSB2_DVB is not set/CONFIG_VIDEO_PVRUSB2_DVB=y/g' -i $PKG_BUILD/v4l/.config

    Es wäre besser, wenn Du das rausnimmst und den pvrusb2-Treiber ohne DVB-Unterstützung baust. Warum? Die PVRUSB2 kann außer analog nur DVB-T empfangen - das wird aber seit der Umstellung auf DVB-T2 nirgendwo in Deutschland mehr ausgestrahlt, und ich glaube inzwischen auch nirgendwo mehr in Europa. Beim Start erkennt vdr dennoch ein DVB device und öffnet es nutzloserweise - damit ist der analoge Teil, der für pvrinput benötigt wird, dann aber nicht mehr verfügbar. Der Treiber kann nur entweder analog oder digital. Man muss also jedesmal Verrenkungen machen, indem man vdr beim Start explizit nur die DVB devices vorgibt, die verwandt werden dürfen. Sehr viel einfacher wäre es, wenn CONFIG_VIDEO_PVRUSB2_DVB gar nicht erst gesetzt wäre.

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Das ist mir klar. Aber warum wird er weder nach einem git pull noch über den update-Befehl noch während des build-Prozesses heruntergeladen? Ich baue jetzt nochmal ganz neu in einem frisch ausgecheckten Verzeichnis

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Der update.sh checkt nur die (git)pakete, nicht VDRSternELEC selbst. Aber bei einem pull sollte er da sein ...

    Also den bekommst du nur, wenn du VDRSternELEC pullst. Bzw. solltest du bekommen. update.sh oder build.sh wird kein Update von VDRSternELEC selbst getriggert.

  • frisch ausgecheckt und

    Code
    ./build.sh -config CoreELEC-20-ng -addon dvb-latest -addononly

    gemacht.


    VDRSternELEC/patches/CoreELEC/coreelec-20/projects/Amlogic-ce/devices/Amlogic-ng/patches/03-dvb-latest.patch ist vorhanden und enthält die Ergänzung für pvrusb2 und hdpvr.


    Mit dem Patch soll /projects/Amlogic-ce/packages/addons/driver/dvb-latest/package.mk gepatcht werden. Das hat geklappt, die Datei enthält die Zeilen

    Code
      sed -e 's/CONFIG_DVB_DEMUX_SECTION_LOSS_LOG=y/# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set/g' -i $PKG_BUILD/v4l/.config
      sed -e 's/# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set/CONFIG_MEDIA_ANALOG_TV_SUPPORT=y/g' -i $PKG_BUILD/v4l/.config
      sed -e 's/# CONFIG_VIDEO_PVRUSB2_SYSFS is not set/CONFIG_VIDEO_PVRUSB2_SYSFS=y/g' -i $PKG_BUILD/v4l/.config
      sed -e 's/# CONFIG_VIDEO_PVRUSB2 is not set/CONFIG_VIDEO_PVRUSB2=m/g' -i $PKG_BUILD/v4l/.config
      sed -e 's/# CONFIG_VIDEO_PVRUSB2_DVB is not set/CONFIG_VIDEO_PVRUSB2_DVB=y/g' -i $PKG_BUILD/v4l/.config
      sed -e 's/# CONFIG_VIDEO_HDPVR is not set/CONFIG_VIDEO_HDPVR=y/g' -i $PKG_BUILD/v4l/.config

    Dennoch wird nur pvrusb2, nicht aber hdpvr gebaut (fehlt auch in der erzeugten zip-Datei). Hier müsste er mit aufgeführt sein:

    Code
      LD [M]  /home/martin/VDRSternELEC/CoreELEC/build.CoreELEC-Amlogic-ng.arm-20/build/dvb-latest-0f25e6fb13b6bc345218800ad9ac863deb2ee9c8/v4l/helene.ko
      LD [M]  /home/martin/VDRSternELEC/CoreELEC/build.CoreELEC-Amlogic-ng.arm-20/build/dvb-latest-0f25e6fb13b6bc345218800ad9ac863deb2ee9c8/v4l/horus3a.ko

    und am Ende kommt wieder:


    Code
    ALL ADDONS BUILT SUCCESSFULLY
    *** WARNING: driver.dvb.dvb-latest-20.4.0.zip already exists. Not overwriting it. ***

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • bist Du da weitergekommen? Ich habe ./update.sh -a ausgeführt und versucht, das addon neu zu bauen. Ich kriege hier ebenfalls immer wieder

    Ja. Das war einfach nur Unachtsamkeit. Ich habe den Patch immer wieder für CE-19 erzeugen lassen, aber CE-20 bauen. Das ist natürlich Quatsch. Und bei der Meldung muss man das Log genau checken. Es kann sein, daß das Addon gebaut wird und die Meldung später dann trotzdem kommt.

    Ich habe ./update.sh -a ausgeführt

    Das aktualisiert nur die Package-Dateien in CoreELEC/LibreELEC, die nicht in den offiziellen Quellen sind (z.B. die Plugins) und hat mit den Addons nichts zu tun.

    Es wäre besser, wenn Du das rausnimmst und den pvrusb2-Treiber ohne DVB-Unterstützung baust.

    Du wolltest wahrscheinlich einfach nur ein git pull --all machen, oder?


    Es wäre besser, wenn Du das rausnimmst und den pvrusb2-Treiber ohne DVB-Unterstützung baust.

    Den Treiber habe ich durch einen Hack entfernt. Später werde ich das besser machen...

    Das ist mir klar. Aber warum wird er weder nach einem git pull noch über den update-Befehl noch während des build-Prozesses heruntergeladen?

    Das verstehe ich nicht. Das Addon-Build patcht das package.mk für das Addon selbst und während des Builds werden die Original-Sourcen herunterladen, extrahiert. Im package.mk steht dann, daß die .config für den media-build noch gepatchet werden muss.

    Also geht es einmal quer durch den Urwald um den eigentlichen Patch zu machen.


    Code
    CONFIG_VIDEO_PVRUSB2_DVB=y

    Hmm. Damit werden keine Module gebaut, sondern der Treiber landet direkt im Kernel. Ich habe das mal geändert zu

    Code
    CONFIG_VIDEO_PVRUSB2_DVB=m

    Und damit erhalte ich im zip-File des Addons

    Code
    VDRSternELEC/CoreELEC/target/addons/Amlogic-ng/20.4/arm/driver.dvb.dvb-latest/driver.dvb.dvb-latest$ find . -name "*hdp*"
    ./kernel-overlay/lib/modules/4.9.269/updates/driver.dvb.dvb-latest/hdpvr.ko


    Ansonsten bin ich dabei den Github-Workflow zu ändern, daß zumindest das dvb-latest mit gebaut und hochgeladen wird: So das Ziel. Aber das wird heute wohl nix werden, weil ich immer in irgendwelche Probleme laufe.


  • Code
    CONFIG_VIDEO_PVRUSB2_DVB=y

    Hmm. Damit werden keine Module gebaut, sondern der Treiber landet direkt im Kernel. Ich habe das mal geändert zu

    Code
    CONFIG_VIDEO_PVRUSB2_DVB=m

    Und damit erhalte ich im zip-File des Addons

    Code
    VDRSternELEC/CoreELEC/target/addons/Amlogic-ng/20.4/arm/driver.dvb.dvb-latest/driver.dvb.dvb-latest$ find . -name "*hdp*"
    ./kernel-overlay/lib/modules/4.9.269/updates/driver.dvb.dvb-latest/hdpvr.ko

    Nicht pvrusb2 und hdpvr verwechseln!


    Das kann m.E. gar nicht auf m gesetzt werden, denn es steuert nur, ob das aufgrund von CONFIG_VIDEO_PVRUSB2=m gebaute Modul pvrusb2 auch den dvb-Part des Treibers enthält.


    Für das Bauen des hdvr-Treibers ist allein die Option CONFIG_VIDEO_HDPVR entscheidend. Die solltest Du aber auf keinen Fall mit y bauen lassen, sondern als Modul:

    Code
    config VIDEO_HDPVR
    	tristate "Hauppauge HD PVR support"
    	depends on VIDEO_DEV
    	help
    	  This is a video4linux driver for Hauppauge's HD PVR USB device.
    
    	  To compile this driver as a module, choose M here: the
    	  module will be called hdpvr

    Aber ich sehe gerade, Da bist Du schon selbst drauf gekommen :)

    VDR1: ACT-620, Asus P8B75-M LX, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

    VDR2: Odroid N2+ mit CoreELEC und Ubuntu in chroot, WinTV DualHD

    VDR3: Tanix TX3 mit CoreELEC und Ubuntu in chroot, WinTV DualHD

  • Nicht pvrusb2 und hdpvr verwechseln!

    Oje. Da hatte ich wohl das Falsche im Kopf. Ich habe CONFIG_VIDEO_HDPVR=m gesetzt und CONFIG_VIDEO_PVRUSB2_DVB deaktiviert.


    Aktuelle Änderungen:

    - Das komplette Release mit allen Images wird nur noch im ersten Build eines Monats erstellt. Ich überlege noch, ob es sinnvoll ist, das Intervall auf 6-8 Wochen zu erhöhen.

    - Alle anderen Releases bestehen nur noch aus den Release tar, mit denen ein Update gemacht werden kann (entweder von einem älteren VDR*ELEC Image oder von den offiziellen Images von CE/LE).

    - Das addon dvb-latest wird für CE (für LE gibt das Addon gar nicht) auch gebaut und sollte im Release verfügbar sein.


    Wenn alles gut gegangen ist und mir kein Fehler durchgerutscht ist, dann sollte das Release morgen noch vollständig mit allen Images und dem Addon sein. Falls nicht... Nunja. Dann muss ich da wieder ran. Die nächsten Releases in diesem Monat haben dann nur noch die Release tar + das Addon.

  • ich hab seit ein paar Monaten VDRSternElec mit HbbTV im Einsatz und bin sehr zufrieden.

    Eine Kleinigkeit stört mich noch. Der Start des Systems dauert damit sehr lange.

    Ich habe an der systemd unit für den cefbrowser etwas geschraubt. Der Start des Systems sollte jetzt schneller gehen.


    Die einfachste Variante die neue unit zu testen, ist es, die Bestandsunit /storage/.config/system.d/cefbrowser.service mit dem Attachment auszutauschen. Vorher vielleicht noch ein Backup machen ;)


    cefbrowser.service.txt

  • Hallo Zabrimus,


    mit deiner Änderung startet der VDR jetzt nach 11 Sek statt wie vorher nach 34. :)


    Aber:

    Im Hintergrund wird ständig versucht, cefbrowser und Docker zu starten.


    Wenn ich im VDR auf HbbTV gehe, kommt eine Fehlermdelung: Der Browser ist nicht verfügbar


    Nachtrag:
    Exit Code 125 means that the command is used to run the container. For example docker run was invoked in the system shell but did not execute successfully.


    Das war's leider noch nicht.
    Schöne Grüße

    Lothar

  • Sorry,
    ich habe nochmal ein reboot gemacht und jetzt passt's ;)


    Die Startzeit bis VDR ist jetzt bei ca. 11 Sek

    Eine Merkwürdigkeit sehe ich noch; es scheinen zwei Docker gestartet zu werden:


    docker soll um 13:30:06 gestartet werden, was nicht klappt, weil um 13:30:30 schon erfolgreich service.system.docker.service gestartet wurde.


    Code
    CoreELEC:~/.config/system.d # ll | grep docker
    lrwxrwxrwx    1 root     root            83 Feb 26 18:43 docker.service -> /storage/.kodi/addons/service.system.docker//system.d/service.system.docker.service
    lrwxrwxrwx    1 root     root            83 Feb 26 18:43 service.system.docker.service -> /storage/.kodi/addons/service.system.docker//system.d/service.system.docker.service

    Ich hab docker.service gelöscht und nach einen Reboot war's dann OK.

  • ich habe nochmal ein reboot gemacht und jetzt passt's ;)


    Die Startzeit bis VDR ist jetzt bei ca. 11 Sek

    So besser? Jetzt muss man nur ein wenig warten, bevor man versucht eine Seite aufzurufen. Also direkt nach dem Reboot das web-Plugin starten könnte vielleicht nicht klappen. VDR ist schneller, als der Browser/Docker.


    Eine Merkwürdigkeit sehe ich noch; es scheinen zwei Docker gestartet zu werden:

    Wo kommen denn die beiden Docker Services her? Schon seltsam. Tatsächlich habe ich auch beide mir und direkt einen davon gelöscht.

    Code
    ~/.config/system.d/docker.service
    ~/.config/system.d/service.system.docker.service

    Gelöscht habe ich docker.service, weil der nicht starten konnte.

  • Bei mir startet VDR gleich nach dem boot. Sehr selten starte ich Kodi...

    Warum ist vdr-live nach Kodi Start nicht mehr erreichbar? VDR soll doch im Hintergrund weiterlaufen...

  • Bei mir startet VDR gleich nach dem boot. Sehr selten starte ich Kodi...

    Warum ist vdr-live nach Kodi Start nicht mehr erreichbar? VDR soll doch im Hintergrund weiterlaufen...

    Also startest du initial mit VDR, wechselt dann nach Kodi und Live ist nicht erreichbar?

    Läuft VDR denn noch? Siehe hier.


    Ansonsten macht der Switch nur detach was Live daraus macht?

  • Also startest du initial mit VDR, wechselt dann nach Kodi und Live ist nicht erreichbar?

    Ja - richtig.

    Läuft VDR denn noch? Siehe hier.


    Ansonsten macht der Switch nur detach was Live daraus macht?

    Den Wechsel zu Kodi mache ich über OSD -> Befehle -> Start Kodi


    Also damit:

    Code
    /storage/.config/vdropt/commands.conf                                                                                                                                                            
    Start Kodi       : echo "START_PRG=kodi" > /storage/.cache/switch_kodi_vdr

    switch_kodi-vdr ist 0kb groß und leer - komisch - Kodi startet ja...


    Gut, jetzt habe ich /storage/.profile um SWITCH_VDR_SCRIPT=/usr/local/bin/switch_vdr_softhdodroid.sh erweitert.


    Dann müsste dieses Script jetzt über commands.conf aufgerufen werden? Oder wie ist der Zusammenhang?


    Achja,

    Code
    sed -i "/Conflicts/d" /storage/.config/system.d/vdropt.service
    systemctl daemon-reload

    habe ich auch ausgeführt. Erkenne aber keine Veränderung von /storage/.config/system.d/vdropt.service?

  • Dann müsste dieses Script jetzt über commands.conf aufgerufen werden? Oder wie ist der Zusammenhang?

    In der commands.conf steht nur

    Code
    Start Kodi       : echo "START_PRG=kodi" > /storage/.cache/switch_kodi_vdr

    Die ganzen systemd Units und die Zusammenhänge habe ich - meine ich - in diesem Thread schon ausführlich dargelegt.

    Auf jeden Fall wird am Ende das Script /usr/local/bin/switch_kodi_vdr.sh aufgerufen und beim Wechsel von VDR auf KODI ist der Teil relevant.

    Code
    elif [ "${START_PRG}" = "kodi" ]; then
      if [ ! -z ${SWITCH_VDR_SCRIPT} ]; then
        eval ${SWITCH_VDR_SCRIPT} detach
      else
        systemctl stop vdropt
      fi
      systemctl start kodi

    Hier kommt das SWITCH_VDR_SCRIPT ins Rennen. Das wird mit dem Parameter "detach" aufgerufen.

    Und in diesem Script ist nun der Teil relevant

    Code
    elif [ "$1" = "detach" ]; then
        /usr/local/bin/svdrpsend PLUG softhdodroid DETA
        /usr/local/bin/svdrpsend REMO off
        /usr/local/bin/svdrpsend PLUG cecremote DISC
        echo rm pip0 > /sys/class/vfm/map
    fi

    Also wird softhdodroid detached, cecremote abgeschaltet, FB für VDR deaktiviert. Aber VDR selbst sollte weiterlaufen.

    habe ich auch ausgeführt. Erkenne aber keine Veränderung von /storage/.config/system.d/vdropt.service?

    Es kann sein, das dies nur ein Migrationspfad einer alten Version der Unit war. So ganz genau kann ich das nicht mehr nachvollziehen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!