File: kinect_fetch_fw

package info (click to toggle)
kinect-audio-setup 0.5-1
  • links: PTS, VCS
  • area: contrib
  • in suites: bullseye, buster, sid, stretch
  • size: 220 kB
  • ctags: 34
  • sloc: ansic: 270; sh: 94; makefile: 69
file content (64 lines) | stat: -rwxr-xr-x 2,145 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/sh
#
# kinect_fetch_fw - Fetch and install the Microsoft Kinect UAC firmware
#
# Copyright (C) 2011-2016  Antonio Ospite <ao2@ao2.it>
#
# This program is free software. It comes without any warranty, to
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, Version 2, as published by Sam Hocevar. See
# http://sam.zoy.org/wtfpl/COPYING for more details.
#
# wget and 7z from p7zip-full are needed, they can be installed with
#   sudo aptitude install wget p7zip-full
#
# NOTE: p7zip-full >= 9.20 is required in order to extract .msi files
#       correctly

set -e

SDK_URL=${SDK_URL:-"http://download.microsoft.com/download/F/9/9/F99791F2-D5BE-478A-B77A-830AD14950C3/KinectSDK-v1.0-beta2-x86.msi"}
SDK_MD5="40764fe9e00911bda5095e5be777e311"

[ $# -lt 1 ] && { echo "usage: $(basename "$0") <firmware destdir>" 1>&2; exit 1; }
FW_DESTDIR=$(readlink -m $1)

command -v wget >/dev/null 2>&1 || { echo "$(basename "$0"): command 'wget' is needed." 1>&2 ; exit 1; }
command -v 7z >/dev/null 2>&1 || { echo "$(basename "$0"): command '7z' is needed." 1>&2; exit 1; }

TEMPDIR=$(mktemp -d)
trap 'rm -rf "$TEMPDIR" >/dev/null 2>&1' 0
trap "exit 2" 1 2 3 15

cat << EOM

This script is going to download the UAC Firmware for the Microsoft
Kinect Sensor device from the Microsoft Kinect for Windows SDK:
http://kinectforwindows.org/

The full license of the SDK can be found at:
http://research.microsoft.com/en-us/um/legal/kinectsdk-tou_noncommercial.htm

EOM

cd "$TEMPDIR"
ARCHIVE_NAME=$(basename "$SDK_URL")
rm -f "$ARCHIVE_NAME" && wget "$SDK_URL" -O "$ARCHIVE_NAME"

ARCHIVE_MD5=$(md5sum "$ARCHIVE_NAME" | grep --only-matching -m 1 '^[0-9a-f]*')
if [ "$ARCHIVE_MD5" != "$SDK_MD5" ];
then
  echo "$(basename "$0"): Invalid hash for file '$ARCHIVE_NAME'." 1>&2
  exit 1
fi

echo -n "Extracting the UAC firmware..."
7z e -y -r "$ARCHIVE_NAME" "UACFirmware.*" > /dev/null
echo " done."

FW_FILE=$(ls UACFirmware.* | cut -d ' ' -f 1)
FIRMWARE_PATH="${FW_DESTDIR}/UACFirmware"

install -d "$FW_DESTDIR"
install -m 644 "$FW_FILE" "$FIRMWARE_PATH"