virtual-dsm/run/serial.sh

47 lines
1.4 KiB
Bash
Raw Normal View History

2023-03-28 06:45:24 +02:00
#!/bin/bash
2023-04-14 00:56:45 +02:00
set -eu
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-04-26 18:33:52 +02:00
: ${HOST_BUILD:=''}
: ${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-04-17 19:31:49 +02:00
HOST_CPU=$(lscpu | sed -nr '/Model name/ s/.*:\s*(.*) @ .*/\1/p' | sed ':a;s/ / /;ta' | 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-04-14 15:17:24 +02:00
HOST_CPU="QEMU, Virtual CPU, X86_64"
2023-04-08 02:22:28 +02:00
fi
2023-04-08 01:30:25 +02:00
2023-04-26 18:45:12 +02:00
ARGS="-cpu_arch=\"${HOST_CPU}\""
[ -n "$CPU_CORES" ] && ARGS="$ARGS -cpu=\"${CPU_CORES}\""
[ -n "$HOST_BUILD" ] && ARGS="$ARGS -build=\"${HOST_BUILD}\""
[ -n "$HOST_SERIAL" ] && ARGS="$ARGS -hostsn=\"${HOST_SERIAL}\""
[ -n "$HOST_TIMESTAMP" ] && ARGS="$ARGS -ts=\"${HOST_TIMESTAMP}\""
[ -n "$GUEST_SERIAL" ] && ARGS="$ARGS -guestsn=\"${GUEST_SERIAL}\""
[ -n "$HOST_VERSION" ] && ARGS="$ARGS -version=\"${HOST_VERSION}\""
2023-04-26 13:30:30 +02:00
2023-04-26 18:32:47 +02:00
if [ "$DEBUG" = "Y" ]; then
echo -n "./run/host.bin "
echo "${ARGS}" && echo
fi
2023-04-26 13:30:30 +02:00
./run/host.bin ${ARGS:+ $ARGS} > /dev/null 2>&1 &
2023-04-02 21:38:34 +02:00
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"