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

  • Eine eigene hyperion-Konfiguration funktioniert mit meinem neuen Kernel, wenn man nach dem Abspeichern die folgenden 2 Befehle absetzt:


    Code
    1. sed -i 's/3839/1920/g' /root/.hyperion/db/hyperion.db
    2. sed -i 's/2159/1080/g' /root/.hyperion/db/hyperion.db

    Danach muss hyperiond neu gestartet werden. Ich muss noch schauen, warum das so ist, aber mein WAF sinkt gerade ;)

  • Hallo,

    mein letzter Patch war noch nicht ganz wasserdicht. Mit dieser Änderung konnte ich keinen Absturz mehr provozieren. :)


    Schöne Grüße

    Lothar

  • Und ich habe in video.c am Ende der Funktion amlReset noch ein


    Code
    1. sleep(1);
    2. amlSetInt("/sys/class/video/disable_video",0);


    eingebaut, da hier auch schon mal nach einem Sprung z.B. das Video aus blieb mit meinem Ambilight-Kernel.

  • PS: Da läuft dann auch Kodi mit Hardwaredecoder aber leider nicht AV syncron. Und PIP geht leider auch nicht.

    Ich habe auf meinem Ubuntu mit meinem Kernel inzwischen das originale CoreElec-Kodi am laufen. Mit allen Beschleunigungen und allem drum und dran, völlig AV-syncron. Das Umschalten von VDR zu KODI dauert 2 Sekunden und Ambilight funktioniert perfekt mit Hyperion. Dann fehlt nur noch PIP, das überlasse ich aber jojo61.


    jojo61 : Ich würde mich hier gerne nach Deinem Urlaub mit Dir hierüber abstimmen. Das letzte, was ich will, ist, dass die CoreElec-Leute darüber sauer sind, denn die machen einen klasse Job.

  • Es juckt mich in Fingern, mir auch so ein Teil zu kaufen. Was brauche ich denn, um den Odroid mit einer IR-Fernbedienung an- und auszuschalten und vdr und kodi zu steuern? Muss ich dazu die Fernbedienung von hardkernel mit dazu kaufen oder kann ich beliebige Codes von meiner Universalfernbedienung einrichten und nutzen?

    HDMI-CEC würde ich nicht nutzen wollen, weil mein Samsung TV die Menütaste nicht durchreicht.

    Braucht man so einen eMMC Module reader oder reicht eine micro SD-Karte? Ist auch eine Installation auf einer per USB angeschlossenen SSD möglich bzw. kann man von USB booten? Ich würde wenn dann gerne einen vollwertigen VDR bauen und nicht nur einen Client.


    Die verfügbaren Gehäuse finde ich nicht so schick. Bin am Überlegen, ob ich mir das Gehäuse vom Home assistant per 3D-Druck fertigen lasse. Die Dateien dazu gibt es im Netz. Was für Gehäuse verwendet Ihr?

    ACT-620, Asrock B75 Pro3-M, 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.

  • Hallo Dr. Seltsam,


    ich nutze eine Universal-Fernbedienung und ein Gehäuse von KKSB aus Aluminium mit Einschaltknopf. Der Lüfter läuft sogut wie nie. Du kannst den N2+ mit Fernbedienung oder Einschaltknopf einschalten (GPIO). Ich habe VDR auf einer eMMC (sehr empfehlenswert) und CoreElec auf einer SD-Karte (beide im Geräte). Ich kann mit der Fernbedienung zwischen beidem Umschalten und arbeite derzeit daran, das KODI auch unter eMMC zum Laufen zu bekommen. Das funktioniert bereits, ich habe nur noch ein Problem mit den Addons. Das gilt natürlich nicht für CoreElec von SD-Karte). Wenn Deine Fernbedienung RC5 kann, kannst Du den N2+ auch damit einschalten.

    Mit meinem Kernel (https://github.com/beta68/linux) funktioniert hyperion auch bei 4K ohne Probleme.

    Aus meiner Sicht ist das der beste VDR, den ich je hatte (und ich hatte schon einige).

    Das ist das Gehäuse: https://www.amazon.de/KKSB-Aluminiumgehäuse-für-Odroid-Schwarz/dp/B098TSQJB4

    Wenn Du weitere Fragen hast, sehr gerne...


    LG

    beta

  • Wie sieht es mit acpi-wakeup o.ä. aus, damit der Odroid für anstehende Timeraufnahmen automatisch angeht? Oder hast Du ihn 24/7 laufen? Nimmst Du auf eine USB-Festplatte auf oder auf ein Netzlaufwerk? Brauche ich für die FB und das Einschalten etwas Besonderes (Flirc oder etwas, was in Deinem Gehäuse integriert ist) oder gibt einen onboard IR-Empfänger, der das alles kann?

    ACT-620, Asrock B75 Pro3-M, 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.

  • acpi-wakeup funktioniert einwandfrei. Der N2+ hat auch einen Batteriehalter, der die RTC puffert. Bisher habe ich nur Aufnahmen auf mein internes eMMC gemacht, es sollte aber kein Problem sein, das umzubiegen auf eine USB-Festplatte oder ein Netzlaufwerk. Es gibt einen Lirc-Empfänger on-board, der alles kann. Das Einschalten funktionierte bei mir unter Ubuntu nicht mit einem RC6-Code, geht aber mit RC5 (siehe Odroid-Forum). Da müsste man noch das uboot ändern (Maskierung stimmt da nicht).

  • Hallo zusammen,


    bei mir klappt RTC Wakeup sowie Einschalten per GPIO Taster auf dem ODROID N2+ einwandfrei.

    Allerdings habe ich das Einschalten per RC5 Fernbedienung nicht hinbekommen. Im normalen Betrieb funktioniert die über den Onboard LIRC Empfänger einwandfrei, ich konnte alle Tasten anlernen. Aufnahmen gehen bei mir auf ein NFS Laufwerk.


    Was bei mir auch nicht klappt ist Wake On LAN unter Ubunutu. Wenn der ODROID runtergefahren wurde, scheint der RJ45 Port abgeschaltet zu sein.


    Mit CoreELEC hat das hingegen geklappt. Die scheinen aber den Bootloader mit einem speziellen Tool dazu angepasst zu haben:

    https://discourse.coreelec.org…feature-inject-bl301/6321

    Leider ist das Tool nicht Open Source.


    beta Klappt das WOL mit Deinem Kernel?


    Schöne Grüße

    Lothar

  • Falls jemand den odroid mit einem DVB-Stick betreiben will, der nicht im Kernel vorhanden ist:


    Diese config config_external_v4l_drivers.gz kann mit meinem Kernel (https://github.com/beta68/linux) verwendet werden. Damit können dann die crazycat-Treiber installiert werden:


    Code
    1. git clone -b extra https://github.com/crazycat69/media_build


    Einziger Nachteil: KODI funktioniert nach Installation der crazycat-Treiber nicht mehr in der chroot-Umgebung, da amlvideodri nicht mehr geladen werden kann. Das bedingt jetzt videobuf-res, das aber mit crazycat's Treiber unresolved symbols hat.

    Wenn aber jemand nur den VDR unter Ubuntu betreiben will. ist das zu verschmerzen.


    Edit: Im Kernel-Makefile muss


    Code
    1. -Werror=incompatible-pointer-types


    auskommentiert werden.

  • Ich habe mir jetzt auch einen N2+ 4GB gekauft und bin erstmal mit Coreelec am Testen. Hier habe ich nun das gleiche Problem wie schon beim Raspi 4: Das Bild ist einfach zu hell und kontrastarm - schwarze Flächen sind nicht dunkel genug. Meine anderen Geräte (Raspi 2 und im VDR eine GT1030) laufen mit "full RGB", also dem Farbraum 0-255.

    Es sieht aber so aus, als wenn der Odroid sich auf diesen Modus nicht einstellen lässt: https://forum.odroid.com/viewtopic.php?t=26003

    vdr mit softhdodroid habe ich noch nicht ausprobiert. jojo61 : welchen Farbraum verwendet Dein Plugin? Nach Blick in den Code finde ich zwar die Funktion SetStudioLevels, aber keinen Code, der dazu auch etwas tut. Aber das heisst wahrscheinlich im Umkehrschluss dennoch nicht, dass das Plugin ohne Studio Level mit vollem Farbraum 0-255 arbeitet?


    Das ganze ist etwas verworren:

    In den Einstellungen meines Samsung LCD UE40F6500 steht der HDMI-Schwarzwert auf 'gering', was dem Farbraum 16-235 entsprechen soll. Das ist die Einstellung, die in allen Optimierungstips als beste Einstellung empfohlen wird. Gleichwohl ist es ein Widerspruch zu dem, was z.B. der Raspi 2 (mit Bootoption hdmi_pixel_encoding=2 ,also full RGB 0-255) liefert.

    Beim Ubuntu-basierten VDR kann ich in Kodi den Farbraum auf limited (16-235) stellen. Dann wird das Bild heller und schwarz wird grau. Schalte ich zusätzlich im TV den HDMI-Schwarzwert auf 'normal' (was 0-255 entspricht) wird das Bild noch heller und milchiger. Ich kriege nur ein gutes Bild, wenn ich am TV 16-235 einstelle und den Zuspieler auf 0-255.

    Ich fasse zusammen:

    TV 0-255 und Zuspieler 0-255: Bild ist zu hell, schwarz ist nicht dunkel genug

    TV 0-255 und Zuspieler 16-235: viel zu helles Bild, schwarz wird zu grau

    TV 16-235 und Zuspieler 0-255: optimales Bild

    TV 16-235 und Zuspieler 16-235: viel zu helles Bild, schwarz wird zu grau

    ACT-620, Asrock B75 Pro3-M, 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.

  • welchen Farbraum verwendet Dein Plugin?

    Ich mache nichts am Farbraum. D.h. es wird in 16-235 ausgegeben so wie es im Stream auch codiert ist.

    Ich habe auch noch nichts gesehen wo man das ändern könnte. Wenn das bei dir nichts gut aussieht dann verstehe ich das nicht.

    Hier ist das Bild an allen Fernsehern optimal wenn ich nichts an dem Farbraum am Ferseher drehe.

    Das Setting StudioLevel ist derzeit nicht aktiv und muss wohl raus.

  • Ich denke, ich weiss woran es liegt. Sowohl der Nvidia-Treiber als auch softhddevice setzen standardmäßig Full RGB. Bei softhddevice heisst der Punkt StudioLevels:

    Code
    1. 0 verwende PC Levels (0-255) mit VDPAU.
    2. 1 verwende Studiolevels (16-235)mit vdpau.

    und ist standardmäßig 0.

    Das Kodi 19.2 auf meinem ubuntu-basierten VDR hat unter System-Anzeige als letzten Punkt unter der Überschrift 'Allgemein' die Einstellungsmöglichkeit "Begrenzten Farbraum (16-235) verwenden". Standardmäßig ist das nicht aktiviert. Bei CoreElec (Kodi 19) und LibreElec (Kodi 18 und 19) habe ich diesen Menüpunkt gar nicht - hat Ubuntu das reingepatcht oder ist die Anzeige dieses Menüpunktes abhängig von der GPU?).


    Weil ich nun also von jeher die Kombination aus Full RGB am Zuspieler und Limited RGB am Fernseher gewohnt war, habe ich entsprechend dunklere Bild über die Helligkeitseinstellung ausgeglichen. Sobald dann ein Zuspieler mit üblichem "Limited RGB" an den AVR angeschlossen wird, ist das Bild am Fernseher (gleicher HDMI-Eingang mit gleichen Einstellungen) naturgemäß zu hell. Beim Raspi 2 konnte ich das durch den Bootparameter hdmi_pixel_encoding=2 ausgleichen und ihn auf Full RGB umstellen. Beim Raspi 4 hat dieser Parameter anscheinend keine Auswirkung, und beim Odroid gibt es gar keine Möglichkeit, ihn auf Full RGB umzustellen. Ich stelle jetzt alles einheitlich auf Limited RGB ein und habe mein Bild mit einem Burosch-Graustufen-Testvideo neu eingestellt.


    Ich könnte mir vorstellen, dass noch mehr Leute in die gleiche Falle getappt sind, denn nicht alle Fernseher schalten den Farbraum automatisch um. Man sollte vielleicht überlegen, bei softhddevice und softhdcuvid StudioLevels standardmäßig auf 1 (Limited RGB) zu setzen. Die deutliche Mehrheit der Nutzer dürfte das Plugin nicht am PC-Monitor, sondern am TV nutzen. Das gleiche gilt für Kodi - es ist mir unverständlich, warum das nicht in allen Versionen konfigurierbar ist.


    Noch ein Wort zur Einstellung der Grafikkarte bzw. den Nvidia-Settings:

    In den Nvidia X Server settings findet man diese Einstellmöglichkeit im Baum der GPU unterhalb von PowerMizer.Der Menüpunkt darunter heisst bei mir HDMI-0. Dort findet man im Reiter Controls die Möglichkeit, die Color Range von Full auf Limited zu ändern.Wenn ich diesen Wiki-Artikel richtig verstehe, sollte man die Grafikkarte aber auf Full RGB lassen, damit sowohl Quellmaterial, das mit 0-255 codiert ist richtig aussieht als auch welches mit 16-235.

    ACT-620, Asrock B75 Pro3-M, 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.

  • So ich habe gerade Version 2.0 eingecheckt. Da ist nun PIP per default enabled. Wer es nicht braucht kann es im Makefile ausschalten.

    PIP läuft leider nur auf dem Ubuntu Kernel und nicht auf dem Kernel den beta bereitgestellt hat. Die von beta integrierten amlogic Module

    sind für PIP leider zu alt. Wer also hyperion-ng nutzen will kann kein PIP nutzen :-(


    Dann habe ich mich nochmal an der Audio/Video sync versucht. Meine Idee war das Audio des Kernel zu nutzen. Nach 2 Tagen entwicklung

    und rumprobieren ist mir dann klar geworden das grosse Teile der Audioverarbeitung im Kernel (noch) nicht implementiert sind. D.h. der audiodsp

    Treiber ist komplett auskommentiert im Kernel. Deswegen habe ich dann an meinem alten Audio Treiber noch ein paar Optimierungen gemacht

    und damit geht das sync nach dem Umschalten nun etwas schneller.


    Viel Spass

    jojo61

  • Deswegen habe ich dann an meinem alten Audio Treiber noch ein paar Optimierungen gemacht

    Was dann hoffentlich irgendwann in den "normalen" Zweig kommt.


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Hallo jojo61 , ich habe deine neue Version mal getestet. Hast Du mal Radio-Sender ausprobiert?

    Bei mir stellt sich das so dar: Schalte ich das erste Mal auf einen Radio-Sender, bekomme ich Ton aber das Bild des letzten Fernsehsenders bleibt stehen. Schalte ich dann auf den nächsten Radiosender, bleibt der Ton weg, dafür bekomme ich das zugehörige Hintergrundbild. Beim Weiterschalten auf den nächsten Radiosender bleibt der Ton weiterhin weg, das Hintergrundbild bleibt. Beim Wechsel auf einen Fernsehsender ist wieder alles OK.


    PS. Ich hatte vor Weihnachten meinen Patch wg. GetVideoSize() nochmal aktualisiert (siehe Post #182)

    Ich hab den jetzt nochmal neu erstellt, kannst Du den noch übernehmen? Danke!