Wunderbar. Endlich Danke für das Feedback.
Installation eines VDR+Plugins nativ auf CoreELEC Boxen
-
-
Mir fiel da noch was zur Performance ein. CoreElec hat in /usr/lib/systemd/system einen Dienst smp-affinity.service:
Code
Display More[Unit] Description=Set smp_affinity from script Before=kodi.service After=graphical.target ConditionPathExists=/usr/lib/coreelec/smp-affinity.sh [Service] Type=oneshot ExecStart=-/bin/sh /usr/lib/coreelec/smp-affinity.sh RemainAfterExit=yes [Install] WantedBy=kodi.service
Mit systemd stehe ich auf Kriegsfuß. Kann es sein, dass der Dienst erst startet, wenn Kodi gestartet wird? Dann stünden diese Optimierungen ja nicht bereit, solange man direkt in vdr bootet:
Bash
Display More#!/bin/sh # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (C) 2018-present Team CoreELEC (https://coreelec.org) SMP="../smp_affinity" MESONIR="`find /proc/irq/ -name ir-meson`" ETH0="`find /proc/irq/ -name eth0`" VDEC0="`find /proc/irq/ -name vdec-0`" VDEC1="`find /proc/irq/ -name vdec-1`" PREDI="`find /proc/irq/ -name pre_di`" AFIFO0="`find /proc/irq/ -name afifo0`" AOCEC="`find /proc/irq/ -name hdmi_aocec*`" USB3="`find /proc/irq/ -name xhci-hcd:usb1`" IRQ="$AOCEC $ETH0 $USB3 $VDEC0 $VDEC1 $AFIFO0 $MESONIR $PREDI" cpu=1 for i in $IRQ; do if [ -f "$i/$SMP" ];then [ ! -d "/sys/devices/system/cpu/cpu$cpu" ] && cpu=1 aff=$((1 << $cpu)) haff=`printf '%x\n' $aff` echo "echo $haff > $i/$SMP" echo $haff > $i/$SMP cpu=$((cpu + 1)) fi done exit 0
-
Mir fiel da noch was zur Performance ein. CoreElec hat in /usr/lib/systemd/system einen Dienst smp-affinity.service:
Das sieht tatsächlich so aus, als ob das vor Kodi und nicht VDR gestartet wird, allerdings ist mir auch unklar, warum die Einstellungen die Performance beeinflussen sollten. Die IRQ werden verschiedenen Cores zugeordnet. Ich denke, das wird einen Grund haben.
Was du natürlich testen kannst, ist der Aufruf des Scripts /usr/lib/coreelec/smp-affinity.sh irgendwo am Anfang der /storage/.config/autostart.sh unterzubringen. Das ist der schnellste Weg von Kodi/VDR unabhängig zu werden und erstmal zu prüfen, wie hoch der Gewinn ist.
Ansonsten kann ich das auch in das normale Startscript einbauen.
-
Auf meinem chroot-System habe ich den Aufruf der smp-affinity.sh schon ewig in der runvdr drin. Bei VDR*Elec hatte ich im Vergleich immer das Gefühl, dass da Kaugummi im Getriebe ist. Es kam bei deaktiviertem FastSwitch sinifikant häufiger als in chroot zu Fehlern beim Umschalten (Bild lief für einen Moment zu schnell). Du erinnerst Dich vielleicht an die Diskussion mit den Compiler-Optionen. Ich könnte mir vorstellen, dass die smp affinity hier den Unterschied macht. Exakt belegen kann ich es nicht, zumal ich auch ständig Umbauexperimente im softhdodroid-Plugin mache. Aber ich denke es schadet auf keinen Fall.
Vielleicht mögen ja noch ein paar mehr Leute Deinen Umsetzungsvorschlag testen und Feedback geben.
-
Anbei ein korrigierter vtuner-ng Patch zum Betrieb mit CE-Kernel 4.9 der den folgenden Fehler fixed:
CodeMai 21 21:51:49 sat1 vdr[9131]: [9149] ERROR: frontend 0/0: Invalid argument (dvbdevice.c:1677) Mai 21 21:51:49 sat1 kernel: (NULL device *): DVB: adapter 1 frontend 0 frequency 1052000 out of range (51000000..2150000000)
Aufgrund des Fehler fehlten auf einigen Kanälen die EPG-Daten bei mir.
-
Ich könnte mir vorstellen, dass die smp affinity hier den Unterschied macht.
Ich habe den Aufruf in das Start-Script aufgenommen. Schaden tuts ja nicht
Anbei ein korrigierter vtuner-ng Patch zum Betrieb mit CE-Kernel 4.9 der den folgenden Fehler fixed:
Habe ich mich verrechnet/verguckt? Der aktualisierte Patch ist drin.
-
Ich habe den Aufruf in das Start-Script aufgenommen. Schaden tuts ja nicht
Habe ich mich verrechnet/verguckt? Der aktualisierte Patch ist drin.
Manche info-Variablen erwarten beim alten Kernel die Werte in KHz anstatt Hz.
-
Möchte auf meinem zweiten Odroid N2+ 4GB (redundante Testhardware) mal CoreELEC-22-no ausprobieren.
Also: ./build.sh -config CoreELEC-22-no -extra dynamite,channellogos -addon dvb-latest,dvb-tools,network-tools,system-tools auf meinem build System eingetippt.
Der build geht nicht durch:
Code
Display More... INSTALL _amremote (target) >>> _amremote:target seq 403 >>> [397/489] [DONE] install _amremote:target <<< _vtuner-ng:target seq 402 <<< CLEAN _vtuner-ng * Removing /home/rossi/VDRSternELEC/CoreELEC/build.CoreELEC-Amlogic-no.aarch64-22/build/_vtuner-ng-bfbc0dde236be60d2b4d92a0e9e3bc710d66707d ... * Removing /home/rossi/VDRSternELEC/CoreELEC/build.CoreELEC-Amlogic-no.aarch64-22/build/_vtuner-ng-ee896382b82391013728b7d335c49074b244e460 ... * Removing /home/rossi/VDRSternELEC/CoreELEC/build.CoreELEC-Amlogic-no.aarch64-22/qa_checks/_vtuner-ng-* ... UNPACK _vtuner-ng mv: cannot stat '/home/rossi/VDRSternELEC/packages/tools/_vtuner-ng/patches/vtuner-no-5.15.patch.optional': No such file or directory FAILURE: scripts/unpack _vtuner-ng during post_unpack (package.mk) *********** FAILED COMMAND *********** mv ${PKG_DIR}/patches/vtuner-no-5.15.patch.optional ${PKG_DIR}/patches/vtuner-no-5.15.patch ************************************** *********** FAILED COMMAND *********** ${SCRIPTS}/unpack "${PKG_NAME}" "${PARENT_PKG}" ************************************** *********** FAILED COMMAND *********** ${SCRIPTS}/build "${1}" "${PARENT_PKG}" ************************************** FAILURE: scripts/install _vtuner-ng:target has failed! The following log for this failure is available: /home/rossi/VDRSternELEC/CoreELEC/build.CoreELEC-Amlogic-no.aarch64-22/.threads/logs/402.log >>> _vtuner-ng:target seq 402 >>> [398/489] [FAIL] install _vtuner-ng:target The following log for this failure is available: /home/rossi/VDRSternELEC/CoreELEC/build.CoreELEC-Amlogic-no.aarch64-22/.threads/logs/402.log Parallel build failure - see log for details. Time of failure: Wed May 22 17:45:06 UTC 2024 make: *** [Makefile:10: image] Error 1 rossi@ubuntu:~/VDRSternELEC$
-
mv: cannot stat '/home/rossi/VDRSternELEC/packages/tools/_vtuner-ng/patches/vtuner-no-5.15.patch.optional': No such file or directory
Grummel. Das Patch-Handling für die verschiedenen CE Versionen war nur suboptimal oder einfach nur nervig. Gerade bei einem git pull. Das sollte jetzt weg sein.
Mach mal ein git pull. Dann sollten im Verzeichnis packages/tools/_vtuner-ng/patches/ die 3 Dateien existieren
Die entsprechenden Versionen ohne ".optional" werden beim Build gelöscht und sollte keine Probleme machen.
-
Top!
Build läuft jetzt durch. Weiter ausprobiert wird am Wochenende.
-
-
Die Reboot-Probleme von CE22-no lassen sich eindeutig auf die NFS Mount zurückführen. Ein ganz frisches System mit einem Mount in /system/storage/system.d führte nur zu einer Reboot-Schleife.
Der Mount auf der Konsole brachte dann die Erleuchtung: Ich hatte auf dem Server die Exports geändert (neue Platte) und die Konfiguration auf dem Testsystem nicht nachgezogen.
Eine Korrektur führte noch zu einer neuen Schleife, aber danach startete Kodi endlich. Ein Reboot bzw. sogar eine Reboot-Schleife halte ich für eine wenig sinnvolle Fehlerbehandlung von NFS Mounts. Da war CE20 deutlich toleranter. Was passiert denn, wenn der Server nicht erreichbar ist?
Probiere gerade etwas mit CE22-no herum...
Zu einer NFS Mount reboot Schleife kommt es bei mir zu keinem Zeitpunkt.
Alles wunderbar, ich kann von meiner Build VM (IP: .24.137) kopieren.
Das neue System fühlt sich insgesamt schneller an.
-
Zu einer NFS Mount reboot Schleife kommt es bei mir zu keinem Zeitpunkt.
Mist. Dann ist das kein generelles Problem und damit wird keine Lösung gesucht
Ich habe es bisher noch nie geschafft, einen NFS Mount durchzuführen. Kann das am Server liegen? Der Client ist ja nahezu identisch.
-
Genau. 5.15.119. Und softhdodroid läuft mit Ton und Bild. Da ist mir nichts negatives aufgefallen.
Komisch, bei mir kommt nur Ton wenn ich aus Kodi zurück zum VDR wechsele...
Default Start ist VDR bei mir.
Teste mit CE22-no
-
Ich bin wohl einem Missverständnis bei den NFS Mounts aufgesessen. Meine bisherige Annahme
scheint nicht so ganz zu stimmen. Bei den Mount-Units habe ich die Options hinzugefügt
und damit klappt dann endlich alles. Darauf gekommen bin ich, als ich manuell mit mount.nfs gespielt hatte und der es immer mit v4.2 versucht hat.
Jetzt kann ich mir um andere Dinge kümmern. Mir ist mit CoreELEC-no aufgefallen, daß dri devices existieren
Codeodroid2:/ # ls -la /dev/dri/ total 0 drwxr-xr-x 3 root root 100 May 9 10:07 . drwxr-xr-x 18 root root 5640 May 26 19:24 .. drwxr-xr-x 2 root root 80 May 9 10:07 by-path crw-rw---- 1 root video 226, 0 May 26 19:30 card0 crw-rw-rw- 1 root render 226, 128 May 9 10:07 renderD128
Probiert habe ich dann softhddevice-drm und softhddevice-drm-gles, allerdings mit wenig Erfolg. Ich vermute, da fehlt noch etwas. Nicht, das das notwendig wäre - aufgrund von softhdodroid, aber es interessiert mich.
Eine andere Sache ist allerdings der cefbrowser. Nachdem ich endlich mesa (unter CoreELEC-no) kompiliert bekommen habe, ist es mir gelungen, den Browser ohne Docker zu starten. Ich muss da noch ein wenig spielen und optimieren, weil irgendwas noch nicht rund läuft und ich noch nicht weiß was. Aber auf Docker verzichten zu können war meine große Hoffnung bei CE-no.
-
Komisch, bei mir kommt nur Ton wenn ich aus Kodi zurück zum VDR wechsele...
Mir ist bei dem Ton auch etwas seltsames aufgefallen.
Upgrade von CE20 auf CE22. Addons aktualisiert, reboot in VDR und alles läuft perfekt.
Ein erneuter reboot und Ton ist weg.
Warum sind seit dem 2. reboot Ton-Probleme da?
Ton nach Kodi Start? Tatsächlich....
Gab es nicht eine Diskussion zum Thema Ton im softhdodroid Thread?
-
Gab es nicht eine Diskussion zum Thema Ton im softhdodroid Thread?
-
Ich habe den Thread, den ich meine wieder gefunden:
[VDR*ELEC] Neuinstallation auf eine Dune HD Homatics Box R 4k Plus
Es gibt wohl um spdif, spdif-b....
-
Ich habe den Thread, den ich meine wieder gefunden:
[VDR*ELEC] Neuinstallation auf eine Dune HD Homatics Box R 4k Plus
Es gibt wohl um spdif, spdif-b....Da hatte ich aber alle Probleme mit dem Ton gelöst Poste mal den Output von amixer wenn du keinen Ton hast.
CE-22 scheint da wieder mal an dem Ton etwas anderes zu verstellen
-
Da hatte ich aber alle Probleme mit dem Ton gelöst Poste mal den Output von amixer wenn du keinen Ton hast.
CE-22 scheint da wieder mal an dem Ton etwas anderes zu verstellen
Code
Display More############################################## # CoreELEC # # https://coreelec.org # ############################################## CoreELEC (community): 22.0-P_devel_20240601160353 (Amlogic-no.aarch64) Machine model: Hardkernel ODROID-N2 CoreELEC dt-id: g12b_s922x_odroid_n2 vdr2:~ # amixer Simple mixer control 'Lineout left N switch',0 Capabilities: enum Items: 'None' 'LOLN_SEL_DACL_INV' 'LOLN_SEL_DACL' Item0: 'LOLN_SEL_DACL_INV' Simple mixer control 'Lineout left P switch',0 Capabilities: enum Items: 'None' 'LOLP_SEL_DACL' 'LOLP_SEL_DACL_INV' Item0: 'LOLP_SEL_DACL' Simple mixer control 'Lineout right N switch',0 Capabilities: enum Items: 'None' 'LORN_SEL_DACR_INV' 'LORN_SEL_DACR' Item0: 'LORN_SEL_DACR_INV' Simple mixer control 'Lineout right P switch',0 Capabilities: enum Items: 'None' 'LORP_SEL_DACR' 'LORP_SEL_DACR_INV' Item0: 'LORP_SEL_DACR' Simple mixer control 'AI Sort Result',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 0 Mono: 0 [0%] Simple mixer control 'Audio HAL Format',0 Capabilities: enum Items: 'PCM' 'DTS_EXPRESS' 'DOLBY_DIGITAL' 'DTS' 'DOLBY_DIGITAL_PLUS' 'DTS_HD' 'MULTI_CHANNEL PCM' 'DOLBY_TRUEHD' 'DTS_HD_MA' 'HIFI PCM' 'DOLBY_AC4' 'DOLBY_MAT' 'DOLBY_DDP_ATMOS' 'DOLBY_THD_ATMOS' 'DOLBY_MAT_ATMOS' 'DOLBY_AC4_ATMOS' 'DTS_HP' 'DOLBY_DDP_ATMOS_PROMPT_ON_ATMOS' 'DOLBY_THD_ATMOS_PROMPT_ON_ATMOS' 'DOLBY_MAT_ATMOS_PROMPT_ON_ATMOS' 'DOLBY_AC4_ATMOS_PROMPT_ON_ATMOS' Item0: 'PCM' Simple mixer control 'Audio I2S to HDMITX Format',0 Capabilities: enum Items: 'Stereo PCM' 'DTS RAW Mode' 'Dolby Digital' 'DTS' 'Dolby Digital Plus' 'DTS-HD' 'Multi-channel LPCM' 'Dolby TrueHD' 'DTS-HD MA' 'HIGH SR Stereo LPCM' 'Dolby Digital(Layout B)' 'One Bit Audio' Item0: 'Stereo PCM' Simple mixer control 'Audio I2S to HDMITX Mask',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 15 Mono: 0 [0%] Simple mixer control 'Audio In Source',0 Capabilities: enum Items: 'TDMIN_A' 'TDMIN_B' 'TDMIN_C' 'SPDIFIN' 'PDMIN' 'FRATV' 'TDMIN_LB' 'LOOPBACK_A' 'FRHDMIRX' 'LOOPBACK_B' 'SPDIFIN_LB' 'EARCRX_DMAC' 'RESERVED_0' 'RESERVED_1' 'RESERVED_2' 'VAD' Item0: 'VAD' Simple mixer control 'Audio Out Sink',0 Capabilities: enum Items: 'TDMIN_A' 'TDMIN_B' 'TDMIN_C' 'SPDIFIN' 'PDMIN' 'FRATV' 'TDMIN_LB' 'LOOPBACK_A' 'FRHDMIRX' 'LOOPBACK_B' 'SPDIFIN_LB' 'EARCRX_DMAC' 'RESERVED_0' 'RESERVED_1' 'RESERVED_2' 'VAD' Item0: 'VAD' Simple mixer control 'Audio hdmi-out mute',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Audio spdif format',0 Capabilities: enum Items: 'Stereo PCM' 'DTS RAW Mode' 'Dolby Digital' 'DTS' 'Dolby Digital Plus' 'DTS-HD' 'Multi-channel LPCM' 'Dolby TrueHD' 'DTS-HD MA' 'HIGH SR Stereo LPCM' 'Dolby Digital(Layout B)' 'One Bit Audio' Item0: 'Stereo PCM' Simple mixer control 'Audio spdif mute',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Audio spdif_b format',0 Capabilities: enum Items: 'Stereo PCM' 'DTS RAW Mode' 'Dolby Digital' 'DTS' 'Dolby Digital Plus' 'DTS-HD' 'Multi-channel LPCM' 'Dolby TrueHD' 'DTS-HD MA' 'HIGH SR Stereo LPCM' 'Dolby Digital(Layout B)' 'One Bit Audio' Item0: 'Stereo PCM' Simple mixer control 'Audio spdif_b mute',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'Audio spdifin source',0 Capabilities: enum Items: 'spdifin pad' 'spdifout' 'N/A' 'HDMIRX' Item0: 'spdifin pad' Simple mixer control 'DAC Digital',0 Capabilities: pvolume Playback channels: Front Left - Front Right Limits: Playback 0 - 255 Mono: Front Left: Playback 254 [100%] [0.00dB] Front Right: Playback 254 [100%] [0.00dB] Simple mixer control 'DAC Extra Digital Gain',0 Capabilities: enum Items: '0dB' '6dB' '12dB' '18dB' Item0: '0dB' Simple mixer control 'DTV clk force MPLL',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [off] Simple mixer control 'HDMITX Audio Source Select',0 Capabilities: enum Items: 'Spdif' 'Spdif_b' 'Tdm_A' 'Tdm_B' 'Tdm_C' Item0: 'Spdif' Simple mixer control 'Media Video Delay',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 0 Mono: 0 [0%] Simple mixer control 'SPDIF CLK Fine Setting',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 2000000 Mono: 6143970 [307%] Simple mixer control 'SPDIFIN Audio Type',0 Capabilities: enum Items: 'LPCM' 'AC3' 'EAC3' 'DTS' 'DTS-HD' 'TRUEHD' 'PAUSE' Item0: 'LPCM' Simple mixer control 'SPDIFIN audio samplerate',0 Capabilities: enum Items: 'N/A' '32000' '44100' '48000' '88200' '96000' '176400' '192000' Item0: 'N/A' Simple mixer control 'SPDIF_B CLK Fine Setting',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - 2000000 Mono: 6143970 [307%] Simple mixer control 'audio inskew set',0 Capabilities: enum Items: '0' '1' '2' '3' '4' '5' '6' Item0: '0' Simple mixer control 'audio locker enable',0 Capabilities: enum Items: 'Disable' 'Enable' Item0: 'Enable' Simple mixer control 'spdif out channel status',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - -1 Mono: 0 [0%] Simple mixer control 'spdif_b out channel status',0 Capabilities: volume volume-joined Playback channels: Mono Capture channels: Mono Limits: 0 - -1 Mono: 0 [0%] Simple mixer control 'tdmout_c binv set',0 Capabilities: enum Items: '0' '1' Item0: '0'
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!