suche nvram.o kernel patch für LinVDR 0.6

  • Hi Folks,


    ich versuche gerade, nvram-wakeup (0.95a-1) auf meinem ASUS P2B zum laufen zu bringen.
    nvram-wakeup -s ... sagt:
    | rtc_day (0x7F) is beyond the end of nvram


    In der Einstellung für das Board (nvram-wakeup-mb.c) sehe ich auch:


    | void asus_p2l97s(struct biosinfo *b)
    | {
    | CHECKSUM(b, 0x6C);
    | b->need_reboot = OFF;
    | b->rtc_time = ON;
    | b->addr_stat = 0x40;
    | b->rtc_day = 0x7F; /* Needs kernel patch */
    | b->shift_stat = 1;
    | }


    So wie ich das verstehe, brauche ich ein gepatchtes Modul nvram.o für den Kernel 2.6.4 (also LinVDR 0.6), und muss beim Systemstart das gepatchte nvram.o laden.


    Ich habe hier ein Debian, aber Kernel 2.4. Selbst kompilieren ist also nicht.
    Ich habe mir die Finger wundgesucht, komme hier aber nicht weiter. Bin ich überhaupt auf dem richtigen Dampfer, wenn ich das gepatchte Modul als Download suche?


    Danke!
    Kristian

  • Hallo Mirko,


    > welchen Patch brauchst du denn?


    wusste nicht, dass es mehrere Patches gibt...
    Mein Problen ist ja der Fehler:
    | rtc_day (0x7F) is beyond the end of nvram


    Wenn ich bis hierhin alles richtig verstanden habe, ist der nötige Patch:


    (Zitat von bistr-o-math von anderer Stelle)
    | ... in <kernel-src>/drivers/char/nvram.c change the
    | line
    | (...)
    |
    | in newer kernels (beginning with 2.4.20) it is the line
    | #define NVRAM_BYTES (128-NVRAM_FIRST_BYTE)
    | which must be changed to
    | #define NVRAM_BYTES 128


    Das so kompilierte nvram.o müsste ich dann dem LinVDR 0.6 beim Systemstart unterschieben... (anderes Thema, das war hier irgendwo beschrieben)


    Grüße
    Kristian

  • Hallo Mirko,


    das funktioniert, danke!! :-)
    Ich kann jetzt von der Konsole aus mit nvram-wakeup die Aufwachzeit setzen. Er wacht auch auf, egal ob ich im BIOS "any day" oder "by date" eingestellt habe. (Entgegen einiger Infos hier, die ich gelesen habe - aber das zu verstehen übersteigt meine Newbie-Kapazität ;-)


    Jetzt grabe ich mich durch die Frage, wie ich das den LinVDR-Timern beibringe und was genau das Skript vdrshutdown damit zu tun hat. Und wo das eigentlich herkommt.


    Aber für heute isses genug %-)


    Grüße
    Kristian

  • Hallo nochmal,


    nvram-wakeup unter der Konsole läuft ja jetzt, aber ich verzweifle am Shutdown.
    Hoffe auf Hilfe- nach ~20 kB Forum-Lesen und Linux-Lernen bin ich am Ende :-(


    Zum Shutdown habe ich bis jetzt begriffen:


    1. Über VDR-Menu->Befehle->Rechner ausschalten:
    ruft er das Skript auf, was unter /etc/vdr/commands.conf angegeben ist. Dem wird aber nicht der eingestellte Timer übergeben -> verfolge ich daher nicht weiter.


    2. Über die Powertaste der Fernbedienung:
    ruft er das Skript auf, was in /etc/init.d/runvdr bei der Option -s angegeben ist. Dem wird der Timer übergeben. Soweit ok.


    Das Skript shutdownvdr funktionierte bei mir nicht.
    Ich wollte das dann von Grund auf kapieren und habe als ersten Versuch ein Skript hinterlegt, was enthält:


    #!/bin/bash
    echo hallo $1
    /usr/bin/svdrpsend.pl hallo $1


    Es passiert aber nichts. Im Logfile (readlog) steht nur als letzter Eintrag: "executing / (...) /myskript"
    außerdem manchmal (nicht immer!)(sinngemäß) "Error: broken pipe"
    Das Fernsehbild zeigt nichts an.


    Meine konkreten Fragen:
    1. Wieso gibt das "Originalskript" shutdownvdr eigentlich den "$EXITSTATUS" zurück, wenn es eh den Rechner herunterfährt? Was ist noch dahinter und wertet den ExitStatus aus?


    2. Wieso funktioniert svdrpsend.pl nicht in dem Skript, wenn es über die Powertaste (Option -s in runvdr) aufgerufen wird?


    Danke für jegliche Geduld %-(
    Kristian