diff --git a/vm-systemd/75-qubes-vm.preset b/vm-systemd/75-qubes-vm.preset index f2541c8..f46e449 100644 --- a/vm-systemd/75-qubes-vm.preset +++ b/vm-systemd/75-qubes-vm.preset @@ -74,3 +74,4 @@ enable qubes-iptables.service enable qubes-random-seed.service enable haveged.service enable chronyd.service +enable xendriverdomain.service diff --git a/vm-systemd/prepare-dvm.sh b/vm-systemd/prepare-dvm.sh index 9fdf6f7..f5ffb85 100755 --- a/vm-systemd/prepare-dvm.sh +++ b/vm-systemd/prepare-dvm.sh @@ -9,19 +9,16 @@ possibly_run_save_script() DISPLAY=:0 su - user -c /tmp/qubes-save-script } -if true; then - echo user | /bin/sh /etc/qubes-rpc/qubes.WaitForSession - possibly_run_save_script - umount /rw - dmesg -c >/dev/null - qubesdb-watch /qubes-restore-complete & - watch_pid=$! - free | grep Mem: | - (read label total used free shared buffers cached; qubesdb-write /qubes-used-mem $(( $used + $cached )) ) - # we're still running in DispVM template - echo "Waiting for save/restore..." - qubesdb-read /qubes-restore-complete || wait $watch_pid - echo Back to life. - systemctl --no-block restart qubes-random-seed.service -fi - +echo user | /bin/sh /etc/qubes-rpc/qubes.WaitForSession +possibly_run_save_script +umount /rw +dmesg -c >/dev/null +qubesdb-watch /qubes-restore-complete & +watch_pid=$! +free | grep Mem: | + (read label total used free shared buffers cached; qubesdb-write /qubes-used-mem $(( $used + $cached )) ) +# we're still running in DispVM template +echo "Waiting for save/restore..." +qubesdb-read /qubes-restore-complete || wait $watch_pid +echo Back to life. +systemctl restart qubes-random-seed.service diff --git a/vm-systemd/qubes-dvm.service b/vm-systemd/qubes-dvm.service index 84a6bdd..294eba3 100644 --- a/vm-systemd/qubes-dvm.service +++ b/vm-systemd/qubes-dvm.service @@ -2,6 +2,7 @@ Description=Prepare Qubes DispVM Template ConditionPathExists=/var/run/qubes-service/qubes-dvm After=systemd-readahead-replay.service +Before=xendriverdomain.service [Service] Type=oneshot diff --git a/vm-systemd/qubes-qrexec-agent.service b/vm-systemd/qubes-qrexec-agent.service index 38d8f71..99a50d0 100644 --- a/vm-systemd/qubes-qrexec-agent.service +++ b/vm-systemd/qubes-qrexec-agent.service @@ -1,6 +1,6 @@ [Unit] Description=Qubes remote exec agent -After=qubes-dvm.service +After=qubes-dvm.service xendriverdomain.service [Service] ExecStartPre=/bin/sh -c '[ -e /dev/xen/evtchn ] || modprobe xen_evtchn'