[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Suspend/Resume actions mit ACPI



On 30.Mär 2005 - 19:30:53, Stefan Bund wrote:
> Andreas Pakulat <apaku@gmx.de> writes:
> > On 30.Mär 2005 - 17:05:32, Stefan Bund wrote:
> >> Andreas Pakulat <apaku@gmx.de> writes:
> >> > Analog für Power-Button usw. 
> >> 
> >> und was ist, wenn andere Programme nach /sys/power/state schreiben ?
> >> Das kriege ich so nicht mit. 
> >
> > Wer sollte sowas machen? Mir würde jetzt kein Programm einfallen.
> 
> z.Bsp. klaptopd ... nur ein Beispiel. Der macht das sicher nicht
> direkt aber auf jeden Fall gibt es (im gegensatz zu apm) keine
> Schnittstelle, solche skripte anzulegen.

Soweit ich das sehe reagiert der klaptopd auf diesselben ACPI-Events
wie acpid... Hat aber keine Möglichkeit vor dem Suspend irgendwas
ausführen zu lassen. Andersrum kannst du das mit dem acpid, der
genauso auf diesselben Events reagiert - also wieso benutzt du nicht
acpid und evtl. die laptop-mode-tools anstatt klaptopd? 

> > Davon abgesehen, wenn einer dorthin schreibt muss er dafür Root-Rechte
> > haben, also kanns eigentlich nur ein Daemon sein der mittels
> > /etc/init.d gestartet wurde, oder du warst es selbst. Weiterhin ist
> > ACPI dafür nicht gedacht! Finde dich damit ab. Es gibt keine Lösung
> > mit ACPI für das was du willst.
> 
> Vielleicht habe ich mich falsch ausgedrückt. Ich weiss wirklich nicht,
> wie die internen Zusammenhänge von apmd bzw. acpid sind. Ich weiß nur,
> das man bei apm/apmd eine möglichkeit hat zentral solche Skripte zu
> hinterlegen und bei ACPI anscheinend nicht.

Richtig.

> Wenn das wirklich so ist,
> finde ich das aber wirklich ein *ganz* gravierendes Problem mit
> ACPI. Ich bin immer davon ausgegangen, das ACPI alles kann, was APM
> kann.

Aehm, ACPI != APM und ACPI auch nicht wirklich >=APM... ACPI
funktioniert anders als APM, das ist nunmal so - das Design ist ein
anderes, finde dich damit ab. Lese mal ein wenig Doku zu acpi
(acpi.sf.net ist ein guter Anfang).

> >> Eben wie bei APM, da wird ja auch bei jedem suspend, egal wie
> >> angestoßen das suspend.d / resume.de Verzeichnis abgearbeitet
> >> ... es ist ja schließlich egal, *woher* der suspend kommt.
> >
> > ?? Hmm, also wenn du ein echo mem > /sys/power/state machst, führt APM
> > die Skripte aus und schickt den Rechner danach in den Suspend? Das
> > würde mich ja dann doch wundern, denn das echo geht eigentlich direkt
> > an den SWSuspend Treiber im Kernel und der fängt eigentlich auch
> > sofort an den Systemzustand abzuspeichern (in Mem oder Disk)...
> 
> Okok, wie oben geschrieben, ich habe mir jetzt weder den apmd noch den
> acpid sourcecode angesehen.

Brauchst du auch nicht, es ist ganz einfach: ACPI erzeugt Events, du
kannst nun X Daemons laufen haben die auf diese Events warten und dann
jeweils was tun (Skript starten, Kaffee kochen, Rechner hochjagen -
was auch immer). Wenn du z.B. möchtest, dass beim Schliessen des
Deckels ein Suspend durchgeführt wird, kannst du einen Haken im
KCM-Modul des klaptopd machen. Wenn du allerdings mehr Kontrolle
darüber brauchst was Suspend bedeutet, musst du den klaptopd
abschalten und Skripte für acpid schreiben. Welche Events alles
existieren sollte dir die ACPI-Spezifikation sagen, IIRC gibts auch
auf acpi.sf.net einige Infos dazu.

Wie das mit Low-Battery und ähnlichem ist, weiss ich nicht (ob die nun
auch ACPI-Events generieren), aber dafür gibts dann z.B. cpudyn oder
cpufreqd...

> Ist das Problem wirkllich so schwehr verständlich und unlogisch? Mir
> ist es jetzt erstmal egal, was ACPI nun wirklich exakt intern macht
> und wie es funktioniert,

Wenn du ACPI nutzen willst, solltest du zumindestens verstehen wie es
prinzipiell funktioniert. Ich hab z.B. keine Ahnung wie das bei APM
läuft - warum es da einen Suspend-Event gibt - aber ich wills ja auch
gar nicht benutzen...

> ich finde es nur sehr unschön und ziemlich unstabil und unflexibel,
> wenn es unter ACPI keine Möglichkeit gibt, allgemeine suspend /
> resume Aktionen festzulegen.

Das geht auch irgendwie nicht, weil ACPI erstmal nichts mit dem
Suspend oder Resume zu tun hat. Suspend ist eine Sache die der Kernel
macht, nicht ACPI.

> Diese Aktionen festzulegen ist ja auch wirklich sache der
> verschiedenen Paketemaintainer. Die schreiben ihre Skripte nach
> /etc/apm/script.d mit entsprechenden links und sofort funktioniert
> (unter apm ...) alles wunderprächtig (siehe z.Bsp. latop-net ...)

So funktioniert es ebend nicht bei ACPID. Guck mal in dessen Manpage,
da wird dir erklärt was er macht.

Andreas

-- 
Don't kiss an elephant on the lips today.



Reply to: