Post by Alessandro ZummoOn Fri, 15 Jun 2007 09:03:19 +0200
Post by Tino KeitelPost by Tino Keitel$ echo 1181934240 > /sys/class/rtc/rtc0/wakealarm
bash: echo: write error: Device or resource busy
$ rmmod rtc_cmos
$ modprobe rtc_cmos
$ echo 1181934240 > /sys/class/rtc/rtc0/wakealarm
$ echo 1181934240 > /sys/class/rtc/rtc0/wakealarm
bash: echo: write error: Device or resource busy
$
If the alarm has already been enabled, you cannot set the next
alarm. You should disable first.
Ah, ok.
Where is the documentation that describes that I have to disable it
first, and how to do this? A migration document for
/proc/acpi/alarm users would be nice, too.
Well, I guess there is no documentation. Maybe we could add
a dev_warn with an explicit message.
Isn't it somewhat ridiculous to plan the removal of a feature for
several months, and then replace it with something that behaves
differently without any documentation?
I don't know if there is any centralized form sysfs documentation. I
guess not. So at least a short text like the one below somewhere in
Documentation/ would be useful.
I still wonder how 'cat /sys/class/rtc/rtcX/wakealarm' is expected to
behave. With 2.6.22-rc5, I get this:
$ echo 1182351177 > /sys/class/rtc/rtc0/wakealarm
$ cat /sys/class/rtc/rtc0/wakealarm
2051644873
There seems to be a constant difference of 869984896 seconds. Is this a
bug?
-----------------------------------------------------------------------
How to use /sys/class/rtc/rtcX/wakealarm
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This file takes the seconds since epoch to enable a wake event at the
specified time.
If a '0' is written, the alarm is disabled.
If the alarm was already enabled, a new alarm can only be set after the
old alarm is disabled.
Migration from /proc/acpi/alarm
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Users of /proc/acpi/alarm have to change their code to supply the
seconds since epoch instead of a date string.
For shell scripts, this can be done using the date command, e.g. like
this:
date -d tomorrow "+%s"
This returns the seconds since epoch of the current time on the
following day.
Please note that you have to disable the old alarm first, if you want
to set a new alarm. Otherwise, you get an error. Example:
echo 12345 > /sys/class/rtc/rtc0/wakealarm
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo 23456 > /sys/class/rtc/rtc0/wakealarm
-----------------------------------------------------------------------
Regards,
Tino