From 818710a3e7595fbd09bfd43959c0d14515e1d4d6 Mon Sep 17 00:00:00 2001 From: Antonio Ospite Date: Sun, 11 Sep 2011 20:42:39 +0200 Subject: [PATCH 1/1] Initial import of the other pieces of knect_audio_setup --- Makefile | 14 ++++++++++++ README | 7 ++++++ contrib/55-kinect_audio.rules.in | 2 ++ kinect_fetch_fw | 48 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 Makefile create mode 100644 README create mode 100644 contrib/55-kinect_audio.rules.in create mode 100755 kinect_fetch_fw diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..57deaf8 --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +all: + make -C kinect_upload_fw + +install: + make -C kinect_upload_fw install + install -d $(DESTDIR)/lib/udev/rules.d + install -m 644 contrib/55-kinect_audio.rules.in $(DESTDIR)/lib/udev/rules.d/55-kinect_audio.rules + + # We prare the firmware location, but it should be downloaded at + # package installation time + install -d $(DESTDIR)/lib/firmware/kinect + +clean: + make -C kinect_upload_fw clean diff --git a/README b/README new file mode 100644 index 0000000..8cc103b --- /dev/null +++ b/README @@ -0,0 +1,7 @@ +Install kinect_upload_fw first: + + $ make install + +Then run the firmware download script: + + $ ./kinect_fetch_fw /lib/firmware/kinect diff --git a/contrib/55-kinect_audio.rules.in b/contrib/55-kinect_audio.rules.in new file mode 100644 index 0000000..25ea713 --- /dev/null +++ b/contrib/55-kinect_audio.rules.in @@ -0,0 +1,2 @@ +# Rule to load the Kinect UAC firmware on the "generic" usb device +ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="02ad", RUN+="@LOADER_PATH@ @FIRMWARE_PATH@" diff --git a/kinect_fetch_fw b/kinect_fetch_fw new file mode 100755 index 0000000..cde470c --- /dev/null +++ b/kinect_fetch_fw @@ -0,0 +1,48 @@ +#!/bin/sh +# +# Fetch and install the firmware to get the kinect Audio working on linux +# +# Copyright (C) 2011 Antonio Ospite +# +# 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. +# +# 7z from p7zip-full is needed, it can be installed with +# sudo aptitude install p7zip-full + +set -e + +SDK_URL=${SDK_URL:-"http://download.microsoft.com/download/8/4/C/84C9EF40-EE49-42C2-AE26-C6E30921182F/KinectSDK32.msi"} + +[ $# -lt 1 ] && { echo "usage: $(basename "$0") []"; exit 1; } +FW_DESTDIR=$1 +LOADER_PATH=${2:-"/usr/local/sbin/kinect_upload_fw"} + +command -v wget >/dev/null 2>&1 || { echo "$(basename "$0"): command 'wget' is needed." ; exit 1; } +command -v 7z >/dev/null 2>&1 || { echo "$(basename "$0"): command '7z' is needed." ; exit 1; } + +TEMPDIR="$(mktemp -d)" +trap 'rm -rf "$TEMPDIR" >/dev/null 2>&1' 0 +trap "exit 2" 1 2 3 15 + +cd "$TEMPDIR" +ARCHIVE_NAME=$(basename "$SDK_URL") +rm -f "$ARCHIVE_NAME" && wget "$SDK_URL" -O "$ARCHIVE_NAME" +7z e -y -r "$ARCHIVE_NAME" "UACFirmware.*" + +FW_FILE=$(ls UACFirmware.* | cut -d ' ' -f 1) + +install -d "$DESTDIR/$FW_DESTDIR" +install -m 644 "$FW_FILE" "$DESTDIR/$FW_DESTDIR" + +FIRMWARE_PATH=$FW_DESTDIR/$(basename "$FW_FILE") + +if [ -f "${DESTDIR}/lib/udev/rules.d/55-kinect_audio.rules" ]; +then + sed -e "s|@LOADER_PATH@|$LOADER_PATH|g" \ + -e "s|@FIRMWARE_PATH@|$FIRMWARE_PATH|g" \ + -i "${DESTDIR}/lib/udev/rules.d/55-kinect_audio.rules" +fi -- 2.1.4