2023-03-28 06:45:24 +02:00
|
|
|
#!/bin/bash
|
2023-05-03 19:01:08 +02:00
|
|
|
set -Eeuo pipefail
|
2023-03-28 06:45:24 +02:00
|
|
|
|
2023-04-23 01:46:17 +02:00
|
|
|
# Docker environment variables
|
2023-04-08 01:15:41 +02:00
|
|
|
|
2023-04-14 15:17:24 +02:00
|
|
|
: ${HOST_CPU:=''}
|
2023-05-29 02:10:10 +02:00
|
|
|
: ${HOST_MAC:=''}
|
2023-04-26 18:33:52 +02:00
|
|
|
: ${HOST_BUILD:=''}
|
2023-05-02 01:31:29 +02:00
|
|
|
: ${HOST_DEBUG:=''}
|
2023-04-26 18:33:52 +02:00
|
|
|
: ${HOST_SERIAL:=''}
|
|
|
|
: ${GUEST_SERIAL:=''}
|
|
|
|
: ${HOST_VERSION:=''}
|
|
|
|
: ${HOST_TIMESTAMP:=''}
|
2023-04-02 21:38:34 +02:00
|
|
|
|
2023-04-14 15:17:24 +02:00
|
|
|
if [ -z "$HOST_CPU" ]; then
|
2023-05-19 18:30:50 +02:00
|
|
|
HOST_CPU=$(lscpu | grep 'Model name' | cut -f 2 -d ":" | awk '{$1=$1}1' | sed 's# @.*##g' | sed s/"(R)"//g | sed 's/[^[:alnum:] ]\+/ /g' | sed 's/ */ /g')
|
2023-04-14 15:17:24 +02:00
|
|
|
fi
|
2023-04-08 02:22:28 +02:00
|
|
|
|
2023-04-14 15:17:24 +02:00
|
|
|
if [ -n "$HOST_CPU" ]; then
|
|
|
|
HOST_CPU="$HOST_CPU,,"
|
2023-04-08 02:22:28 +02:00
|
|
|
else
|
2023-05-24 23:21:30 +02:00
|
|
|
if [ "$ARCH" == "amd64" ]; then
|
|
|
|
HOST_CPU="QEMU, Virtual CPU, X86_64"
|
|
|
|
else
|
|
|
|
HOST_CPU="QEMU, Virtual CPU, $ARCH"
|
|
|
|
fi
|
2023-04-08 02:22:28 +02:00
|
|
|
fi
|
2023-04-08 01:30:25 +02:00
|
|
|
|
2023-04-26 20:55:53 +02:00
|
|
|
HOST_ARGS=()
|
2023-05-29 02:10:10 +02:00
|
|
|
HOST_ARGS+=("-cpu=${CPU_CORES}")
|
2023-04-26 20:55:53 +02:00
|
|
|
HOST_ARGS+=("-cpu_arch=${HOST_CPU}")
|
2023-04-26 18:45:12 +02:00
|
|
|
|
2023-05-29 02:10:10 +02:00
|
|
|
[ -n "$HOST_MAC" ] && HOST_ARGS+=("-mac=${HOST_MAC}")
|
2023-04-26 20:55:53 +02:00
|
|
|
[ -n "$HOST_BUILD" ] && HOST_ARGS+=("-build=${HOST_BUILD}")
|
|
|
|
[ -n "$HOST_SERIAL" ] && HOST_ARGS+=("-hostsn=${HOST_SERIAL}")
|
|
|
|
[ -n "$GUEST_SERIAL" ] && HOST_ARGS+=("-guestsn=${GUEST_SERIAL}")
|
|
|
|
[ -n "$HOST_VERSION" ] && HOST_ARGS+=("-version=${HOST_VERSION}")
|
2023-04-27 14:31:53 +02:00
|
|
|
[ -n "$HOST_TIMESTAMP" ] && HOST_ARGS+=("-ts=${HOST_TIMESTAMP}")
|
2023-04-26 18:45:12 +02:00
|
|
|
|
2023-05-06 13:59:14 +02:00
|
|
|
if [[ "${HOST_DEBUG}" == [Yy1]* ]]; then
|
2023-05-01 23:22:06 +02:00
|
|
|
set -x
|
|
|
|
./run/host.bin "${HOST_ARGS[@]}" &
|
|
|
|
{ set +x; } 2>/dev/null
|
|
|
|
echo
|
|
|
|
else
|
2023-05-27 07:13:43 +02:00
|
|
|
./run/host.bin "${HOST_ARGS[@]}" 2> /dev/null &
|
2023-05-01 23:22:06 +02:00
|
|
|
fi
|
2023-04-02 21:38:34 +02:00
|
|
|
|
2023-04-26 20:38:51 +02:00
|
|
|
# Configure serial ports
|
|
|
|
|
2023-04-19 16:12:57 +02:00
|
|
|
SERIAL_OPTS="\
|
2023-04-14 00:56:45 +02:00
|
|
|
-serial mon:stdio \
|
|
|
|
-device virtio-serial-pci,id=virtio-serial0,bus=pcie.0,addr=0x3 \
|
|
|
|
-chardev pty,id=charserial0 \
|
|
|
|
-device isa-serial,chardev=charserial0,id=serial0 \
|
|
|
|
-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"
|