diff options
Diffstat (limited to 'audio/alsa-tools/tascam-us122-HOWTO')
-rw-r--r-- | audio/alsa-tools/tascam-us122-HOWTO | 56 |
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, |