Seite 1 von 4 123 ... LetzteLetzte
Zeige Ergebnis 1 bis 10 von 38

RTC Alarm Programmierung über ACPI

Erstellt von STSC, 28.12.2003, 14:40 Uhr · 37 Antworten · 10.676 Aufrufe

  1. #1
    Benutzerbild von STSC

    Registriert seit
    08.01.2003
    Beiträge
    1.220

    RTC Alarm Programmierung über ACPI

    Hier mal paar Infos zu NVRAM (aus readme von nvram-wakeup für linux):

    On some motherboards there is a (little) problem. The changes to
    take effect, you need to restart (not halt) the computer and wait
    until the BIOS runs (don't need to enter the BIOS setup).

    1. Furthermore, it turned out, that some boards with the Award 6.0
    BIOS must be rebooted (only) if the status flag is changed
    (need_reboot = ON_STAT):
    - if we disable the wakeup and poweroff the pc without rebooting
    it, the computer will turn on at the old time once. (it's not
    _that_ bad, but anyway...)
    - if we enable wakeup (and it was disabled before) and poweroff
    the pc without rebooting it, the computer will _not_ wakeup at
    the specified time until it is rebooted once.

    2. The question is: How to make the computer reboot and shutdown
    afterwards automatically? There are two ways to do it. vdrshutdown
    is prepared for both ways: It will
    - do nothing, if some error occurred while executing of
    nvram-wakeup. (E.g. if the time was in the past or not far
    enough in the future)
    - shutdown (halt) the computer if there's no need to reboot.
    - prepare the system (according to A or B, see below) to be
    rebooted and halted, reboot the system.

    My personally preferred method is "Plan B", so maybe you'd like to
    try it first.

    A. I removed Plan A from here. If you want to know about it, read an
    older README file.

    B. There is an other, slightly "more elegant", solution (at least
    in my eyes):
    - this is the hard (actually not so hard any more) part: we need
    some piece of code which could power off the computer
    a) I was told that if you are using grub as boot loader, you
    can just use the 'halt' command of grub. Don't ask me
    more about it since I don't use grub (yet).
    b) Use a modified kernel which does it (see below) it makes
    a direct BIOS call (APM or ACPI) to poweroff.
    c) Use a program which shortens the poweroff pins of the
    mainboard via an external circuit. (this is already
    contributed, I just have to take a look at it and include
    it here)
    - if a reboot is needed, we would call lilo with the -R option, so
    the next time (and only the next time) lilo would call this
    small program and poweroff the computer instead of booting the
    whole linux system.

    Here are the details (all needed files are in the reboot subdir):
    - I built a modified kernel (bzImage.2.4.20.poweroff, based on a
    vanilla 2.4.20 kernel, with 386 processor type and both APM and
    ACPI enabled), which would call the power off routine while
    being loaded. It should run on most machines and will only be
    used for the short needed reboot. For all other purposes your
    old kernel will remain untouched.

    Since on some boards ACPI or APM might be broken, you may
    disable one of them with apm=off or acpi=off kernel boot
    parameter respectively.

    - If you like to build your own kernel, you will find the config
    file (config.2.4.20.apm+acpi-poweroff) and the two-lines patch
    for the kernel (apm+acpi.c.patch) in the reboot subdirectory,
    too.

    - If neither APM nor ACPI do work but wakeup works if the PC is
    turned off by hand, the diode-poweroff might help: basicly, it
    is FreeDOS disk image with a Pascal program which shortens the
    power pins of your mainboard via the parallel port. (see
    dioden-poweroff.txt for more information on how exactly it works
    and which circuit you need)


    3. NOTE: I found the following in the user's manual of the ASUS A7M266
    board (Thanks to Thomas Dingermann for the hint):

    ftp://ftp.asuscom.de/pub/ASUSCOM/HAN...a7m266-104.pdf

    "... Automatic Power Up will not work if the system is powered
    down by operating systems such as Windows 98, that have ACPI
    support enabled. ..."

    That means, that on some boards wakeup will not work if ACPI is
    enabled.

  2.  
    Anzeige
  3. #2
    Benutzerbild von STSC

    Registriert seit
    08.01.2003
    Beiträge
    1.220
    Hast keine Idee wie man Windows dazu überreden kann, dass es beim nächsten Neustart automatisch einen Powerdown macht, ohne das Betriebssystem komplett zu laden?

  4. #3
    Benutzerbild von STSC

    Registriert seit
    08.01.2003
    Beiträge
    1.220
    Habe auch eine readme in Deutsch für nvram-wakeup für Linux gefunden:

    http://home.t-online.de/home/hubertu...vdr_wakeup.htm

  5. #4
    Benutzerbild von bohajo

    Registriert seit
    24.12.2003
    Beiträge
    21
    Keine Idee für Windows. Vielleicht über einen Bootmanager, den
    man vor dem Shutdown mit einer Datei konfigurieren kann.

    Die neue BETA vom Scheduler probiere ich erst morgen.
    Bis dahin überlege ich auch nochmal wegen RTC Alarm.
    Die Readme's von LINUX werde ich mir jetzt mal reinziehen.

    Und dann geht es ab zum Kuchen essen :spezial:

    Bis denn.

  6. #5
    Benutzerbild von oneSTone o2o

    Registriert seit
    12.12.2002
    Beiträge
    4.322
    STSC, du schreibst die Weckzeit direkt in das NVRAM? Ich gebe dir den Tipp, dass du alternativ die Verwendung der entsprechenden APM- bzw. ACPI-BIOS-Funkition benutzen solltest. Den ich kenne nämlich die Lösung des Problems einiger Forenmitglieder hier:

    Problem: RTC-Alarm erst nach einem Reboot aktiv.

    Und zwar leigt das daran, dass die Weckzeit in der NVRAM-Checksumme berücksichtigt sein muss. Und diese Checksumme kann auf verschiedenen Zeitpunkten erzeugt werden:

    1. Beim Start des PCs während des BIOS POST - das ist bei obigen Probkemverhalten so.
    2. Beim Ausschalten des PCs innerhalb der ACPI/APM-Poeroff-Routine des BIOS - das ist so bei den Leuten bei den der PVR-Scheduler funktioniert
    3. Wenn man die RTC-Zeit über die APM-BIOS-Routine setzt
    4. Wenn man die RTC-Zeit über die ACPI-BIOS-Routine setzt

    Die entprechende BIOS-Routine berechnet dabei die Checksumme, und erst dadurch wird der Wakeupevent aktiviert. Lösung 3 bzw. 4 sollte immer funktionieren, wenn das ACPI-BIOS keinen Fehler hat. Die ACPI-Implementierung sollte mittlerweile jeder Mainboardhersteller hinbekommen, denn sonst gibts von Microsoft kein HCL-Logo für das Board.

    Ob APM oder ACPI, das hängt wiederum davon ab, in welchem Modus Windows läuft. Deswegen musst du beide Variantzen implementieren und zur Laufzeit entschbeiden, welche Variante benutzt wird. Die direkte Programmierung des NVRAMs solltest du nure als Notanker verwenden. Du musst nicht den gleiuchen Weg gehen, wie die Linux-Leute, benutze die vorhandenen BIOS-Routinen und APM/ACPI-Funktionen, dann ist das Gamze auch für Windows transparent und kompatibel zu zukünftigen Windows-Versionen.

  7. #6
    Benutzerbild von oneSTone o2o

    Registriert seit
    12.12.2002
    Beiträge
    4.322
    Hallo, RTC-Wakeup Programmierung über ACPI:

    http://www.acpi.info/spec20.htm

    STSC, schick mir mal deine Mailadresse, ich habe noch ein kleines RTC-Wakeup-Tool aufgetrieben.

  8. #7
    Benutzerbild von STSC

    Registriert seit
    08.01.2003
    Beiträge
    1.220
    Ich werde mir das mal anschauen!

    Hier auch noch ein Thread dazu:

    http://www.linuxtv.org/mailinglists/.../msg00481.html

  9. #8
    Benutzerbild von bohajo

    Registriert seit
    24.12.2003
    Beiträge
    21
    HI,

    also ich habe mir eben die ACPI Doku angesehen, das sieht nicht
    so aus, als wenn da die brauchbaren Informationen drinstehn.

    Ich habe dann weiter bei Winzigweich auf der Homepage
    in der MSDN Library gesucht und nur für Windows CE
    Funktionen gefunden (SetAlarmTime) die dann die RTC
    bedienen. Allerdings nicht für das "normale" Windows.
    In den MSDN CDs findet man auch nichts.
    Langsam glaube ich, über Windows API geht das nicht.
    Man muß sicher direkt BIOS Funktionen aufrufen. Aber da
    die LINUX Gemeinde auch nix hat, habe ich schon bedenken,
    daß das nicht geht. Werde mal weiter suchen. Es muß doch jemand
    geben, der das schon gemacht hat.

  10. #9
    Benutzerbild von STSC

    Registriert seit
    08.01.2003
    Beiträge
    1.220
    Soweit ich weiß ist es auch nicht in ACPI von WinXP integriert, habe ich irgendwo mal gelesen.
    Man bräucht halt einen erfahrenen BIOS Programmierer, der uns ein Tool schreiben könnte, dass der RTC auch während des Betriebes gesetzt werden kann.

  11. #10
    Benutzerbild von bohajo

    Registriert seit
    24.12.2003
    Beiträge
    21
    Also zum setzen des RTC Alarms habe ich inzwischen folgende
    Infos zum ACPI-BIOS gefunden:

    http://www.heise.de/ct/Redaktion/ciw...ml#Einfuehrung

    In dem Heise-Artikel wird auf
    http://www.microsoft.com/hwdev/archi...IOS/amp_12.asp
    verwiesen. Dort findet man Infos über das ACPI-BIOS. Allerdings
    braucht man Assembler (oder C DLLs als Interface für für VB).
    Das BIOS ist aber wohl von VB aus so nicht anzusprechen. Das soll
    aber evtl. über Windows Management Instrumentation (WMI)
    funktionieren. Da sollen Objekte enthalten sein, die man in VB
    einbinden kann und mit denen man das APM steuern kann.
    Siehe hier:
    http://www.microsoft.com/windows2000...iew.htm?id=751

    Habe das noch nicht probiert, aber schon mal runtergeladen. Den
    WMI Browser habe ich schon laufen gehabt, aber leider keinen
    Durchblick
    Es gibt auch ein WMI SDK (kostenlos) bei Microsoft. Das habe ich
    auch, allerdings noch nicht mit gespielt.
    Da ich im Moment sehr wenig Zeit habe (wohl erst wieder im Februar),
    kann ich das im Moment auch nicht näher untersuchen. Aber
    vielleicht hat ja jemand anderes Lust?

    @STSC
    Gibt es eine neue Version vom PVR Scheduler, in denen die
    Offsetzeit zum abschalten funktioniert? Danke.

    Gruß Joachim

Seite 1 von 4 123 ... LetzteLetzte

Ähnliche Themen

  1. ACPI Modi (S1 - S5)
    Von alROD im Forum FAQ
    Antworten: 6
    Letzter Beitrag: 25.10.2010, 22:00
  2. Epox 8RDA3+ RTC Alarm
    Von willchisum im Forum Hardware generell
    Antworten: 4
    Letzter Beitrag: 24.11.2004, 16:54
  3. [S] Alarm für Cobra 11 vom 14.10.2004
    Von bigblue im Forum Offtopic
    Antworten: 0
    Letzter Beitrag: 21.10.2004, 15:45
  4. Hardware Defekt, wenn ACPI nicht richtig unterstützt?
    Von Ben im Forum Hardware generell
    Antworten: 14
    Letzter Beitrag: 12.02.2004, 14:12
  5. Welche Komponenten unterstützen ACPI S3 (STR)?
    Von Benni im Forum Hardware generell
    Antworten: 2
    Letzter Beitrag: 06.02.2003, 17:19