Serial emulator

This commit is contained in:
Kroese 2023-03-27 23:04:42 +02:00
parent 00fa5cc61f
commit c168c3fb4c
6 changed files with 9 additions and 11 deletions

View File

@ -1,9 +1,9 @@
FROM golang:1.16 AS builder FROM golang:1.16 AS builder
COPY vdsm-serial/ /src/vdsm-serial/ COPY serial/ /src/serial/
WORKDIR /src/vdsm-serial WORKDIR /src/serial
RUN go get -d -v golang.org/x/net/html RUN go get -d -v golang.org/x/net/html
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /src/vdsm-serial/main . RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o /src/serial/main .
FROM debian:bullseye-20230109-slim FROM debian:bullseye-20230109-slim
@ -28,7 +28,7 @@ COPY qemu-ifdown /run/
COPY qemu-ifup /run/ COPY qemu-ifup /run/
COPY run.sh /run/ COPY run.sh /run/
COPY server.sh /run/ COPY server.sh /run/
COPY --from=builder /src/vdsm-serial/main /run/serial.bin COPY --from=builder /src/serial/main /run/serial.bin
RUN ["chmod", "+x", "/run/generate-dhcpd-conf"] RUN ["chmod", "+x", "/run/generate-dhcpd-conf"]
RUN ["chmod", "+x", "/run/qemu-ifdown"] RUN ["chmod", "+x", "/run/qemu-ifdown"]
@ -48,6 +48,7 @@ VOLUME /images
EXPOSE 5000 EXPOSE 5000
EXPOSE 5001 EXPOSE 5001
ENV RAM_SIZE 512M
ENV DISK_SIZE 16G ENV DISK_SIZE 16G
ENV URL https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_VirtualDSM_42218.pat ENV URL https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM_VirtualDSM_42218.pat
@ -57,6 +58,3 @@ ENV URL https://global.synologydownload.com/download/DSM/release/7.0.1/42218/DSM
ENTRYPOINT ["/run/run.sh"] ENTRYPOINT ["/run/run.sh"]
# Mostly users will probably want to configure memory usage.
CMD ["-m", "512M"]

2
run.sh
View File

@ -176,7 +176,7 @@ echo "Booting OS..."
# -enable-kvm: Use KVM for this VM (much faster for our case). # -enable-kvm: Use KVM for this VM (much faster for our case).
# -nographic: disable SDL graphics. # -nographic: disable SDL graphics.
# -serial mon:stdio: use "monitored stdio" as our serial output. # -serial mon:stdio: use "monitored stdio" as our serial output.
exec qemu-system-x86_64 -name Synology -enable-kvm -nographic -serial mon:stdio \ exec qemu-system-x86_64 -name Synology -m $RAM_SIZE -enable-kvm -nographic -serial mon:stdio \
"$@" \ "$@" \
-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 \ -device virtio-serial-pci,id=virtio-serial0,bus=pci.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 isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,host=127.0.0.1,port=12345,reconnect=10 \

View File

@ -29,10 +29,10 @@ var GuestSN = flag.String("guestsn", "0000000000000", "Guest SN, 13 bytes")
var GuestUUID = flag.String("guestuuid", "ba13a19a-c0c1-4fef-9346-915ed3b98341", "Guest UUID") var GuestUUID = flag.String("guestuuid", "ba13a19a-c0c1-4fef-9346-915ed3b98341", "Guest UUID")
var GuestCPUs = flag.Int("cpu", 1, "Num of Guest cpu") var GuestCPUs = flag.Int("cpu", 1, "Num of Guest cpu")
var GuestCPU_ARCH = flag.String("cpu_arch", "QEMU, Virtual CPU, X86_64", "CPU arch") var GuestCPU_ARCH = flag.String("cpu_arch", "QEMU, Virtual CPU, X86_64", "CPU arch")
var HostDSMBuildNumber = flag.Int("buildnumber", 42218, "Build Number of Host") var HostDSMBuildNumber = flag.Int("buildnumber", 42962, "Build Number of Host")
var HostDSMfixNumber = flag.Int("fixNumber", 0, "Fix Number of Host") var HostDSMfixNumber = flag.Int("fixNumber", 0, "Fix Number of Host")
var VMMVersion = flag.String("vmmversion", "2.5.5-11487", "VMM version") var VMMVersion = flag.String("vmmversion", "2.6.1-12139", "VMM version")
var VMMTimestamp = flag.Int("vmmts", 1650802981032, "VMM Timestamp") var VMMTimestamp = flag.Int("vmmts", 1679863686, "VMM Timestamp")
// synowebapi --exec api=SYNO.Core.Package method=get id=Virtualization // synowebapi --exec api=SYNO.Core.Package method=get id=Virtualization