Subject: Problem with USB audio, ESI U46DJ
To: None <netbsd-users@netbsd.org>
From: Steffen Beyer <sbeyer@reactor.de>
List: netbsd-users
Date: 12/20/2005 23:56:07
Hello world,

I'm trying to get a USB audio interface to work with my NetBSD 3.0 box.
The interface is an ESI U46DJ, based on a Sigmatel STAC9758T, with three
stereo outputs and two stereo inputs. Running under Windows, the driver
supports sample rates of 44.1kHz and 48kHz.

NetBSD detects two uaudio devices, everything seems fine so far. But when
starting a player, the program gets stuck and no sound is to be heard.


Some more details:

dmesg snippet:
ehci0: *** WARNING: opening low/full speed device, this may not work yet.
uaudio0 at uhub1 port 1 configuration 1 interface 1: ESI U46DJ, rev 1.00/1.00, addr 4
uaudio0: audio rev 1.00
audio1 at uaudio0: full duplex, independent
uaudio1 at uhub1 port 1 configuration 1 interface 4: ESI U46DJ, rev 1.00/1.00, addr 4
uaudio1: audio rev 1.00
audio2 at uaudio1: full duplex, independent
uhidev0 at uhub1 port 1 configuration 1 interface 7
uhidev0: ESI U46DJ, rev 1.00/1.00, addr 4, iclass 3/0
uhid0 at uhidev0: input=8, output=8, feature=0


$ audioctl -f /dev/audioctl1 -w play=44100,2,16,slinear_le
play: -> 44100,2,16,slinear_le
play.rate: -> 44100
play.channels: -> 2
play.precision: -> 16
play.encoding: -> slinear_le
$ mixerctl -d /dev/mixer1 -a
outputs.line.mute=off
outputs.line=247
record.line.mute=off
record.line=0
$ ogg123 -o dev:/dev/sound1 08-Astra_Kid-Schwarzfahren.ogg          

Audio Device:   Sun audio driver output

Playing: 08-Astra_Kid-Schwarzfahren.ogg
Ogg Vorbis stream: 2 channel, 44100 Hz
[...]
Time: 00:00.02 [02:09.42] of 02:09.44  (142.7 kbps)  Output Buffer  100.0% 

(player hangs, needs SIGTERM to return)

$ audioplay -d /dev/sound1 -s 44100 -f /netbsd            
audioplay: audio device write failed: Input/output error
$ audioplay -d /dev/sound1 -f /netbsd

(also hangs...)

Same result with sound2 and/or 48kHz.


After playing around for some time, usually this happens:

$ audioctl -f /dev/audioctl1 -w play=44100,2,16,slinear_le
audioctl: set failed: Invalid argument

...and the unit needs to be power cycled.


Ideas, anybody? I could turn on uaudio debugging or send the output of
usbctl, if helpful.

Regards,
-- 
Steffen Beyer <sbeyer@reactor.de>

GnuPG key fingerprint: CA00 1611 242B 89D4 E643  E235 05F3 7689 DD3E EB26
Public key available upon request or at http://wwwkeys.de.pgp.net