Installation eines VDR+Plugins nativ auf CoreELEC Boxen

  • Ich habe ein wenig mit wol auf dem Odroid n2+ gespielt. In der /flash/config.ini habe ich die beiden Einträge

    Code
    #------------------------------------------------------------------------------------------------------
    #
    # WOL Setting, 0=off/1=on
    #   Set by CoreELEC Settings
    #
    wol='1'
    enable_wol='1'

    Ob auch usbpower=1 notwendig ist, weiß ich nicht. Es wäre einen Versuch wert.

    Der shutdown liefert die folgenden Ausgaben

    Und ein wakeonlan <hwadress> startet den Odroid N2+ zuverlässig.

  • Leider klappt es bei mir unter CE22 nicht.

    Den Eintrag in der /flash/config.ini hatte ich schon.

    Hast Du die Zeilen der boot.ini?

    Code
    if test "${wol}" != ""; then setenv wol "enable_wol=${wol}"; fi
    ...
    setenv initargs "${rootopt} ${consoleopt} ${fbcon} ${keymap} ${max_freq_cluster} ${wol} ${cec} ${irsetup} ${usbpower} ${gpiopower}"

    Unter CE21 ist die LED an RJ45 aktiv, wenn der Odroid aus ist, das ist unter CE22 nicht der Fall.

    Mit usbpower=1 bleibt die rote Power LED an bzw. hell, sonst ändert sich nichts.

    Hast du in dmesg diese Zeile

    Code
    [    8.737498] bl30_manager: support WOL: 0

    oder steht da eine 1 ?

  • Hast Du die Zeilen der boot.ini?

    Nein. Meine boot.ini sieht so aus:

    Mit dmesg finde ich

    Code
    odroid2:/flash # dmesg | grep -i wol
    [   18.585133] bl30_manager: support WOL: 1
    odroid2:/flash # 

    Was ich zwischendurch auch versucht hatte war

    Code
    ethtool -s eth0 wol g

    ethtool zeigt dann zwar an, daß wol aktiviert wurde, aber aufgewacht ist der trotzdem nicht.

  • Ich habe alle Änderungen (usb_power und enable_wol) rückgängig gemacht und das Ding wacht immer noch auf. Als einzige Änderung bleibt dann nur ethtool übrig.

    Code
    [    8.688868] bl30_manager: Do setup BL30 blob
    [    8.688883] bl30_manager: IR remote wake-up code: 0xb24d4040
    [    8.688887] bl30_manager: IR remote wake-up code protocol: 0x0
    [    8.688889] bl30_manager: IR remote wake-up code mask: 0xffffffff
    [    8.688891] bl30_manager: enable 5V system power on suspend/power off state: 0
    [    8.688893] bl30_manager: gpiopower: 65535 ()
    [    8.688895] bl30_manager: support WOL: 1
  • Ich hab's nochmal probiert, zwischendurch auch mal von Netz genommen.

    Er will einfach nicht.

    Was mich stutzig macht, ist dass die LEDs an der RJ45 Buchse nach dem poweroff aus sind; bei meinem zweiten Odroid unter CE21 blinken dort die LEDs.

  • Was steht denn in deiner inject_bl301.conf?

  • Ich habe mit im CoreElec Repo weiter gesucht und das gefudnen:

    projects/Amlogic-ce/packages/sysutils/inject_bl301/scripts/update-bl301.sh

    Code
    CoreELEC:~ # ./update-bl301.sh -v
    CoreELEC BL301 not installed

    Rufe ich daraus das direkt auf:

  • Was steht denn in deiner inject_bl301.conf?

    Meine sieht nicht viel anders aus:

    Code
    [BL301]
    odroid=
    radxa=
    khadas_vim1s=Khadas_VIM1S
    khadas_vim3=Khadas_VIM3
    khadas_vim4=Khadas_VIM4
    bananapi_m5=Bananapi_M5
    bananapi_m2pro=Bananapi_M2Pro

    Soweit ich mich erinnere, dann braucht das N2+ keine bl301 injection. Aus dem CE-Wiki

    Code
    Hardkernel Odroid
    
    BL301 features for supported Hardkernel Odroid devices are embedded in the installation image. 	

    Ich habe das letzte CE22 Image von heute installiert und teste damit. Ich denke aber nicht, daß die letzte Änderung für den N2+ relevant ist.

    Was mich stutzig macht, ist dass die LEDs an der RJ45 Buchse nach dem poweroff aus sind; bei meinem zweiten Odroid unter CE21 blinken dort die LEDs.

    Bei mir blinkt auch nix und es funktioniert trotzdem.


    Auf dem N2+ hatte ich irgendwann einmal ein petitboot Update gemacht. Das sollte eigentlich keinen Einfluss haben, da ich immer im mmc Modus boote und nicht im spi.

  • Der bl301_manager ist ein Kernelmodul, das die Parameter per /flash/boot.ini und /flash/config.ini bekommt. Allerdings passiert dann noch nicht viel. Erst mit dem Aufruf von /usr/local/bin/setup_bl301.sh werden die Daten in das bl301 geschrieben und die Ausgaben gibt es z.B. im dmesg.
    Es gibt einen systemd service, den ich auf meiner Kiste erst enablen musste (bzw. hier auch erst erstellen):

    Code
    odroid2:~/.config/system.d # cat setup_bl301.service
    [Unit]
    Description=Transfer IR code to bl301 blob
    
    [Service]
    Type=oneshot
    ExecStart=/usr/local/bin/setup_bl301.sh
    
    [Install]
    WantedBy=default.target

    Das Modul kennt die Parameter

    Code
    remotewakeup=
    remotewakeupmask=
    decode_type=
    gpiopower=
    enable_system_power=

    Was ich nicht verstanden habe, wie der Parameter von wol zustande kommt.

    Die Sourcen sind hier zu finden.

  • Was ich nicht verstanden habe, wie der Parameter von wol zustande kommt.

    Der kommt wohl indirekt aus dem DT. In dwmac-meson8b.c wird er aus dem DT gelesen. Das ist in ce-22 unter drivers zu finden. Evtl. hast du ein anderes dtb.img auf deinem Odroid-N2 als ich. Zumindest kommt bei mir ein "support WOL: 0" wenn ich das Kernelmodul für bl301_manager lade und dann setup_bt301.sh aufrufe.

  • Der kommt wohl indirekt aus dem DT. In dwmac-meson8b.c wird er aus dem DT gelesen. Das ist in ce-22 unter drivers zu finden. Evtl. hast du ein anderes dtb.img auf deinem Odroid-N2 als ich. Zumindest kommt bei mir ein "support WOL: 0" wenn ich das Kernelmodul für bl301_manager lade und dann setup_bt301.sh aufrufe.

    Ich glaube, da könntest Du auf der richtigen Spur sein ;).

    Beim Update der CE22 Versionen habe ich schon länger diesen Fehler:

    Da gibt's wohl ein Problem beim Erstellen des dtb.img aus dem XML. Vielleiecht ist das der Grund.

    Aus dem XML

    In /usr/lib/coreelec/dtb-xml gibt's eine Behandlung für wol:

    Code
              wol)
                if check_linux_version 5 15 137; then
                  wol="$( cat /flash/config.ini | awk -F "=" '/^wol=/{gsub(/"|\047/,"",$2); print $2}')"
                  log " migrate WOL setting ($wol) from config.ini"
                  if [ "$wol" == "1" ]; then
                    name_option="on"
                    fdtput $amlogic_dt_id -t i $dtb_file /soc/ethernet@fdc00000 wol 1
                  fi
                fi
                ;;

    Edited 2 times, last by LotharE (December 16, 2025 at 8:19 AM).

  • Updating dtb.img by dtb.xml... /usr/lib/coreelec/dtb-xml: line 501: [: too many arguments

    Mist. Ich erinnere mich. Es gab einen Fehler in der dtb.xml, aber leider finde ich den Thread nicht mehr wieder und ich dachte, das wäre gefixed worden.

    Meine dtb.xml sieht für wol so aus:


    Edit: Doch gefunden.

  • Hi,

    ich habe deine wol Section in der dtb.xml übernommen und wollte damit dtb.img updaten.

    Beide Aufrufe
    /usr/lib/coreelec/dtb-xml -v
    /usr/lib/coreelec/dtb-xml -v -m

    erstellen jeweils die dtb.xml aus der dtb.img, nicht umgekehrt.
    Ausgabe u.a.

    Code
     node:   wol
     status: off
    
     cmd[1]: unchanged, /ethernet@ff3f0000 wol: '0' == '0'

    Ich habe auch mal die dtb.img aus dem Nightly Build von CoreElec genommen, gleiches Verhalten.

  • Ich habe mal mit einer Kopie der dtb.img getestet:

    Code
    CoreELEC:~ # fdtput  /flash/device_trees/g12b_s922x_odroid_n2.dtb -t i /storage/tmp/dtb.img /soc/ethernet@fdc00000 wol 1
    Error at '/storage/tmp/dtb.img': FDT_ERR_NOTFOUND

    Vielleicht kannst Du mir mal Deine dtb.img testweise zur Verfügung stellen, ob es damit bei mir klappt.

  • Success! :thumbup:

    Mit Deiner dtb.img klappt jetzt wol!

    Code
    CoreELEC:~ # dmesg |grep bl30
    [    2.709831] bl30_manager: driver probe
    [    8.686895] bl30_manager: Do setup BL30 blob
    [    8.686926] bl30_manager: IR remote wake-up code: 0x3fbd
    [    8.686932] bl30_manager: IR remote wake-up code protocol: 0x4
    [    8.686935] bl30_manager: IR remote wake-up code mask: 0x37ff
    [    8.686939] bl30_manager: enable 5V system power on suspend/power off state: 0
    [    8.686943] bl30_manager: gpiopower: 65535 (479)
    [    8.686946] bl30_manager: support WOL: 1

    Kleiner Nebeneffekt: Die blaue heartbeat LED blinkt jetzt nicht mehr.

    PS: lässt sich damit wieder einschalten:

    Code
    echo heartbeat > /sys/class/leds/sys_led/trigger

    Edited 2 times, last by LotharE (December 16, 2025 at 2:19 PM).

  • Mit Deiner dtb.img klappt jetzt wol!

    Super :) Jetzt müsste man die dtb decompilieren und versuchen herauszufinden, warum es nicht vorher geklappt hat.

    Edit:
    Ich habe mal meine dtb und die offizielle Version (/flash/device_trees/g12b_s922x_odroid_n2.dtb) decompiliert und verglichen. Und der Unterschied ist marginal

    Code
    -               wol = <0x01>;
    +               wol = <0x00>;
    
                    sys_led {
                            label = "sys_led";
                            gpios = <0x72 0x0b 0x00>;
    -                       linux,default-trigger = "rc-feedback";
    +                       linux,default-trigger = "heartbeat";
                    };

    wol dürfte aus der Einstellung aus der config.ini resultieren.

    ps:
    Ich habe mal den heartbeat ausprobiert und es innerhalb einer Sekunde bereut :(

    Edited 2 times, last by Zabrimus (December 16, 2025 at 3:25 PM).

  • Hey, freue mich über das Ergebnis.

    Werde dann auch mal die "Zabrimus odroid_n2.dtb" für meine CE22-no Installation benutzen. Und dann echo rc-feedback > /sys/class/leds/sys_led/trigger modifizieren.

    Apropos rc - läuft das bei euch unter CE22-no? Bekomme die amremote/eventlircd Geschichte da nicht zum laufen.

    Klick für meine VDR Hard- u. Software

    vdr1: HP Pro Mini 400 G9 i5 12500T 32GB | Ubuntu 24.04.3 LTS yavdr ansible vdr-2.7.7 256GB M.2 2230 | Video: 4TB M.2 Rec (XFS) + 8TB SATA Archiv (exFAT) | 2x WinTV dualHD (DVB-T2/DVB-C) | RP2350 IRMP Pico | One4all URC 1635 FB
    vdr2: Raspberry CM5 | dual M.2 HAT | VDR*ELEC LE13 | 1TB M.2 Rec (XFS) | 2x WinTV dualHD (DVB-T2/DVB-C) | RP2350 IRMP Pico | One4all URC 1635 FB
    vdr3: gleich wie vdr2
    TV: Philips 55OLED805

Participate now!

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