mirror of
https://github.com/vdsm/virtual-dsm.git
synced 2025-02-24 13:30:02 +08:00
61 lines
1.4 KiB
Bash
61 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
# Docker environment variables
|
|
|
|
: "${HOST_MAC:=""}"
|
|
: "${HOST_DEBUG:=""}"
|
|
: "${HOST_SERIAL:=""}"
|
|
: "${HOST_MODEL:=""}"
|
|
: "${GUEST_SERIAL:=""}"
|
|
|
|
HOST_ARGS=()
|
|
HOST_ARGS+=("-cpu=$CPU_CORES")
|
|
HOST_ARGS+=("-cpu_arch=$HOST_CPU")
|
|
|
|
[ -n "$HOST_MAC" ] && HOST_ARGS+=("-mac=$HOST_MAC")
|
|
[ -n "$HOST_MODEL" ] && HOST_ARGS+=("-model=$HOST_MODEL")
|
|
[ -n "$HOST_SERIAL" ] && HOST_ARGS+=("-hostsn=$HOST_SERIAL")
|
|
[ -n "$GUEST_SERIAL" ] && HOST_ARGS+=("-guestsn=$GUEST_SERIAL")
|
|
|
|
if [[ "$HOST_DEBUG" == [Yy1]* ]]; then
|
|
set -x
|
|
./host.bin "${HOST_ARGS[@]}" &
|
|
{ set +x; } 2>/dev/null
|
|
echo
|
|
else
|
|
./host.bin "${HOST_ARGS[@]}" >/dev/null &
|
|
fi
|
|
|
|
cnt=0
|
|
sleep 0.2
|
|
|
|
while ! nc -z -w2 127.0.0.1 2210 > /dev/null 2>&1; do
|
|
sleep 0.1
|
|
cnt=$((cnt + 1))
|
|
(( cnt > 50 )) && error "Failed to connect to qemu-host.." && exit 58
|
|
done
|
|
|
|
cnt=0
|
|
|
|
while ! nc -z -w2 127.0.0.1 12345 > /dev/null 2>&1; do
|
|
sleep 0.1
|
|
cnt=$((cnt + 1))
|
|
(( cnt > 50 )) && error "Failed to connect to qemu-host.." && exit 59
|
|
done
|
|
|
|
# Configure serial ports
|
|
|
|
if [[ "$CONSOLE" != [Yy]* ]]; then
|
|
SERIAL_OPTS="-serial pty"
|
|
else
|
|
SERIAL_OPTS="-serial mon:stdio"
|
|
fi
|
|
|
|
SERIAL_OPTS="$SERIAL_OPTS \
|
|
-device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x3 \
|
|
-chardev socket,id=charchannel0,host=127.0.0.1,port=12345,reconnect=10 \
|
|
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=vchannel"
|
|
|
|
return 0
|