diff --git a/scripts/generate_manifest.sh b/scripts/generate_manifest.sh
index b14df8acaf71d9c16da709d97d3db2a52a603ec0..3b2e65dfbd1829c5fd82d389f9fb8679072bdfdc 100755
--- a/scripts/generate_manifest.sh
+++ b/scripts/generate_manifest.sh
@@ -20,6 +20,7 @@ generate_line() {
 	local model="$1"
 	local file="$2"
 
+	[ ! -e "${GLUON_IMAGEDIR}/sysupgrade/$file" ] || echo "$model" "$GLUON_RELEASE" "$(scripts/sha256sum.sh "${GLUON_IMAGEDIR}/sysupgrade/$file")" "$file"
 	[ ! -e "${GLUON_IMAGEDIR}/sysupgrade/$file" ] || echo "$model" "$GLUON_RELEASE" "$(scripts/sha512sum.sh "${GLUON_IMAGEDIR}/sysupgrade/$file")" "$file"
 }
 
diff --git a/scripts/sha256sum.sh b/scripts/sha256sum.sh
new file mode 100755
index 0000000000000000000000000000000000000000..e4f6f3e5b9e8fc532158e28d39c9df3ec6d6e45e
--- /dev/null
+++ b/scripts/sha256sum.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+check_command() {
+	which "$1" >/dev/null 2>&1
+}
+
+if check_command sha256sum; then
+	ret="$(sha256sum "$@")"
+elif check_command shasum; then
+	ret="$(shasum -a 256 "$@")"
+elif check_command cksum; then
+	ret="$(cksum -q -a sha256 "$@")"
+else
+	echo "$0: no suitable sha256sum implementation was found" >&2
+	exit 1
+fi
+
+[ "$?" -eq 0 ] || exit 1
+
+echo "$ret" | awk '{ print $1 }'