Skip to content

Commit

Permalink
fix: Display QEMU output (#558)
Browse files Browse the repository at this point in the history
  • Loading branch information
kroese committed Jan 13, 2024
1 parent a3d6e37 commit 3a507f5
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 19 deletions.
4 changes: 2 additions & 2 deletions src/disk.sh
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ isCow() {
if [[ "${FS,,}" == "xfs" || "${FS,,}" == "zfs" || "${FS,,}" == "btrfs" || "${FS,,}" == "bcachefs" ]]; then
return 0
fi

return 1
}

Expand Down Expand Up @@ -126,7 +126,7 @@ createDisk() {
fi

if [[ "$ALLOCATE" == [Nn]* ]]; then

# Create an empty file
if ! truncate -s "$DATA_SIZE" "$DISK_FILE"; then
rm -f "$DISK_FILE"
Expand Down
9 changes: 5 additions & 4 deletions src/entry.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ if [[ "$CONSOLE" == [Yy]* ]]; then
exec qemu-system-x86_64 ${ARGS:+ $ARGS}
fi

[[ "$DEBUG" == [Yy1]* ]] && info "$VERS" && set -x
msg=$(qemu-system-x86_64 ${ARGS:+ $ARGS})
[[ "$DEBUG" == [Yy1]* ]] && info "$VERS" && echo "Arguments: $ARGS" && echo
{ qemu-system-x86_64 ${ARGS:+ $ARGS} >"$QEMU_OUT" 2>"$QEMU_LOG"; rc=$?; } || :
(( rc != 0 )) && error "$(cat "$QEMU_LOG")" && exit 15

{ set +x; } 2>/dev/null && terminal "$msg"
terminal
tail -fn +0 "$QEMU_LOG" 2>/dev/null &
cat "$QEMU_TERM" 2>/dev/null & wait $! || true
cat "$QEMU_TERM" 2>/dev/null & wait $! || :

sleep 1 && finish 0
26 changes: 17 additions & 9 deletions src/power.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,14 @@ QEMU_PORT=7100
QEMU_TIMEOUT=50
QEMU_PID="/run/qemu.pid"
QEMU_LOG="/run/qemu.log"
QEMU_OUT="/run/qemu.out"
QEMU_END="/run/qemu.end"

if [[ "$KVM" == [Nn]* ]]; then
API_TIMEOUT=$(( API_TIMEOUT*2 ))
QEMU_TIMEOUT=$(( QEMU_TIMEOUT*2 ))
fi

rm -f "$QEMU_PID"
rm -f "$QEMU_LOG"
rm -f "$QEMU_END"
touch "$QEMU_LOG"

_trap() {
Expand Down Expand Up @@ -62,14 +60,24 @@ finish() {

terminal() {

local msg=$1
local dev=""

if [[ "${msg,,}" != "char"* || "$msg" != *"serial0)" ]]; then
echo "$msg"
fi
if [ -f "$QEMU_OUT" ]; then

local msg
msg="$(cat "$QEMU_OUT")"

if [ -n "$msg" ]; then

local dev="${msg#*/dev/p}"
dev="/dev/p${dev%% *}"
if [[ "${msg,,}" != "char"* || "$msg" != *"serial0)" ]]; then
echo "$msg"
fi

dev="${msg#*/dev/p}"
dev="/dev/p${dev%% *}"

fi
fi

if [ ! -c "$dev" ]; then
dev=$(echo 'info chardev' | nc -q 1 -w 1 localhost "$QEMU_PORT" | tr -d '\000')
Expand Down
5 changes: 1 addition & 4 deletions src/reset.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,7 @@ STORAGE="/storage"
# Cleanup files

rm -f /run/dsm.url
rm -f /run/qemu.ip
rm -f /run/qemu.log
rm -f /run/qemu.pid
rm -f /run/qemu.end
rm -f /run/qemu.*

# Cleanup dirs

Expand Down

0 comments on commit 3a507f5

Please sign in to comment.