From f238b9075b2706e4a60061742de9f2d881ebf134 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 22:11:12 +0200 Subject: [PATCH 01/17] Update readme.md --- readme.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/readme.md b/readme.md index 05454e6..1852eb1 100644 --- a/readme.md +++ b/readme.md @@ -1,9 +1,7 @@ -

Virtual DSM for Docker -
+

Virtual DSM for Docker
-
[![Build]][build_url] From fa98edad6af455ee239868e560f34105d015adb7 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 22:25:38 +0200 Subject: [PATCH 02/17] Print debug info --- run/network.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/run/network.sh b/run/network.sh index e3d6518..50d60b2 100644 --- a/run/network.sh +++ b/run/network.sh @@ -25,6 +25,7 @@ configureDHCP() { NETWORK=$(ip -o route | grep "${VM_NET_DEV}" | grep -v default | awk '{print $1}') IP=$(ip address show dev "${VM_NET_DEV}" | grep inet | awk '/inet / { print $2 }' | cut -f1 -d/) + [ "$DEBUG" = "Y" ] && set -x { ip link add link "${VM_NET_DEV}" "${VM_NET_VLAN}" type macvlan mode bridge 2> /dev/null ; rc=$?; } || : if (( rc != 0 )); then @@ -102,6 +103,8 @@ configureDHCP() { echo "docker setting to your container: --device=/dev/vhost-net" && exit 22 fi + [ "$DEBUG" = "Y" ] && { set +x; } 2>/dev/null + # Store IP for Docker healthcheck echo "${DHCP_IP}" > "/var/dsm.ip" @@ -111,6 +114,7 @@ configureDHCP() { configureNAT () { VM_NET_IP='20.20.20.21' + [ "$DEBUG" = "Y" ] && set -x #Create bridge with static IP for the VM guest @@ -188,9 +192,10 @@ configureNAT () { fi DNSMASQ_OPTS=$(echo "$DNSMASQ_OPTS" | sed 's/\t/ /g' | tr -s ' ' | sed 's/^ *//') - [ "$DEBUG" = "Y" ] && echo "$DNSMASQ $DNSMASQ_OPTS" && echo $DNSMASQ ${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} + + [ "$DEBUG" = "Y" ] && { set +x; } 2>/dev/null } # ###################################### From 3101d976f80a9d42458422d917bbf0eaa88b41f2 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 22:28:31 +0200 Subject: [PATCH 03/17] Update serial.sh --- run/serial.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/run/serial.sh b/run/serial.sh index d0e62af..d7b0b68 100644 --- a/run/serial.sh +++ b/run/serial.sh @@ -30,12 +30,11 @@ HOST_ARGS+=("-cpu_arch=${HOST_CPU}") [ -n "$HOST_VERSION" ] && HOST_ARGS+=("-version=${HOST_VERSION}") [ -n "$HOST_TIMESTAMP" ] && HOST_ARGS+=("-ts=${HOST_TIMESTAMP}") -if [ "$DEBUG" = "Y" ]; then - echo -n "./run/host.bin " - echo "${HOST_ARGS[*]}" && echo -fi + [ "$DEBUG" = "Y" ] && set -x ./run/host.bin "${HOST_ARGS[@]}" > /dev/null 2>&1 & + +[ "$DEBUG" = "Y" ] && { set +x; } 2>/dev/null # Configure serial ports From 13a8169947c363f82585da21c99729ab7e638e15 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 22:30:51 +0200 Subject: [PATCH 04/17] Print debug info --- run/run.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/run/run.sh b/run/run.sh index 8f5d346..41c0c63 100755 --- a/run/run.sh +++ b/run/run.sh @@ -72,11 +72,11 @@ EXTRA_OPTS="$EXTRA_OPTS -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,ad ARGS="${DEF_OPTS} ${CPU_OPTS} ${RAM_OPTS} ${MAC_OPTS} ${MON_OPTS} ${SERIAL_OPTS} ${NET_OPTS} ${DISK_OPTS} ${EXTRA_OPTS}" ARGS=$(echo "$ARGS" | sed 's/\t/ /g' | tr -s ' ') -[ "$DEBUG" = "Y" ] && echo "qemu-system-x86_64 ${ARGS}" && echo - set -m ( + [ "$DEBUG" = "Y" ] && set -x qemu-system-x86_64 ${ARGS:+ $ARGS} & echo $! > "${_QEMU_PID}" + [ "$DEBUG" = "Y" ] && { set +x; } 2>/dev/null ) set +m From ed53b1adb45b75db74975290d351aa047ba5ef7e Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 22:31:34 +0200 Subject: [PATCH 05/17] Print debug info --- run/serial.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/run/serial.sh b/run/serial.sh index d7b0b68..69e1af4 100644 --- a/run/serial.sh +++ b/run/serial.sh @@ -30,10 +30,10 @@ HOST_ARGS+=("-cpu_arch=${HOST_CPU}") [ -n "$HOST_VERSION" ] && HOST_ARGS+=("-version=${HOST_VERSION}") [ -n "$HOST_TIMESTAMP" ] && HOST_ARGS+=("-ts=${HOST_TIMESTAMP}") - [ "$DEBUG" = "Y" ] && set -x +[ "$DEBUG" = "Y" ] && set -x ./run/host.bin "${HOST_ARGS[@]}" > /dev/null 2>&1 & - + [ "$DEBUG" = "Y" ] && { set +x; } 2>/dev/null # Configure serial ports From 2c0c45457e142c6956b5890246f85610a6468971 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 22:54:24 +0200 Subject: [PATCH 06/17] Print debug info --- run/network.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/run/network.sh b/run/network.sh index 50d60b2..96d3f00 100644 --- a/run/network.sh +++ b/run/network.sh @@ -66,6 +66,8 @@ configureDHCP() { ip address flush "${VM_NET_TAP}" + { set +x; } 2>/dev/null + TAP_NR=$(/dev/null - # Store IP for Docker healthcheck echo "${DHCP_IP}" > "/var/dsm.ip" @@ -143,6 +143,8 @@ configureNAT () { iptables -A POSTROUTING -t mangle -p udp --dport bootpc -j CHECKSUM --checksum-fill || true fi + { set +x; } 2>/dev/null + #Check port forwarding flag if [[ $(< /proc/sys/net/ipv4/ip_forward) -eq 0 ]]; then { sysctl -w net.ipv4.ip_forward=1 2> /dev/null ; rc=$?; } || : @@ -192,10 +194,12 @@ configureNAT () { fi DNSMASQ_OPTS=$(echo "$DNSMASQ_OPTS" | sed 's/\t/ /g' | tr -s ' ' | sed 's/^ *//') + + [ "$DEBUG" = "Y" ] && set -x $DNSMASQ ${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} - [ "$DEBUG" = "Y" ] && { set +x; } 2>/dev/null + { set +x; } 2>/dev/null } # ###################################### From ffe08bc043ff2685ab1fb34cfe41116c2ea3ba59 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 22:54:51 +0200 Subject: [PATCH 07/17] Print debug info --- run/serial.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/serial.sh b/run/serial.sh index 69e1af4..48fb0d1 100644 --- a/run/serial.sh +++ b/run/serial.sh @@ -34,7 +34,7 @@ HOST_ARGS+=("-cpu_arch=${HOST_CPU}") ./run/host.bin "${HOST_ARGS[@]}" > /dev/null 2>&1 & -[ "$DEBUG" = "Y" ] && { set +x; } 2>/dev/null +{ set +x; } 2>/dev/null # Configure serial ports From b75b81ee3c26425f685300abf836696546658709 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 22:56:07 +0200 Subject: [PATCH 08/17] Print debug info --- run/run.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/run/run.sh b/run/run.sh index 41c0c63..f6a7d4b 100755 --- a/run/run.sh +++ b/run/run.sh @@ -72,14 +72,16 @@ EXTRA_OPTS="$EXTRA_OPTS -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pcie.0,ad ARGS="${DEF_OPTS} ${CPU_OPTS} ${RAM_OPTS} ${MAC_OPTS} ${MON_OPTS} ${SERIAL_OPTS} ${NET_OPTS} ${DISK_OPTS} ${EXTRA_OPTS}" ARGS=$(echo "$ARGS" | sed 's/\t/ /g' | tr -s ' ') +[ "$DEBUG" = "Y" ] && set -x + set -m ( - [ "$DEBUG" = "Y" ] && set -x qemu-system-x86_64 ${ARGS:+ $ARGS} & echo $! > "${_QEMU_PID}" - [ "$DEBUG" = "Y" ] && { set +x; } 2>/dev/null ) set +m +{ set +x; } 2>/dev/null + if (( KERNEL > 4 )); then pidwait -F "${_QEMU_PID}" & wait $! else From 5927e73278c9d31e4b4fd6443aca1dbeb5cb7dd1 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 22:58:10 +0200 Subject: [PATCH 09/17] Print debug info --- run/network.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/network.sh b/run/network.sh index 96d3f00..51672da 100644 --- a/run/network.sh +++ b/run/network.sh @@ -194,7 +194,7 @@ configureNAT () { fi DNSMASQ_OPTS=$(echo "$DNSMASQ_OPTS" | sed 's/\t/ /g' | tr -s ' ' | sed 's/^ *//') - + [ "$DEBUG" = "Y" ] && set -x $DNSMASQ ${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} From 7930770ee7c711f8bca822c41e65a387e6cda5cc Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 23:08:33 +0200 Subject: [PATCH 10/17] Print debug info --- run/network.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/run/network.sh b/run/network.sh index 51672da..0ccbd46 100644 --- a/run/network.sh +++ b/run/network.sh @@ -67,6 +67,7 @@ configureDHCP() { ip address flush "${VM_NET_TAP}" { set +x; } 2>/dev/null + [ "$DEBUG" = "Y" ] && echo TAP_NR=$(/dev/null + [ "$DEBUG" = "Y" ] && echo #Check port forwarding flag if [[ $(< /proc/sys/net/ipv4/ip_forward) -eq 0 ]]; then @@ -169,7 +171,7 @@ configureNAT () { # Build DNS options from container /etc/resolv.conf if [ "$DEBUG" = "Y" ]; then - echo "/etc/resolv.conf:" && echo && cat /etc/resolv.conf && echo + echo && echo "/etc/resolv.conf:" && echo && cat /etc/resolv.conf && echo fi mapfile -t nameservers < <(grep '^nameserver' /etc/resolv.conf | sed 's/\t/ /g' | sed 's/nameserver //' | sed 's/ //g') @@ -195,11 +197,12 @@ configureNAT () { DNSMASQ_OPTS=$(echo "$DNSMASQ_OPTS" | sed 's/\t/ /g' | tr -s ' ' | sed 's/^ *//') - [ "$DEBUG" = "Y" ] && set -x + [ "$DEBUG" = "Y" ] && echo && set -x $DNSMASQ ${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} { set +x; } 2>/dev/null + [ "$DEBUG" = "Y" ] && echo } # ###################################### From a7559ce90339121fb05654d1e23884669075f0b9 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 23:09:09 +0200 Subject: [PATCH 11/17] Print debug info --- run/serial.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/run/serial.sh b/run/serial.sh index 48fb0d1..fea140b 100644 --- a/run/serial.sh +++ b/run/serial.sh @@ -35,6 +35,7 @@ HOST_ARGS+=("-cpu_arch=${HOST_CPU}") ./run/host.bin "${HOST_ARGS[@]}" > /dev/null 2>&1 & { set +x; } 2>/dev/null +[ "$DEBUG" = "Y" ] && echo # Configure serial ports From 65b89aac196a9e58362fea5a6400c741e642db7b Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 23:11:08 +0200 Subject: [PATCH 12/17] Print debug info --- run/network.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/network.sh b/run/network.sh index 0ccbd46..c781df6 100644 --- a/run/network.sh +++ b/run/network.sh @@ -171,7 +171,7 @@ configureNAT () { # Build DNS options from container /etc/resolv.conf if [ "$DEBUG" = "Y" ]; then - echo && echo "/etc/resolv.conf:" && echo && cat /etc/resolv.conf && echo + echo "/etc/resolv.conf:" && echo && cat /etc/resolv.conf && echo fi mapfile -t nameservers < <(grep '^nameserver' /etc/resolv.conf | sed 's/\t/ /g' | sed 's/nameserver //' | sed 's/ //g') From 84133fb68095f0bb445095a3c454d2b388ea29f4 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 23:12:42 +0200 Subject: [PATCH 13/17] Print debug info --- run/network.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/network.sh b/run/network.sh index c781df6..7af26b3 100644 --- a/run/network.sh +++ b/run/network.sh @@ -197,7 +197,7 @@ configureNAT () { DNSMASQ_OPTS=$(echo "$DNSMASQ_OPTS" | sed 's/\t/ /g' | tr -s ' ' | sed 's/^ *//') - [ "$DEBUG" = "Y" ] && echo && set -x + [ "$DEBUG" = "Y" ] && set -x $DNSMASQ ${DNSMASQ_OPTS:+ $DNSMASQ_OPTS} From af262fd7df821f6023c5a93f007f7986608fd207 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 23:22:06 +0200 Subject: [PATCH 14/17] Print debug info --- run/serial.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/run/serial.sh b/run/serial.sh index fea140b..9886b4f 100644 --- a/run/serial.sh +++ b/run/serial.sh @@ -30,12 +30,14 @@ HOST_ARGS+=("-cpu_arch=${HOST_CPU}") [ -n "$HOST_VERSION" ] && HOST_ARGS+=("-version=${HOST_VERSION}") [ -n "$HOST_TIMESTAMP" ] && HOST_ARGS+=("-ts=${HOST_TIMESTAMP}") -[ "$DEBUG" = "Y" ] && set -x - -./run/host.bin "${HOST_ARGS[@]}" > /dev/null 2>&1 & - -{ set +x; } 2>/dev/null -[ "$DEBUG" = "Y" ] && echo +if [ "$DEBUG" = "Y" ]; then + set -x + ./run/host.bin "${HOST_ARGS[@]}" & + { set +x; } 2>/dev/null + echo +else + ./run/host.bin "${HOST_ARGS[@]}" > /dev/null 2>&1 & +fi # Configure serial ports From ad2b32f955f8cb479cdc47587caab972723fa05b Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 23:26:55 +0200 Subject: [PATCH 15/17] Print debug info --- run/install.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/run/install.sh b/run/install.sh index aeae0ce..fd0a05c 100644 --- a/run/install.sh +++ b/run/install.sh @@ -31,6 +31,8 @@ TMP="$STORAGE/tmp" RD="$TMP/rd.gz" rm -rf "$TMP" && mkdir -p "$TMP" +[ "$DEBUG" = "Y" ] && set -x + LOC="$DL/release/7.0.1/42218/DSM_VirtualDSM_42218.pat" { curl -r 64493568-69886247 -sfk -o "$RD" "$LOC"; rc=$?; } || : @@ -205,3 +207,6 @@ mv -f "$BOOT" "$STORAGE"/"$BASE".boot.img mv -f "$SYSTEM" "$STORAGE"/"$BASE".system.img rm -rf "$TMP" + +{ set +x; } 2>/dev/null +[ "$DEBUG" = "Y" ] && echo From e1fb1360570dfb878051f30a85758d36433d6d9e Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 23:49:46 +0200 Subject: [PATCH 16/17] Set hostname --- run/network.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/run/network.sh b/run/network.sh index 7af26b3..af5b878 100644 --- a/run/network.sh +++ b/run/network.sh @@ -42,8 +42,6 @@ configureDHCP() { ip route add "${NETWORK}" dev "${VM_NET_VLAN}" metric 0 ip route add default via "${GATEWAY}" - echo "INFO: Acquiring an IP address via DHCP using MAC address ${VM_NET_MAC}..." - { ip link add link "${VM_NET_DEV}" name "${VM_NET_TAP}" address "${VM_NET_MAC}" type macvtap mode bridge 2> /dev/null ; rc=$?; } || : if (( rc != 0 )); then @@ -56,7 +54,9 @@ configureDHCP() { ip address flush "${VM_NET_DEV}" ip address flush "${VM_NET_TAP}" - DHCP_IP=$(dhclient -v "${VM_NET_TAP}" 2>&1 | grep ^bound | cut -d' ' -f3) + echo "INFO: Acquiring an IP address via DHCP using MAC address ${VM_NET_MAC}..." + + DHCP_IP=$(dhclient -v -H "${VM_NET_HOST}" "${VM_NET_TAP}" 2>&1 | grep ^bound | cut -d' ' -f3) if [[ "${DHCP_IP}" == [0-9.]* ]]; then echo "INFO: Successfully acquired IP ${DHCP_IP} from the DHCP server..." From 277fb7454650caf96f1720694d38b908dc9053e8 Mon Sep 17 00:00:00 2001 From: Kroese Date: Mon, 1 May 2023 23:56:32 +0200 Subject: [PATCH 17/17] dhclient --- run/network.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run/network.sh b/run/network.sh index af5b878..81d87ce 100644 --- a/run/network.sh +++ b/run/network.sh @@ -56,7 +56,7 @@ configureDHCP() { echo "INFO: Acquiring an IP address via DHCP using MAC address ${VM_NET_MAC}..." - DHCP_IP=$(dhclient -v -H "${VM_NET_HOST}" "${VM_NET_TAP}" 2>&1 | grep ^bound | cut -d' ' -f3) + DHCP_IP=$(dhclient -v "${VM_NET_TAP}" 2>&1 | grep ^bound | cut -d' ' -f3) if [[ "${DHCP_IP}" == [0-9.]* ]]; then echo "INFO: Successfully acquired IP ${DHCP_IP} from the DHCP server..."