aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/network-suspend-scripts
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/network-suspend-scripts')
-rw-r--r--recipes/network-suspend-scripts/files/ifupdown26
-rw-r--r--recipes/network-suspend-scripts/files/usbnet16
-rw-r--r--recipes/network-suspend-scripts/network-suspend-scripts.bb22
3 files changed, 64 insertions, 0 deletions
diff --git a/recipes/network-suspend-scripts/files/ifupdown b/recipes/network-suspend-scripts/files/ifupdown
new file mode 100644
index 0000000000..d458da6866
--- /dev/null
+++ b/recipes/network-suspend-scripts/files/ifupdown
@@ -0,0 +1,26 @@
+#!/bin/sh
+# Unloads/loads all interface that are up at time of suspend
+
+if [ "$1" = suspend ]; then
+ rm -f /var/run/ifstate-suspend
+ rm -f /var/run/ifstate-old
+ cp /var/run/ifstate /var/run/ifstate-old
+ cat /var/run/ifstate-old | (
+ IFS="="
+ while read IFACE LOGICAL; do
+ ifdown $IFACE
+ echo "$IFACE=$LOGICAL" >>/var/run/ifstate-suspend
+ done
+ rm -f /var/run/ifstate-old
+ )
+elif [ "$1" = resume ] && [ "$2" != standby ] && [ -f /var/run/ifstate-suspend ]; then
+ cat /var/run/ifstate-suspend | (
+ while read LINE; do
+ ifup $LINE
+ done
+ )
+ rm -f /var/run/ifstate-suspend
+fi
+
+: exit 0
+
diff --git a/recipes/network-suspend-scripts/files/usbnet b/recipes/network-suspend-scripts/files/usbnet
new file mode 100644
index 0000000000..3731f6339f
--- /dev/null
+++ b/recipes/network-suspend-scripts/files/usbnet
@@ -0,0 +1,16 @@
+#!/bin/sh
+# Unloads/loads usb-eth so it always works
+
+. /etc/default/usbd
+
+if [ "$1" = suspend ]; then
+ rmmod usb-eth
+ rmmod sa1100usb_core
+elif [ "$1" = resume ] && [ "$2" != standby ]; then
+ modprobe usb-eth
+ modprobe -r $usbdmodule
+ modprobe $usbdmodule
+fi
+
+: exit 0
+
diff --git a/recipes/network-suspend-scripts/network-suspend-scripts.bb b/recipes/network-suspend-scripts/network-suspend-scripts.bb
new file mode 100644
index 0000000000..2e3c0c3fbe
--- /dev/null
+++ b/recipes/network-suspend-scripts/network-suspend-scripts.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Network suspend/resume scripts"
+SECTION = "base"
+LICENSE = "GPL"
+PV = "1.1"
+PR = "r2"
+
+SRC_URI = "file://ifupdown \
+ file://usbnet"
+
+do_install() {
+ install -d ${D}${sysconfdir}/apm/scripts.d
+ install -m 0755 ${WORKDIR}/ifupdown ${D}${sysconfdir}/apm/scripts.d
+ install -m 0755 ${WORKDIR}/usbnet ${D}${sysconfdir}/apm/scripts.d
+ install -d ${D}${sysconfdir}/apm/suspend.d
+ ln -s ../scripts.d/ifupdown ${D}${sysconfdir}/apm/suspend.d/05ifupdown
+ ln -s ../scripts.d/usbnet ${D}${sysconfdir}/apm/suspend.d/10usbnet
+ install -d ${D}${sysconfdir}/apm/resume.d
+ ln -sf ../scripts.d/ifupdown ${D}${sysconfdir}/apm/resume.d/30ifupdown
+ ln -sf ../scripts.d/usbnet ${D}${sysconfdir}/apm/resume.d/20usbnet
+}
+
+FILES = "${sysconfdir}/apm"