Skip to content

Commit

Permalink
Initial ARM support
Browse files Browse the repository at this point in the history
Initial ARM support
  • Loading branch information
kroese committed May 24, 2023
2 parents e507e57 + e8e51c6 commit d2ec43d
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 28 deletions.
61 changes: 36 additions & 25 deletions run/install.sh
Expand Up @@ -10,11 +10,12 @@ DL="https://global.synologydownload.com/download/DSM"
if [ -z "$URL" ]; then

URL="$DL/release/7.2/64561/DSM_VirtualDSM_64561.pat"
#URL="$DL/release/7.0.1/42218/DSM_VirtualDSM_42218.pat"
#URL="$DL/release/7.1.1/42962-1/DSM_VirtualDSM_42962.pat"

fi

[ "$ARCH" != "amd64" ] && URL="$DL/release/7.0.1/42218/DSM_VirtualDSM_42218.pat"

# Check if output is to interactive TTY
if [ -t 1 ]; then
PROGRESS="--progress=bar:noscroll"
Expand All @@ -36,7 +37,7 @@ rm -rf "$TMP" && mkdir -p "$TMP"

[[ "${DEBUG}" == [Yy1]* ]] && set -x

if [ ! -f "${RDC}" ]; then
if [ ! -f "${RDC}" ] && [ "$ARCH" == "amd64" ]; then

info "Install: Downloading installer..."

Expand Down Expand Up @@ -68,28 +69,32 @@ if [ ! -f "${RDC}" ]; then

fi

{ xz -dc <"$RDC" >"$TMP/rd" 2>/dev/null; rc=$?; } || :
(( rc != 1 )) && error "Failed to unxz $RDC, reason $rc" && exit 91
if [ -f "${RDC}" ] && [ "$ARCH" == "amd64" ]; then

{ (cd "$TMP" && cpio -idm <"$TMP/rd" 2>/dev/null); rc=$?; } || :
(( rc != 0 )) && error "Failed to cpio $RDC, reason $rc" && exit 92
{ xz -dc <"$RDC" >"$TMP/rd" 2>/dev/null; rc=$?; } || :
(( rc != 1 )) && error "Failed to unxz $RDC, reason $rc" && exit 91

mkdir -p /run/extract
for file in $TMP/usr/lib/libcurl.so.4 \
$TMP/usr/lib/libmbedcrypto.so.5 \
$TMP/usr/lib/libmbedtls.so.13 \
$TMP/usr/lib/libmbedx509.so.1 \
$TMP/usr/lib/libmsgpackc.so.2 \
$TMP/usr/lib/libsodium.so \
$TMP/usr/lib/libsynocodesign-ng-virtual-junior-wins.so.7 \
$TMP/usr/syno/bin/scemd; do
cp "$file" /run/extract/
done
{ (cd "$TMP" && cpio -idm <"$TMP/rd" 2>/dev/null); rc=$?; } || :
(( rc != 0 )) && error "Failed to cpio $RDC, reason $rc" && exit 92

mv /run/extract/scemd /run/extract/syno_extract_system_patch
chmod +x /run/extract/syno_extract_system_patch
mkdir -p /run/extract
for file in $TMP/usr/lib/libcurl.so.4 \
$TMP/usr/lib/libmbedcrypto.so.5 \
$TMP/usr/lib/libmbedtls.so.13 \
$TMP/usr/lib/libmbedx509.so.1 \
$TMP/usr/lib/libmsgpackc.so.2 \
$TMP/usr/lib/libsodium.so \
$TMP/usr/lib/libsynocodesign-ng-virtual-junior-wins.so.7 \
$TMP/usr/syno/bin/scemd; do
cp "$file" /run/extract/
done

rm -rf "$TMP" && mkdir -p "$TMP"
mv /run/extract/scemd /run/extract/syno_extract_system_patch
chmod +x /run/extract/syno_extract_system_patch

rm -rf "$TMP" && mkdir -p "$TMP"

fi

info "Install: Downloading $(basename "$URL")..."

Expand All @@ -110,12 +115,18 @@ fi
info "Install: Extracting downloaded image..."

if { tar tf "$PAT"; } >/dev/null 2>&1; then
tar xpf "$PAT" -C "$TMP/."

tar xpf "$PAT" -C "$TMP/."

else
export LD_LIBRARY_PATH="/run/extract"
{ /run/extract/syno_extract_system_patch "$PAT" "$TMP/."; rc=$?; } || :
(( rc != 0 )) && error "Failed to extract PAT file, reason $rc" && exit 63
export LD_LIBRARY_PATH=""

[ "$ARCH" != "amd64" ] && error "Wrong architecture: $ARCH" && exit 65

export LD_LIBRARY_PATH="/run/extract"
{ /run/extract/syno_extract_system_patch "$PAT" "$TMP/."; rc=$?; } || :
(( rc != 0 )) && error "Failed to extract PAT file, reason $rc" && exit 63
export LD_LIBRARY_PATH=""

fi

HDA="$TMP/hda1"
Expand Down
6 changes: 4 additions & 2 deletions run/run.sh
Expand Up @@ -62,8 +62,10 @@ else
fi

if [ -n "${KVM_ERR}" ]; then
error "KVM acceleration not detected ${KVM_ERR}, see the FAQ about this."
[[ "${DEBUG}" != [Yy1]* ]] && exit 88
if [ "$ARCH" == "amd64" ]; then
error "KVM acceleration not detected ${KVM_ERR}, see the FAQ about this."
[[ "${DEBUG}" != [Yy1]* ]] && exit 88
fi
else
KVM_OPTS=",accel=kvm -enable-kvm -cpu host"
fi
Expand Down
6 changes: 5 additions & 1 deletion run/serial.sh
Expand Up @@ -18,7 +18,11 @@ fi
if [ -n "$HOST_CPU" ]; then
HOST_CPU="$HOST_CPU,,"
else
HOST_CPU="QEMU, Virtual CPU, X86_64"
if [ "$ARCH" == "amd64" ]; then
HOST_CPU="QEMU, Virtual CPU, X86_64"
else
HOST_CPU="QEMU, Virtual CPU, $ARCH"
fi
fi

HOST_ARGS=()
Expand Down

0 comments on commit d2ec43d

Please sign in to comment.