From 2d5d1845957e807ed1bcdedd6c177e2120d02663 Mon Sep 17 00:00:00 2001 From: Gabriele Giacone <1o5g4r8o@gmail.com> Date: Sun, 16 Mar 2014 18:02:48 +0100 Subject: Add serial console to file to hurd VMs. Hurd lacks ACPI support so it can't poweroff itself. Host polls presence of shutdown string in serial console file to power it off. --- bin/g-i-installation.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bin/g-i-installation.sh b/bin/g-i-installation.sh index cd667d8a..424788eb 100755 --- a/bin/g-i-installation.sh +++ b/bin/g-i-installation.sh @@ -239,6 +239,10 @@ boot_system() { debian-edu*-server) QEMU_OPTS="$QEMU_OPTS -net nic,vlan=1 -net user,vlan=1" ;; + *_hurd*) + QEMU_SERIAL_OUT=${WORKSPACE}/serial-out.log + QEMU_OPTS="$QEMU_OPTS -serial file:${QEMU_SERIAL_OUT}" + ;; *) ;; esac echo @@ -847,6 +851,15 @@ monitor_system() { fi let NR=NR+1 sleep 2 + + # Hurd can't poweroff itself + if [ -v QEMU_SERIAL_OUT ]; then + if grep "In tight loop: hit ctl-alt-del to reboot" $QEMU_SERIAL_OUT >/dev/null; then + echo "Powering off Hurd VM ..." + sleep 10 + sudo kill -9 $(ps fax | grep [q]emu-system | grep vnc=$DISPLAY 2>/dev/null | awk '{print $1}') + fi + fi done if [ $NR -eq $MAX_RUNS ] ; then echo "Warning: running for ${hourlimit}h, forcing termination." -- cgit v1.2.3-70-g09d2