diff options
Diffstat (limited to 'meta/recipes-bsp/apmd')
-rw-r--r-- | meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy | 91 | ||||
-rw-r--r-- | meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy.conf | 16 | ||||
-rw-r--r-- | meta/recipes-bsp/apmd/apmd-3.2.2-14/default | 8 | ||||
-rwxr-xr-x | meta/recipes-bsp/apmd/apmd-3.2.2-14/init | 44 | ||||
-rw-r--r-- | meta/recipes-bsp/apmd/apmd-3.2.2-14/libtool.patch | 29 | ||||
-rw-r--r-- | meta/recipes-bsp/apmd/apmd-3.2.2-14/unlinux.patch | 21 | ||||
-rw-r--r-- | meta/recipes-bsp/apmd/apmd-3.2.2-14/workaround.patch | 59 | ||||
-rw-r--r-- | meta/recipes-bsp/apmd/apmd_3.2.2-14.bb | 63 |
8 files changed, 331 insertions, 0 deletions
diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy b/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy new file mode 100644 index 0000000000..c48ee4e5d5 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy | |||
@@ -0,0 +1,91 @@ | |||
1 | #!/bin/sh | ||
2 | # | ||
3 | # apmd_proxy - program dispatcher for APM daemon | ||
4 | # | ||
5 | # Written by Craig Markwardt (craigm@lheamail.gsfc.nasa.gov) 21 May 1999 | ||
6 | # Modified for Debian by Avery Pennarun | ||
7 | # | ||
8 | # This shell script is called by the APM daemon (apmd) when a power | ||
9 | # management event occurs. Its first and second arguments describe the | ||
10 | # event. For example, apmd will call "apmd_proxy suspend system" just | ||
11 | # before the system is suspended. | ||
12 | # | ||
13 | # Here are the possible arguments: | ||
14 | # | ||
15 | # start - APM daemon has started | ||
16 | # stop - APM daemon is shutting down | ||
17 | # suspend critical - APM system indicates critical suspend (++) | ||
18 | # suspend system - APM system has requested suspend mode | ||
19 | # suspend user - User has requested suspend mode | ||
20 | # standby system - APM system has requested standby mode | ||
21 | # standby user - User has requested standby mode | ||
22 | # resume suspend - System has resumed from suspend mode | ||
23 | # resume standby - System has resumed from standby mode | ||
24 | # resume critical - System has resumed from critical suspend | ||
25 | # change battery - APM system reported low battery | ||
26 | # change power - APM system reported AC/battery change | ||
27 | # change time - APM system reported time change (*) | ||
28 | # change capability - APM system reported config. change (+) | ||
29 | # | ||
30 | # (*) - APM daemon may be configured to not call these sequences | ||
31 | # (+) - Available if APM kernel supports it. | ||
32 | # (++) - "suspend critical" is never passed to apmd from the kernel, | ||
33 | # so we will never see it here. Scripts that process "resume | ||
34 | # critical" events need to take this into account. | ||
35 | # | ||
36 | # It is the proxy script's responsibility to examine the APM status | ||
37 | # (via /proc/apm) or other status and to take appropriate actions. | ||
38 | # For example, the script might unmount network drives before the | ||
39 | # machine is suspended. | ||
40 | # | ||
41 | # In Debian, the usual way of adding functionality to the proxy is to | ||
42 | # add a script to /etc/apm/event.d. This script will be called by | ||
43 | # apmd_proxy (via run-parts) with the same arguments. | ||
44 | # | ||
45 | # If it is important that a certain set of script be run in a certain | ||
46 | # order on suspend and in a different order on resume, then put all | ||
47 | # the scripts in /etc/apm/scripts.d instead of /etc/apm/event.d and | ||
48 | # symlink to these from /etc/apm/suspend.d, /etc/apm/resume.d and | ||
49 | # /etc/apm/other.d using names whose lexicographical order is the same | ||
50 | # as the desired order of execution. | ||
51 | # | ||
52 | # If the kernel's APM driver supports it, apmd_proxy can return a non-zero | ||
53 | # exit status on suspend and standby events, indicating that the suspend | ||
54 | # or standby event should be rejected. | ||
55 | # | ||
56 | # ******************************************************************* | ||
57 | |||
58 | set -e | ||
59 | |||
60 | # The following doesn't yet work, because current kernels (up to at least | ||
61 | # 2.4.20) do not support rejection of APM events. Supporting this would | ||
62 | # require substantial modifications to the APM driver. We will re-enable | ||
63 | # this feature if the driver is ever modified. -- cph@debian.org | ||
64 | # | ||
65 | #SUSPEND_ON_AC=false | ||
66 | #[ -r /etc/apm/apmd_proxy.conf ] && . /etc/apm/apmd_proxy.conf | ||
67 | # | ||
68 | #if [ "${SUSPEND_ON_AC}" = "false" -a "${2}" = "system" ] \ | ||
69 | # && on_ac_power >/dev/null; then | ||
70 | # # Reject system suspends and standbys if we are on AC power | ||
71 | # exit 1 # Reject (NOTE kernel support must be enabled) | ||
72 | #fi | ||
73 | |||
74 | if [ "${1}" = "suspend" -o "${1}" = "standby" ]; then | ||
75 | run-parts -a "${1}" -a "${2}" /etc/apm/event.d | ||
76 | if [ -d /etc/apm/suspend.d ]; then | ||
77 | run-parts -a "${1}" -a "${2}" /etc/apm/suspend.d | ||
78 | fi | ||
79 | elif [ "${1}" = "resume" ]; then | ||
80 | if [ -d /etc/apm/resume.d ]; then | ||
81 | run-parts -a "${1}" -a "${2}" /etc/apm/resume.d | ||
82 | fi | ||
83 | run-parts -a "${1}" -a "${2}" /etc/apm/event.d | ||
84 | else | ||
85 | run-parts -a "${1}" -a "${2}" /etc/apm/event.d | ||
86 | if [ -d /etc/apm/other.d ]; then | ||
87 | run-parts -a "${1}" -a "${2}" /etc/apm/other.d | ||
88 | fi | ||
89 | fi | ||
90 | |||
91 | exit 0 | ||
diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy.conf b/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy.conf new file mode 100644 index 0000000000..751145c522 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/apmd_proxy.conf | |||
@@ -0,0 +1,16 @@ | |||
1 | # /etc/apm/apmd_proxy.conf: configuration file for apmd. | ||
2 | # | ||
3 | # This file is managed by debconf when installing or reconfiguring the | ||
4 | # package. It is generated by merging the answers gathered by debconf | ||
5 | # into the template file "/usr/share/apmd/apmd_proxy.conf". | ||
6 | |||
7 | # The following doesn't yet work, because current kernels (up to at least | ||
8 | # 2.4.20) do not support rejection of APM events. Supporting this would | ||
9 | # require substantial modifications to the APM driver. We will re-enable | ||
10 | # this feature if the driver is ever modified. -- cph@debian.org | ||
11 | # | ||
12 | # Set the following to "false" if you want to reject system suspend or | ||
13 | # system standby requests when the computer is running on AC power. | ||
14 | # Otherwise set this to "true". Such requests are never rejected when | ||
15 | # the computer is running on battery power. | ||
16 | #SUSPEND_ON_AC=true | ||
diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/default b/meta/recipes-bsp/apmd/apmd-3.2.2-14/default new file mode 100644 index 0000000000..4b7965abf8 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/default | |||
@@ -0,0 +1,8 @@ | |||
1 | # | ||
2 | # Default for /etc/init.d/apmd | ||
3 | # | ||
4 | |||
5 | # As apmd can be called with arguments, we use the following variable | ||
6 | # to store them, e.g., APMD="-w 5 -p 2". | ||
7 | # See the manual page apmd(8) for details. | ||
8 | APMD="--proxy-timeout 30" | ||
diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/init b/meta/recipes-bsp/apmd/apmd-3.2.2-14/init new file mode 100755 index 0000000000..268d4b26b7 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/init | |||
@@ -0,0 +1,44 @@ | |||
1 | #!/bin/sh | ||
2 | ### BEGIN INIT INFO | ||
3 | # Provides: apmd | ||
4 | # Required-Start: $remote_fs | ||
5 | # Required-Stop: $remote_fs | ||
6 | # Default-Start: 2 3 4 5 | ||
7 | # Default-Stop: 0 1 6 | ||
8 | # Short-Description: Advanced Power Management daemon | ||
9 | ### END INIT INFO | ||
10 | |||
11 | PATH=/bin:/usr/bin:/sbin:/usr/sbin | ||
12 | |||
13 | [ -f /etc/default/rcS ] && . /etc/default/rcS | ||
14 | [ -f /etc/default/apmd ] && . /etc/default/apmd | ||
15 | |||
16 | case "$1" in | ||
17 | start) | ||
18 | echo -n "Starting advanced power management daemon: " | ||
19 | start-stop-daemon -S -x /usr/sbin/apmd -- \ | ||
20 | -P /etc/apm/apmd_proxy $APMD | ||
21 | if [ $? = 0 ]; then | ||
22 | echo "apmd." | ||
23 | else | ||
24 | echo "(failed.)" | ||
25 | fi | ||
26 | ;; | ||
27 | stop) | ||
28 | echo -n "Stopping advanced power management daemon: " | ||
29 | start-stop-daemon -K \ | ||
30 | -x /usr/sbin/apmd | ||
31 | echo "apmd." | ||
32 | ;; | ||
33 | restart|force-reload) | ||
34 | $0 stop | ||
35 | $0 start | ||
36 | exit | ||
37 | ;; | ||
38 | *) | ||
39 | echo "Usage: /etc/init.d/apmd {start|stop|restart|force-reload}" | ||
40 | exit 1 | ||
41 | ;; | ||
42 | esac | ||
43 | |||
44 | exit 0 | ||
diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/libtool.patch b/meta/recipes-bsp/apmd/apmd-3.2.2-14/libtool.patch new file mode 100644 index 0000000000..711e777084 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/libtool.patch | |||
@@ -0,0 +1,29 @@ | |||
1 | # Add by RP to address "unable to infer tagged configuration" error: | ||
2 | # commit 35de05e61b88c0808a5e885bb0efdf420555d5ad | ||
3 | # Author: Richard Purdie <rpurdie@rpsys.net> | ||
4 | # Date: Sun Jun 1 16:13:38 2008 +0000 | ||
5 | # | ||
6 | # apmd: Use libtool --tag options to avoid problems with libtool 2.2.4 (from poky) | ||
7 | # | ||
8 | # However I didn't see same issue with current libtool-2.2.10. Also per my understanding, | ||
9 | # the default tag, if not specified, falls back to CC. So disable it from patching, but | ||
10 | # keep it here. If we encounter similar issue in the future, we could then push upstream | ||
11 | # | ||
12 | # Comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-16 | ||
13 | |||
14 | Index: apmd-3.2.2.orig/Makefile | ||
15 | =================================================================== | ||
16 | --- apmd-3.2.2.orig.orig/Makefile 2004-01-04 08:13:18.000000000 +0000 | ||
17 | +++ apmd-3.2.2.orig/Makefile 2008-04-21 17:10:03.000000000 +0100 | ||
18 | @@ -58,9 +57,8 @@ | ||
19 | #CFLAGS=-O3 -m486 -fomit-frame-pointer | ||
20 | #LDFLAGS=-s | ||
21 | |||
22 | -LIBTOOL=libtool --quiet | ||
23 | -LT_COMPILE = $(LIBTOOL) --mode=compile $(CC) | ||
24 | -LT_LINK = $(LIBTOOL) --mode=link $(CC) | ||
25 | +LT_COMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) | ||
26 | +LT_LINK = $(LIBTOOL) --tag=CC --mode=link $(CC) | ||
27 | LT_INSTALL = $(LIBTOOL) --mode=install install | ||
28 | LT_CLEAN = $(LIBTOOL) --mode=clean rm | ||
29 | |||
diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/unlinux.patch b/meta/recipes-bsp/apmd/apmd-3.2.2-14/unlinux.patch new file mode 100644 index 0000000000..c64e7df524 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/unlinux.patch | |||
@@ -0,0 +1,21 @@ | |||
1 | # copy OE commit message here: | ||
2 | # commit 9456cdc1cf43e3ba9e6d88c63560c1b6fdee4359 | ||
3 | # Author: Michael Krelin <hacker@klever.net> | ||
4 | # Date: Tue May 29 12:27:45 2007 +0000 | ||
5 | # | ||
6 | # apmd: prevent build from interferring with host kernel headers. Closes #1257 | ||
7 | # | ||
8 | # comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-13 | ||
9 | |||
10 | --- apmd-3.2.2.orig/Makefile | ||
11 | +++ apmd-3.2.2/Makefile | ||
12 | @@ -43,8 +43,7 @@ | ||
13 | |||
14 | CC=gcc | ||
15 | CFLAGS=-O -g | ||
16 | -XTRACFLAGS=-Wall -pipe -I. -I/usr/src/linux/include -I/usr/X11R6/include \ | ||
17 | - -I/usr/src/linux-2.2/include -I /usr/src/linux-2.0/include \ | ||
18 | +XTRACFLAGS=-Wall -pipe -I. \ | ||
19 | -DVERSION=\"$(VERSION)\" \ | ||
20 | -DDEFAULT_PROXY_NAME=\"$(PROXY_DIR)/apmd_proxy\" | ||
21 | LDFLAGS= | ||
diff --git a/meta/recipes-bsp/apmd/apmd-3.2.2-14/workaround.patch b/meta/recipes-bsp/apmd/apmd-3.2.2-14/workaround.patch new file mode 100644 index 0000000000..d37380397c --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd-3.2.2-14/workaround.patch | |||
@@ -0,0 +1,59 @@ | |||
1 | # this workaround is there in OE since 2003. It looks to provide a workaround | ||
2 | # allowing others sending SIGUSR1 to cause an apm suspend event. Disable it for | ||
3 | # now. | ||
4 | # | ||
5 | # comment added by Kevin Tian <kevin.tian@intel.com>, 2010-07-13 | ||
6 | # | ||
7 | # Patch managed by http://www.holgerschurig.de/patcher.html | ||
8 | # | ||
9 | |||
10 | --- apmd-3.2.2.orig/apmd.c~workaround.patch | ||
11 | +++ apmd-3.2.2.orig/apmd.c | ||
12 | @@ -158,6 +158,7 @@ | ||
13 | static int quiet_bios_batlow; /* = 0 */ | ||
14 | static int verbosity = DEFAULT_VERBOSITY; | ||
15 | static int warn_level = 10; | ||
16 | +static int sleep_now = 0; /* ntp */ | ||
17 | |||
18 | static uid_t apmd_uid = 0; | ||
19 | static int apmd_fd = -1; | ||
20 | @@ -942,6 +943,12 @@ | ||
21 | exit(0); | ||
22 | } | ||
23 | |||
24 | +/* ntp */ | ||
25 | +static void sig_usr1(int sig) | ||
26 | +{ | ||
27 | + sleep_now = 1; | ||
28 | +} | ||
29 | + | ||
30 | int main(int argc, char **argv) | ||
31 | { | ||
32 | int c; | ||
33 | @@ -1151,6 +1158,8 @@ | ||
34 | openlog("apmd", (verbosity>=LOG_DEBUG)?LOG_PERROR:0 | LOG_PID | LOG_CONS, LOG_DAEMON); | ||
35 | |||
36 | /* Set up signal handler */ | ||
37 | + if (signal(SIGUSR1, SIG_IGN) != SIG_IGN) | ||
38 | + signal(SIGUSR1, sig_usr1); /* ntp */ | ||
39 | if (signal(SIGINT, SIG_IGN) != SIG_IGN) | ||
40 | signal(SIGINT, sig_handler); | ||
41 | if (signal(SIGQUIT, SIG_IGN) != SIG_IGN) | ||
42 | @@ -1230,9 +1239,16 @@ | ||
43 | |||
44 | for (;;) | ||
45 | { | ||
46 | - int num_events = apm_get_events(apmd_fd, check_interval, events, MAX_EVENTS); | ||
47 | + int num_events; | ||
48 | int e, a; | ||
49 | |||
50 | + /* ntp */ | ||
51 | + if (sleep_now) { | ||
52 | + sleep_now = 0; | ||
53 | + handle_event(APM_USER_SUSPEND, &apminfo); | ||
54 | + } | ||
55 | + | ||
56 | + num_events = apm_get_events(apmd_fd, check_interval, events, MAX_EVENTS); | ||
57 | apm_read(&apminfo); | ||
58 | |||
59 | if (num_events == 0) { | ||
diff --git a/meta/recipes-bsp/apmd/apmd_3.2.2-14.bb b/meta/recipes-bsp/apmd/apmd_3.2.2-14.bb new file mode 100644 index 0000000000..2778cc69e8 --- /dev/null +++ b/meta/recipes-bsp/apmd/apmd_3.2.2-14.bb | |||
@@ -0,0 +1,63 @@ | |||
1 | DESCRIPTION = "Set of tools for managing notebook power consumption." | ||
2 | SECTION = "base" | ||
3 | PRIORITY = "required" | ||
4 | LICENSE = "GPLv2+" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
6 | file://apm.h;firstline=6;endline=18;md5=c9a1f79036ab14aa157e15ed75ffd769" | ||
7 | DEPENDS = "libtool-cross" | ||
8 | PR = "r1" | ||
9 | |||
10 | SRC_URI = "${DEBIAN_MIRROR}/main/a/apmd/apmd_3.2.2.orig.tar.gz \ | ||
11 | ${DEBIAN_MIRROR}/main/a/apmd/apmd_${PV}.diff.gz \ | ||
12 | file://libtool.patch \ | ||
13 | file://unlinux.patch \ | ||
14 | file://init \ | ||
15 | file://default \ | ||
16 | file://apmd_proxy \ | ||
17 | file://apmd_proxy.conf" | ||
18 | |||
19 | S = "${WORKDIR}/apmd-3.2.2.orig" | ||
20 | |||
21 | inherit update-rc.d | ||
22 | |||
23 | INITSCRIPT_NAME = "apmd" | ||
24 | INITSCRIPT_PARAMS = "defaults" | ||
25 | |||
26 | do_compile() { | ||
27 | # apmd doesn't use whole autotools. Just libtool for installation | ||
28 | oe_runmake "LIBTOOL=${STAGING_BINDIR_CROSS}/${TARGET_PREFIX}libtool" apm apmd | ||
29 | } | ||
30 | |||
31 | do_install() { | ||
32 | install -d ${D}${sysconfdir} | ||
33 | install -d ${D}${sysconfdir}/apm | ||
34 | install -d ${D}${sysconfdir}/apm/event.d | ||
35 | install -d ${D}${sysconfdir}/apm/other.d | ||
36 | install -d ${D}${sysconfdir}/apm/suspend.d | ||
37 | install -d ${D}${sysconfdir}/apm/resume.d | ||
38 | install -d ${D}${sysconfdir}/apm/scripts.d | ||
39 | install -d ${D}${sysconfdir}/default | ||
40 | install -d ${D}${sysconfdir}/init.d | ||
41 | install -d ${D}${sbindir} | ||
42 | install -d ${D}${bindir} | ||
43 | install -d ${D}${libdir} | ||
44 | install -d ${D}${datadir}/apmd | ||
45 | install -d ${D}${includedir} | ||
46 | |||
47 | install -m 4755 ${S}/.libs/apm ${D}${bindir}/apm | ||
48 | install -m 0755 ${S}/.libs/apmd ${D}${sbindir}/apmd | ||
49 | install -m 0755 ${WORKDIR}/apmd_proxy ${D}${sysconfdir}/apm/ | ||
50 | install -m 0644 ${WORKDIR}/apmd_proxy.conf ${D}${datadir}/apmd/ | ||
51 | install -m 0644 ${WORKDIR}/default ${D}${sysconfdir}/default/apmd | ||
52 | oe_libinstall -so libapm ${D}${libdir} | ||
53 | install -m 0644 apm.h ${D}${includedir} | ||
54 | |||
55 | cat ${WORKDIR}/init | sed -e 's,/usr/sbin,${sbindir},g; s,/etc,${sysconfdir},g;' > ${D}${sysconfdir}/init.d/apmd | ||
56 | chmod 755 ${D}${sysconfdir}/init.d/apmd | ||
57 | } | ||
58 | |||
59 | PACKAGES =+ "libapm libapm-dev apm" | ||
60 | |||
61 | FILES_libapm = "${libdir}/libapm.so.*" | ||
62 | FILES_libapm-dev = "${libdir}/libapm.* ${includedir}" | ||
63 | FILES_apm = "${bindir}/apm*" | ||