summaryrefslogtreecommitdiffstats
path: root/audio/alsa-tools/tascam-us122-HOWTO
diff options
context:
space:
mode:
Diffstat (limited to 'audio/alsa-tools/tascam-us122-HOWTO')
-rw-r--r--audio/alsa-tools/tascam-us122-HOWTO56
1 files changed, 47 insertions, 9 deletions
diff --git a/audio/alsa-tools/tascam-us122-HOWTO b/audio/alsa-tools/tascam-us122-HOWTO
index ea36dcfce3..7bf066d9fa 100644
--- a/audio/alsa-tools/tascam-us122-HOWTO
+++ b/audio/alsa-tools/tascam-us122-HOWTO
@@ -1,4 +1,6 @@
-How to get a Tascam US-122 working with Slackware 13.37.
+How to get a Tascam US-122 working with Slackware 13.37 and later.
+
+[ 20140823 bkw: updated to include usbcore.autosuspend=-1 ]
The Tascam US-122 is a bus-powered USB 1.1 audio interface, with 2
channels of input (either 1/4" unbalanced or XLR balanced) and adjustable
@@ -44,7 +46,43 @@ or via "su -". Don't use "su" without the hyphen though).
Steps
-----
-1. To get the US-122 working without audio glitches:
+1. For 3.x series kernels, you'll have to disable USB autosuspend.
+Actually this is a good idea for any system that uses USB audio, or
+even any desktop system that doesn't need to save every last milliwatt
+of power possible. If you don't do this, the US-122 will usually work
+for a few seconds, then freeze up with "incomplete URB" messages in dmesg.
+
+In Slackware's kernels, usbcore is built into the kernel (even the
+-generic one), so you'll have to pass a parameter on the kernel's
+command line.
+
+In /etc/lilo.conf, in the section for your kernel, add a line like
+this:
+
+ append="usbcore.autosuspend=-1"
+
+If you already had an append=, add usbcore.autosuspend=-1 to the options
+inside the double-quotes. An example might be:
+
+ append="threadirqs usbcore.autosuspend=-1"
+
+(BTW, threadirqs is a useful option for systems that need low latency for
+realtime audio).
+
+Don't forget to re-run "lilo" and reboot after editing lilo.conf.
+
+There's another method for disabling autosuspend that doesn't require
+a reboot. Do this:
+
+# echo "-1" > /sys/module/usbcore/parameters/autosuspend
+# for i in /sys/bus/usb/devices/*/power/autosuspend; do
+# echo "-1" > $i
+# done
+
+Put that code in /etc/rc.d/rc.local (or in a separate script that gets
+called from rc.local) so it will execute on every boot.
+
+2. To get the US-122 working without audio glitches:
# echo 'options snd_usb_usx2y nrpacks=1' > /etc/modprobe.d/tascam.conf
@@ -55,7 +93,7 @@ happened, I was using jack, and it didn't report any x-runs. I don't
really understand why nrpacks works, I found it by googling (see the
links section, below).
-2. Install fxload and alsa-tools from slackbuilds.org.
+3. Install fxload and alsa-tools from slackbuilds.org.
# sbopkg -i fxload alsa-tools
@@ -66,13 +104,13 @@ If you're not actually using Slackware, or if you decide to compile
alsa-tools without using the slackbuilds.org package, see the "Udev Rules"
section of this document.
-3. Plug in the device.
+4. Plug in the device.
After a couple of seconds, the green USB light on the Tascam should light
up. The snd_usb_usx2y should be auto-loaded by udev (check the output of
"lsmod").
-4. Testing
+5. Testing
Have a look at the output of "aplay -l", and/or run alsamixer and press
F6. The card should show up as "USX2Y [TASCAM US-X2Y]". It will probably
@@ -245,12 +283,12 @@ this (it already includes a suitable set of udev rules for the US-122,
US-224, and US-428).
# cat > /lib/udev/rules.d/99-tascam.rules <<EOF
-BUS=="usb", ACTION=="add", SYSFS{idProduct}=="8006", SYSFS{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", SYSFS{idProduct}=="8007", SYSFS{idVendor}=="1604", RUN+="/bin/sh -c '/usr/bin/usx2yloader'"
+SUBSYSTEMS=="usb", ACTION=="add", SYSFS{idProduct}=="8006", SYSFS{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'"
+SUBSYSTEMS=="usb", ACTION=="add", SYSFS{idProduct}=="8007", SYSFS{idVendor}=="1604", RUN+="/bin/sh -c '/usr/bin/usx2yloader'"
EOF
-(the above is two long lines beginning with "BUS==". There shouldn't be any
-other line breaks)
+(the above is two long lines, each beginning with "SUBSYSTEMS==". There
+shouldn't be any other line breaks)
For the US-224, change the "us122fw.ihx" above to "us224fw.ihx", and
change the SYSFS{idProduct} numbers to 8004 and 8005. For the US-428,