Tweaks for USB Digital Analog Converter (DAC)

From Nearline Storage
Jump to: navigation, search

The Bottom Line

Raspeberry Pi audio through an expensive TEAC UD-H01B is full of crackles. With a cheap Behringer U-Control UCA202 it sounds good.

Goals

Good audio from MPD on Raspberry Pi to a BW Broadcast TX5 FM transmitter

Findings

I found three purported fixes for audio issues with high-end USB DAC's on the Raspberry Pi:

  • A boot command line setting which fixes the crackling in the audio.
    Add "dwc_otg.fiq_split_enabled=0" to end of line in /boot/cmdline.txt
    Confirm, after rebooting, by finding "dwc_otg: FIQ split fix disabled" in /etc/kern.log
    This did not stop the crackling in the output from my TEAC DAC. Switching back to the Behringer DAC did.
  • A USB module option that eliminates overrun messages in kern.log and syslog
    Add "nrpacks=1" to end of "options snd-usb-audio index=-2" line in /etc/modprobe.d/alsa-base.conf. (This option did not exist in 3.10.25 kernel and blocked module from loading there. Works fine in current 3.10.27 kernel.) This should stop all the "delay: estimated 0, actual 98" messages in kern.log and syslog.
    I need this, regardless of which USB DAC I use. I expect to be able to remove it once I get to a 3.13 kernel.
  • An updated USB sound module in the 3.13 Raspberry Pi kernel that eliminates the overrun messages and is more efficient than setting the module option.
    See Compiling New Kernel For Raspberry Pi for a script that will build a new kernel on another, faster Linux system and copy it over to the target Raspberry Pi system.
    This does work, but would have to be maintained outside of the Raspian distro that I'm using, so I reverted to the distro's kernel and the nrpacks module option.