suspend/resume event
Nate Lawson
nate at root.org
Fri Jan 20 11:52:25 PST 2006
Manfred Lotz wrote:
> Hi there,
> With my Samsung X20 1730 suspend /resume works fine when doing
> acpiconf -s 3. I added /etc/rc.d/moused restart in /etc/rc.resume and
> the touchpad mouse gets awake after resuming. That's great.
>
> However when closing the lid (I set hw.acpi.lid_switch_state=S3) and
> then pressing the power button although suspend/resume works
> fine the mouse won't get restarted. This means /etc/rc.resume and
> presumably /etc/rc.suspend won't get called in this case.
>
> Same happen when pressing Fn-ESC the key for suspend.
>
> How can I make sure /etc/rc.suspend as well as /etc/rc.resuem gets
> called in the "non-acpiconf" cases?
That's an implementation problem. I think the right approach is to add
a resume notification to devd. That should be easy to do and I may look
into it this weekend if no one submits a patch first.
It's harder to hook in the suspend path because we'd have to add a new
path: kernel notifies userland, waits for userland to complete
rc.suspend, userland sends "go ahead" to kernel, and suspend actually
happens. apm had that but there's a problem if userland is not
responsive. The idea I came up with was to have an absolute timeout
where after 30 seconds or something, the kernel gives up on userland and
suspends anyway. I started work on a patch to do this a while ago but
it had some bugs I never got around to fixing. One problem was multiple
listeners (X11 server, rc.suspend, etc.) -- do you wait for all of them
to ack the event before suspending? I think so, but it's difficult to
get all the cases right.
If someone wants to help finish this work, I'd be happy to supply the
half-done patch.
--
Nate
More information about the freebsd-acpi
mailing list