Run pm-utils scripts in netvm on suspend (#146)
This commit is contained in:
parent
4aef2bc564
commit
2bcbc1742e
28
dom0/pm-utils/01qubes-suspend-netvm
Executable file
28
dom0/pm-utils/01qubes-suspend-netvm
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
. "${PM_FUNCTIONS}"
|
||||
|
||||
suspend_net()
|
||||
{
|
||||
NETVM=$(qvm-get-default-netvm)
|
||||
if [ "X"$NETVM = "X""dom0" -o "X"$NETVM = "X" -o "X"$NETVM = "X""none"] ; then
|
||||
exit 0
|
||||
fi
|
||||
qvm-run -u root --pass_io $NETVM "source /usr/lib64/pm-utils/pm-functions; run_hooks sleep suspend suspend"
|
||||
}
|
||||
|
||||
resume_net()
|
||||
{
|
||||
NETVM=$(qvm-get-default-netvm)
|
||||
if [ "X"$NETVM = "X""dom0" -o "X"$NETVM = "X" -o "X"$NETVM = "X""none"] ; then
|
||||
exit 0
|
||||
fi
|
||||
qvm-run -u root --pass_io $NETVM "source /usr/lib64/pm-utils/pm-functions; run_hooks sleep resume suspend reverse"
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
resume) resume_net ;;
|
||||
suspend) suspend_net ;;
|
||||
*) exit 0 ;;
|
||||
esac
|
@ -1,48 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
. "${PM_FUNCTIONS}"
|
||||
|
||||
get_domain_pci_devs()
|
||||
{
|
||||
VM=$1
|
||||
TMPFILE=$(mktemp -p /var/run/qubes/)
|
||||
xm pci-list $VM > $TMPFILE
|
||||
if grep -i -q vslt $TMPFILE ; then
|
||||
slt=valid_identifier
|
||||
else
|
||||
slt=""
|
||||
fi
|
||||
cat $TMPFILE | grep -v domain | sed 's/0x//g'| \
|
||||
while read $slt a b c d; do echo $a:$b:$c.$d ; done > /var/run/qubes/$VM.pcidevs
|
||||
rm -f $TMPFILE
|
||||
}
|
||||
|
||||
detach_pcis()
|
||||
{
|
||||
NETVM=$(qvm-get-default-netvm)
|
||||
if [ "X"$NETVM = "X""dom0" -o "X"$NETVM = "X" -o "X"$NETVM = "X""none"] ; then
|
||||
exit 0
|
||||
fi
|
||||
get_domain_pci_devs $NETVM
|
||||
for dev in $(cat /var/run/qubes/$NETVM.pcidevs) ; do
|
||||
xm pci-detach $NETVM $dev
|
||||
done
|
||||
}
|
||||
|
||||
attach_pcis()
|
||||
{
|
||||
NETVM=$(qvm-get-default-netvm)
|
||||
if [ "X"$NETVM = "X""dom0" -o "X"$NETVM = "X" -o "X"$NETVM = "X""none"] ; then
|
||||
exit 0
|
||||
fi
|
||||
for dev in $(cat /var/run/qubes/$NETVM.pcidevs) ; do
|
||||
xm pci-attach $NETVM $dev
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
resume) attach_pcis ;;
|
||||
suspend) detach_pcis ;;
|
||||
*) exit 0 ;;
|
||||
esac
|
Loading…
Reference in New Issue
Block a user