path: root/audio/alsa-tools/99-tascam.rules
blob: 6d9f2d52ba75882dfa07e91c7c2834226d5ce5a6 (plain)
# udev rules for hotplugging Tascam USB audio devices.

# This file is part of the alsa-tools build, released
# under the WTFPL. See for details.

# The vendor/product IDs were taken from /usr/share/usb.ids. The rules
# were adapted from
# (no idea who the author is, no name given on the page).

# Tascam's USB Vendor ID is 1604.
# Each device has two product IDs: first the initial product ID when it's
# plugged in. Then after the 1st stage firmware is loaded with fxload,
# the device re-identifies itself with a second product ID... when udev
# sees this, we want it to load the 2nd stage firmware with usx2yloader.

# Device           Inititial ID   2nd-stage ID
# Tascam US-122    8006           8007
# Tascam US-224    8004           8005
# Tascam US-428    8000           8001

# Note that I haven't tested the 224 or 428 rules, because I don't own
# either of these devices. If you end up having to modify the rules to
# make them work, please send me your modified version of this file
# so I can include it in a future version of my SlackBuild. Of course,
# you don't *have* to do this (the WTFPL doesn't require it), I'm just
# asking you nicely :)

# US-122:
BUS=="usb", ACTION=="add", ATTRS{idProduct}=="8006", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/sbin/fxload -D %N -s /usr/share/alsa/firmware/usx2yloader/tascam_loader.ihx -I /usr/share/alsa/firmware/usx2yloader/us122fw.ihx'"
BUS=="usb", ACTION=="add", ATTRS{idProduct}=="8007", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/usr/bin/usx2yloader'"

# US-224:
BUS=="usb", ACTION=="add", ATTRS{idProduct}=="8004", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/sbin/fxload -D %N -s /usr/share/alsa/firmware/usx2yloader/tascam_loader.ihx -I /usr/share/alsa/firmware/usx2yloader/us224fw.ihx'"
BUS=="usb", ACTION=="add", ATTRS{idProduct}=="8005", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/usr/bin/usx2yloader'"

# US-428. Note that we aren't starting the us428control daemon, so
# the control surfaces won't work as MIDI controls.
BUS=="usb", ACTION=="add", ATTRS{idProduct}=="8000", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/sbin/fxload -D %N -s /usr/share/alsa/firmware/usx2yloader/tascam_loader.ihx -I /usr/share/alsa/firmware/usx2yloader/us428fw.ihx'"
BUS=="usb", ACTION=="add", ATTRS{idProduct}=="8001", ATTRS{idVendor}=="1604", RUN+="/bin/sh -c '/usr/bin/usx2yloader'"