Video Treiber für Odroid-N2+ (softhdodroid)

  • Hallo,

    ich möchte hier mal meine Ergebnisse im Anhang bereitstellen mit denen man erstmal nur zu Testzwecken ein

    Kodi-Plugin-Addon für CoreELEC 19 baut das aus softhdodroid, vdr und streamdev-client besteht.


    Das softhdodroid läuft leider nur teilweise. Man sieht das OSD und Audio kommt auch am Anfang.

    Das Video bleibt dunkel.


    Das Kodi-Plugin-Addon wird mit dem CoreELEC build system per Cross-Compile gebaut.

    Auf dem N2 wird das offizielle CoreELEC-Image verwendet.


    Um das softhdodroid feherfrei zu compilieren muss der Sourcecode angepasst werden das beim

    bauen derzeit per Patch passiert. Mir fehlt leider das Know-How für weitere Anpassungen.

    Eigentlich müsste es doch in der original CoreELEC Laufzeitumgebung laufen.

    Vieleicht hat jojo61 ja Lust mal über den Patch zu schauen was ich da vieleicht kaputt gemacht habe.


    Im Anhang gibt es den Patch fürs CoreELEC Build-System und eine kleine Anleitung fürs bauen.

  • Hallo durchflieger

    so ganz verstanden habe ich deinen Setup mit Kodi noch nicht. Das softhdodroid plugin kann nicht gleichzeitig mit dem Kodi laufen.

    Das liegt daran das ich das Audio Device und das Video Device öffne und gleichzeitig hat Kodi das auch offen. Deswegen bleibt da wohl das Audio hängen.

    Bei Video ist es noch etwas komplizierter da Kodi die ganze Anzeigeumgebung per OSD macht und bei abspielen eines Videos erst den Videolayer einschaltet.

    Bei mir ist der Videolayer aber immer aktiv (ist ja immer ein TV BIld da) und das OSD wird nur nach Bedarf aktiviert. Das stört sich dann mit dem Kodi OSD.

    Wenn du also im Kodi das vdr plugin mit dem softhdodroid startest dann siehst du kurz das OSD (wird ja beim start angezeigt) und dann sollte auch Video zu sehen sein. Evtl. musst du dazu erstmal den Kanal wechseln. Aber nach kurzer Zeit aktualisiert Kodi sein OSD und dann geht das softhdodroid OSD kaputt.

    Ausserdem gibt es beim Video noch ein Problem wenn Kodi vorher schon video angezeigt hat. Kodi initialisiert den Videolayer anders als ich und das stört mein plugin. Nach einem Kanalwechsel ist das dann aber wieder ok. Das liegt daran das ich den Kernel den AV Sync machen lasse, bei Kodi das aber extern von Kodi gemacht wird.


    Evtl. kann man diese Probleme lösen. Auf jeden Fall sollte der vdr mit softhdodroid in der Kodi Laufzeitumgebung laufen können. Ob allerdings gleichzeitig mit Kodi, da bin ich mir nicht so sicher.


    PS: Gibt es im Kodi build System kein GLES2 ?

  • Hallo jojo61,

    der vdr läuft natürlich nicht gleichzeitig wie der Kodi.

    Der vdr mit Plugins wird als ein Kodi-Addon-Plugin verpackt und der Kodi nur zur Installation des Addon verwendet.

    Das ganze habe ich aus der vdr-Infrastruktur die schon im offiziellen coreelec existiert abgeleitet wo der vdr nur als Server betrieben wird

    und der Kodi die Ausgabe per vnsi macht.

    Das vdr-client-addon installiert systemd Services und Targets mit dem man zwischen Kodi und vdr einfach switchen kann.


    Um das softhdodroid fehlerfrei im corelec build system zu compilieren musste ich einiges in deinem Sourcecode anpassen da es

    Abhängigkeiten zu X11-Libs, opgengl etc. gibt die im coreelec für N2 nicht zur Verfügung stehen.

    Es gibt GLES2 das auch genutzt wird aber im Source werden auch Funktionen des GLES3 vorausgesetzt.

    Die Änderungen sind halt nur ein oberflächlicher Hack von mir da mir das Know-How zu amlogic-video und opengl fehlt.


    Das ganze ist auch erstmal nur mit dem Ziel entwickelt den vdr mit softhdodroid native in der corelec Umgebung ans laufen zu bekommen

    und eine praktikable Cross-Compile-Toolchain für die weitere Entwicklung einzurichten.


    Ich bekomme auch nach Kanalwechsel kein Bild im vdr angezeigt. Lief der vdr einmal dann geht auch beim Kodi kein video mehr.

    Vermutlich die schon bekannten Initialisierungsprobleme.


    Man kann in der config.ini das Boot-Target in der Variablen coreelec mit systemd.unit=vdr-client.target eintragen womit beim booten des N2 direkt

    der vdr ausgeführt wird ohne das Kodi zum zuge kommt. Leider auch hier kein Video.

  • Man kann in der config.ini das Boot-Target in der Variablen coreelec mit systemd.unit=vdr-client.target eintragen womit beim booten des N2 direkt

    der vdr ausgeführt wird ohne das Kodi zum zuge kommt. Leider auch hier kein Video.

    Kannst du mal ein Log davon posten? Das kann eigentlich nur noch an der Mali Lib liegen. Mit dem CE Kernel läuft es ja hier tadellos. Muss also an einer Lib liegen.


    Dein Patch ist mir leider zu groß weil da noch CE Teile mit drin sind. Kannst du mal einen Patch nur von dem softhdodroid Teil machen und posten?

  • Patch vom softhdodroid ist in der Anlage.

    Weiterhin ein Log angefangen vom Coreelec boot bis zur Ausführung vdr.

    Das Kodi wurde hierbei nicht gestartet.

  • Ich habe mir das Log mal angesehen und da crasht der Kernel in "amstream_vbuf_write". Das sieht mir irgendwie nach einem Problem mit den Modulen aus.

    Hast du den Kernel selber gebaut ?

    Was mich auch etwas wundert, der vdr startet mit einem h264 Stream und schaltet dann sofort auf einen mpeg2 Stream ohne das Daten gekommen sind.


    Ich denke die Probleme mit den epg Daten deiner Recordings sind hier nicht relevant, stören aber im Log. Evtl. mal mit leerem Recording Directory starten.


    PS: Ich schaue mit deinen Patch noch an und baue ihn ein falls es damit auch klappt. Danke erst mal dafür.

  • Das Image und damit auch der Kernel ist die original nightly Version per Download von coreelec gezogen.

    Selbst gebaut wird nur das Addon.


    Der angezeigte Stream kam im Test remote über streamdev client.

    Sync der epg Daten ist dabei abgeschaltet und es gibt keine lokalen Daten. Deshalb die epg Fehler.

  • Meinen Patch besser nicht 1:1 einbauen.

    Der Source muss so geändert werden das tatsächlich nur GLES genutzt wird.

    Bezüge zu OpenGL und X11 müssen raus da Mali/drm das nicht unterstützt.

    Im Makefile sollte die Konfiguration zu externen Libs über pkgconfig erfolgen.

  • Meinen Patch besser nicht 1:1 einbauen.

    Ich habe nun mal deinen Patch eingebaut und im Makefile ein KODIBUILD eingebaut. Unter Ubuntu läuft noch alles einwandfrei. Dort gibt es GLES3 auch.

    Deine Änderung zum Image Upload habe ich auch eingebaut. Konnte es aber nicht testen da ich grade keinen Skin mit Images habe.

    Da ist mir Feedback willkommen um das nun noch unter Ubuntu läuft.

  • jojo61

    Mit dem aktuellen git release lässt sich das softhdodroid jetzt ohne weitere patches bauen.

    Leider gibt es immer noch kein Bild.

    Der vdr lässt sich ansonsten einwandfrei bedienen. OSD geht einwandfrei.

    Ich habe nochmal einen Log angehängt.

    Dies mal ist der Kodi vorher gelaufen allerding wurde dort kein Video abgespielt.

    Dann natürlich erst beenden und dann den vdr gestartet.

    Hier wurde zu erst ein live stream per streamdev wiedergegeben und dann eine Aufzeichnung gestartet.

    Der kritische Logeintrag dürfte dieser sein:


    Mar 25 19:37:03 CoreELEC sh[4289]: AmlCodec open failed.

    Mar 25 19:37:03 CoreELEC sh[4289]: The codec is not open. amlSetVideoAxis


    Die Fehler bezüglich epg-Daten beziehen sich wohl aus Daten von Aufnahmen aus deren info-Datei.

    Die Aufnahmen stammen von einem vdr 2.6.1. Gibts da wohl Inkompatibilitäten zum 2.4.8?

    Sollte aber keine Einfluss auf die Wiedergabe haben.

  • Wer es nachvollziehen möchte.

    Im Anhang gibt es den Patch fürs CoreELEC Build-System und eine kleine Anleitung fürs bauen und ausführen.

  • Könnte es sein das hier notwendige features im coreelec ffmpeg nicht vorhanden sind?

    ffmepg wird nur für audio genutzt und das scheint ja zu laufen. Was mich wundert ist das er den Codec (das device) nicht öffnen kann. Kann es sein das der vdr nicht als root läuft ?


    Schau mal ob es die devices /dev/amstream_vframe und /dev/amstream_vbuf gibt.

  • devices sind da:


    CoreELEC:~ # ls /dev/am*

    /dev/amaudio /dev/amstream_mpts

    /dev/amaudio_ctl /dev/amstream_mpts_sched

    /dev/amaudio_utils /dev/amstream_rm

    /dev/amdolby_vision /dev/amstream_sub

    /dev/amhdmitx0 /dev/amstream_sub_read

    /dev/amstream_abuf /dev/amstream_userdata

    /dev/amstream_dves_av1 /dev/amstream_vbuf

    /dev/amstream_dves_avc /dev/amstream_vbuf_sched

    /dev/amstream_dves_avc_frame /dev/amstream_vframe

    /dev/amstream_dves_hevc /dev/amsubtitle

    /dev/amstream_dves_hevc_frame /dev/amvdac

    /dev/amstream_hevc /dev/amvecm

    /dev/amstream_hevc_frame /dev/amvideo

    /dev/amstream_hevc_sched /dev/amvideo_poll

    /dev/amstream_mpps /dev/amvideocap0


    und läuft als root:


    CoreELEC:~ # ps -ef | grep vdr

    3815 root 0:09 vdr.bin -g /tmp -D- -w 20 -s true --lirc=/run/lirc/lircd --log=3 --dirnames=,,1 --config=/storage/.kodi/userdata/addon_data/service.multimedia.vdr-client-addon/config --resdir=/storage/.kodi/addons/service.multimedia.vdr-client-addon/res --cachedir=/storage/.kodi/userdata/addon_data/service.multimedia.vdr-client-addon/cache --lib=/storage/.kodi/addons/service.multimedia.vdr-client-addon/plugin --video=/storage/data2/video --localedir=/storage/.kodi/addons/service.multimedia.vdr-client-addon/locale -P softhdodroid -a hw:CARD=AMLAUGESOUND,DEV=0 -P streamdev-client

  • und die kernel modules:


    CoreELEC:~ # lsmod

    Module Size Used by

    ir_rc5_decoder 16384 0

    ir_lirc_codec 16384 0

    lirc_dev 24576 1 ir_lirc_codec

    meson_ir 16384 0

    rc_core 40960 5 ir_lirc_codec,meson_ir,lirc_dev,ir_rc5_decoder

    8021q 36864 0

    joydev 24576 0

    hid_logitech_hidpp 36864 0

    mali_kbase 507904 2

    nfsd 364544 3

    hid_logitech_dj 24576 0

    exportfs 16384 1 nfsd

    nfs_acl 16384 1 nfsd

    wireguard 135168 0

    ip6_udp_tunnel 16384 1 wireguard

    udp_tunnel 16384 1 wireguard

    wifi_dummy 16384 0

    amvdec_vp9 147456 0

    amvdec_vc1 77824 0

    amvdec_real 49152 0

    amvdec_ports 176128 0

    v4l2_common 16384 1 amvdec_ports

    videobuf2_dma_contig 20480 1 amvdec_ports

    videobuf2_memops 16384 1 videobuf2_dma_contig

    v4l2_mem2mem 28672 1 amvdec_ports

    videobuf2_v4l2 24576 2 amvdec_ports,v4l2_mem2mem

    videobuf2_core 49152 3 amvdec_ports,v4l2_mem2mem,videobuf2_v4l2

    amvdec_mpeg4 73728 0

    amvdec_mpeg12 131072 0

    amvdec_mmpeg4 49152 0

    amvdec_mmpeg12 57344 0

    amvdec_mmjpeg 36864 0

    amvdec_mjpeg 45056 0

    amvdec_mh264 192512 0

    amvdec_h265 184320 0

    amvdec_h264mvc 65536 0

    amvdec_h264 167936 0

    amvdec_mavs 65536 0

    amvdec_avs 81920 0

    amvdec_avs2 241664 0

    stream_input 221184 14 amvdec_h265,amvdec_mavs,amvdec_mh264,amvdec_h264mvc,amvdec_ports,amvdec_real,amvdec_vp9,amvdec_h264,amvdec_avs2,amvdec_mpeg12,amvdec_avs,amvdec_mmpeg12

    decoder_common 253952 18 amvdec_h265,amvdec_mavs,amvdec_mjpeg,amvdec_mh264,amvdec_mmpeg4,amvdec_h264mvc,amvdec_mmjpeg,amvdec_ports,amvdec_real,stream_input,amvdec_vp9,amvdec_h264,amvdec_avs2,amvdec_mpeg12,amvdec_avs,amvdec_vc1,amvdec_mmpeg12,amvdec_mpeg4

    firmware 28672 18 amvdec_h265,amvdec_mavs,amvdec_mjpeg,amvdec_mh264,amvdec_mmpeg4,amvdec_h264mvc,amvdec_mmjpeg,decoder_common,amvdec_real,stream_input,amvdec_vp9,amvdec_h264,amvdec_avs2,amvdec_mpeg12,amvdec_avs,amvdec_vc1,amvdec_mmpeg12,amvdec_mpeg4

    media_clock 45056 16 amvdec_h265,amvdec_mavs,amvdec_mh264,amvdec_mmpeg4,amvdec_mmjpeg,decoder_common,amvdec_ports,firmware,stream_input,amvdec_vp9,amvdec_h264,amvdec_avs2,amvdec_mpeg12,amvdec_avs,amvdec_vc1,amvdec_mpeg4

    video_framerate_adapter 16384 1 decoder_common

    amlvideodri 24576 0

    videobuf_res 16384 1 amlvideodri

    videobuf_core 32768 2 amlvideodri,videobuf_res

    videodev 290816 6 amlvideodri,v4l2_common,amvdec_ports,videobuf2_core,v4l2_mem2mem,videobuf2_v4l2

    fuse 131072 1

    media 40960 1 videodev

    fbcon 61440 0

    bitblit 16384 1 fbcon

    softcursor 16384 1 bitblit

    font 20480 1 fbcon

  • Ich könnte dir das fertige vdr-client kodi addon bereitstellen.

    Als Image kannst du dir bei coreelec das aktuelle stable 19.4 downloaden und nach deren Anleitung installieren.

    Die weitere Installation ist ja bereits in der Kurzanleitung von mir beschrieben.Das addon zip ist leider schon zu groß um es hier bereitzustellen. Ein Link zum ablegen wäre nötig.

  • jojo61: Vielleicht ist das Problem von durchflieger ähnlich meinem Problem mit SES Demo UDH. Das Bild ist unter CE UBUNTU chroot zwar da, aber kaum sichar, so als hätte jemand die Helligkeit komplett runtergedreht. Nur wenn extrem helle Schriftzüge o.ä. da sind, sieht man es. Vielleicht hat KODI hier noch ein paar Dinge anders voreingestellt (Kontrast, Helligkeit, Farbe o.ä.). Unter Ubuntu funktioniert es ja einwandfrei, daher schließe ich meinen LG-TV z.B. aus.

    Komischerweise habe ich das Problem aber nicht beim Verkaufs-TV QVC ind UHD...

  • Hi,

    StudioLevels Einstellung. 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
    www.easy-vdr.de

Participate now!

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