suspend: adapt script for NetworkManager integration
Now the suspend script brings down all the wireless interfaces that are managed by ifupdown command (in the '/etc/network/interfaces' file) and then unloads the wireless driver. On resume the script triggers an event so udev reloads the wireless driver and then brings up the interfaces that were brought down on suspend. https://jira.digi.com/browse/DEL-4288 Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
parent
6ffd69da82
commit
eb76b2ac68
|
|
@ -31,9 +31,12 @@ usage() {
|
|||
}
|
||||
|
||||
suspend_interfaces() {
|
||||
# Suspend wireless interface
|
||||
if grep -qs '^wlan0' /var/run/ifstate; then
|
||||
ifdown wlan0 && up_wlan_on_resume="1" && sleep 0.5 && rmmod ath6kl_sdio
|
||||
# Suspend wireless interfaces
|
||||
if [ -d "/proc/device-tree/wireless" ]; then
|
||||
for i in $(sed -ne 's,^\(wlan[0-9]\)=.*,\1,g;T;p' /var/run/ifstate | sort -r); do
|
||||
ifdown "${i}" && RESUME_IFACES="${RESUME_IFACES:+${RESUME_IFACES} }${i}"
|
||||
done
|
||||
grep -qs '^ath6kl_sdio' /proc/modules && rmmod ath6kl_sdio ath6kl_core
|
||||
fi
|
||||
|
||||
# Suspend bluetooth interface
|
||||
|
|
@ -43,9 +46,16 @@ suspend_interfaces() {
|
|||
}
|
||||
|
||||
resume_interfaces() {
|
||||
# Resume wireless interface
|
||||
if ! grep -qs '^wlan0' /var/run/ifstate; then
|
||||
[ -n "${up_wlan_on_resume}" ] && modprobe ath6kl_sdio && sleep 0.5 && ifup wlan0
|
||||
# Resume wireless interfaces
|
||||
if [ -d "/proc/device-tree/wireless" ]; then
|
||||
# Trigger wireless module loading event, and wait until the interface exists
|
||||
udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d0301"
|
||||
timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null
|
||||
|
||||
# Bring up the interfaces that were bring down on suspend
|
||||
for i in $(echo ${RESUME_IFACES} | tr ' ' '\n' | sort); do
|
||||
grep -qs "^${i}" /var/run/ifstate || ifup "${i}"
|
||||
done
|
||||
fi
|
||||
|
||||
# Resume bluetooth interface
|
||||
|
|
|
|||
|
|
@ -31,12 +31,12 @@ usage() {
|
|||
}
|
||||
|
||||
suspend_interfaces() {
|
||||
# Suspend wireless interface
|
||||
if grep -qs '^wlan0' /var/run/ifstate; then
|
||||
ifdown wlan0 && up_wlan_on_resume="1"
|
||||
fi
|
||||
if grep -qs '^wlan' /proc/modules; then
|
||||
rmmod wlan
|
||||
# Suspend wireless interfaces
|
||||
if [ -d "/proc/device-tree/wireless" ]; then
|
||||
for i in $(sed -ne 's,^\(wlan[0-9]\)=.*,\1,g;T;p' /var/run/ifstate | sort -r); do
|
||||
ifdown "${i}" && RESUME_IFACES="${RESUME_IFACES:+${RESUME_IFACES} }${i}"
|
||||
done
|
||||
grep -qs '^wlan' /proc/modules && rmmod wlan
|
||||
fi
|
||||
|
||||
# Suspend bluetooth interface
|
||||
|
|
@ -46,9 +46,16 @@ suspend_interfaces() {
|
|||
}
|
||||
|
||||
resume_interfaces() {
|
||||
# Resume wireless interface
|
||||
if ! grep -qs '^wlan0' /var/run/ifstate; then
|
||||
[ -n "${up_wlan_on_resume}" ] && ifup wlan0
|
||||
# Resume wireless interfaces
|
||||
if [ -d "/proc/device-tree/wireless" ]; then
|
||||
# Trigger wireless module loading event, and wait until the interface exists
|
||||
udevadm trigger --action=add --attr-match="modalias=sdio:c00v0271d050A"
|
||||
timeout -t 5 sh -c "while [ ! -d /sys/class/net/wlan0 ]; do sleep .2; done" 2>/dev/null
|
||||
|
||||
# Bring up the interfaces that were bring down on suspend
|
||||
for i in $(echo ${RESUME_IFACES} | tr ' ' '\n' | sort); do
|
||||
grep -qs "^${i}" /var/run/ifstate || ifup "${i}"
|
||||
done
|
||||
fi
|
||||
|
||||
# Resume bluetooth interface
|
||||
|
|
|
|||
Loading…
Reference in New Issue