USB-Audio gibt nur weißes Rauschen aus

9

Ich verwende OpenBSD / i386 5.1 auf einem 5 Jahre alten Laptop. Die Lautsprecher und der Kopfhöreranschluss funktionieren, aber der Kopfhöreranschluss ist etwas locker, daher versuche ich, eine externe USB-Soundkarte (Fiio E17 USB DAC) zu installieren. Keine Probleme bei der Verwendung unter Windows.

Das Gerät erfasst und I erzeugt einen Knoten für sie in /devmit sh /dev/MAKEDEV audio1, verknüpft dann den Rest der Geräte weisen auf die neue Soundkarte. So weit so gut, ich kann rennen cat /dev/urandom > /dev/audiound ich höre weißes Rauschen. Ich kann jedoch kein anderes Audio damit abspielen.

Meine tail /var/log/messagesnach dem Anschließen des Geräts:

Aug 30 10:03:55 s96j /bsd: uhidev0 at uhub1
Aug 30 10:03:55 s96j /bsd:  port 1 configuration 1 interface 0 "FiiO FiiO USB DAC-E17" rev 1.10/0.01 addr 2
Aug 30 10:03:55 s96j /bsd: uhidev0: iclass 3/0
Aug 30 10:03:55 s96j /bsd: uhid0 at uhidev0: input=18, output=27, feature=0
Aug 30 10:03:55 s96j /bsd: uaudio0 at uhub1
Aug 30 10:03:55 s96j /bsd:  port 1 configuration 1 interface 1 "FiiO FiiO USB DAC-E17" rev 1.10/0.01 addr 2
Aug 30 10:03:56 s96j /bsd: uaudio0: ignored setting with type 8193 format
Aug 30 10:03:56 s96j /bsd: uaudio0: audio rev 1.00, 2 mixer controls
Aug 30 10:03:56 s96j /bsd: audio1 at uaudio0

Meine Liste der relevanten Geräte von /dev:

lrwxr-xr-x  1 root  wheel         6 Aug 30 09:44 audio -> audio1
crw-rw-rw-  1 root  wheel   42, 128 Aug 30 10:07 audio0
crw-rw-rw-  1 root  wheel   42, 129 Aug 30 10:15 audio1
crw-rw-rw-  1 root  wheel   42, 130 Aug 30 06:40 audio2
lrwxr-xr-x  1 root  wheel         9 Aug 30 09:44 audioctl -> audioctl1
crw-rw-rw-  1 root  wheel   42, 192 Aug 30 06:40 audioctl0
crw-rw-rw-  1 root  wheel   42, 193 Aug 30 09:44 audioctl1
crw-rw-rw-  1 root  wheel   42, 194 Aug 30 06:40 audioctl2
lrwxr-xr-x  1 root  wheel         6 Aug 30 09:45 mixer -> mixer1
crw-rw-rw-  1 root  wheel   42,  16 Aug 30 06:40 mixer0
crw-rw-rw-  1 root  wheel   42,  17 Aug 30 09:44 mixer1
crw-rw-rw-  1 root  wheel   42,  18 Aug 30 06:40 mixer2
lrwxr-xr-x  1 root  wheel         6 Aug 30 09:45 sound -> sound1
crw-rw-rw-  1 root  wheel   42,   0 Aug 30 06:40 sound0
crw-rw-rw-  1 root  wheel   42,   1 Aug 30 09:44 sound1
crw-rw-rw-  1 root  wheel   42,   2 Aug 30 06:40 sound2

Ein einfacher Test aus den FAQ, um festzustellen, ob Daten über das Gerät übertragen werden:

# cat > /dev/audio < /dev/zero &
[1] 21098
# audioctl play.{seek,samples,errors}
play.seek=61712
play.samples=1146080
play.errors=0
# audioctl play.{seek,samples,errors}
play.seek=52896
play.samples=1542800
play.errors=0
# audioctl play.{seek,samples,errors}
play.seek=61712
play.samples=1957152
play.errors=0

Mein audioctl -a:

name=USB audio
version=
config=uaudio
encodings=slinear_le:16:2:1,slinear_le:24:3:1
properties=independent
full_duplex=0
fullduplex=0
blocksize=8816
hiwat=7
lowat=1
output_muted=0
monitor_gain=0
mode=
play.rate=44100
play.sample_rate=44100
play.channels=2
play.precision=16
play.bps=2
play.msb=1
play.encoding=slinear_le
play.gain=127
play.balance=32
play.port=0x0
play.avail_ports=0x0
play.seek=8816
play.samples=131988
play.eof=0
play.pause=0
play.error=1
play.waiting=0
play.open=0
play.active=0
play.buffer_size=65536
play.block_size=8816
play.errors=2267
record.rate=44100
record.sample_rate=44100
record.channels=2
record.precision=16
record.bps=2
record.msb=1
record.encoding=slinear_le
record.gain=127
record.balance=32
record.port=0x0
record.avail_ports=0x0
record.seek=0
record.samples=0
record.eof=0
record.pause=0
record.error=0
record.waiting=0
record.open=0
record.active=0
record.buffer_size=65536
record.block_size=8816
record.errors=0

Und zum Schluss meine mixerctl -a:

outputs.aux.mute=off
outputs.aux=255,255

Wieder kann ich cat /dev/urandom > /dev/audioweißes Rauschen bekommen, aber nichts anderes, was ich versucht habe, lässt mich andere Geräusche oder Musik ausgeben. Ich habe es auch versucht, cat sample.au > /dev/audioaber das war auch still.

Anregungen oder Hilfe wäre sehr dankbar! Im schlimmsten Fall kann hoffentlich jemand die hier beschriebenen Schritte verwenden, um Fehler an seinen eigenen Audiogeräten zu beheben.

ssh2ksh
quelle
Was ist die Ausgabe von mixerctl -v |grep output?

Antworten:

2

Bei OpenBSD wird die Audiowiedergabe / -aufzeichnung standardmäßig vom sndiod (1) -Dämon ausgeführt . Die Gerätenamen sind unter sndio (7) wie folgt dokumentiert :

 type      The type of the audio device or MIDI port.  Possible values
           are:

              rsnd      Raw audio(4) device.
              rmidi     Raw midi(4) port.
              snd       Audio device exposed by sndiod(1).
              midithru  MIDI thru box created with sndiod(1).
              midi      MIDI port exposed by sndiod(1).
              default   Default audio device or MIDI port (see below).

Die Ausgabe von dmesgzeigt an, dass Ihr USB eingeschaltet ist. audio1Fügen Sie daher Folgendes hinzu, /etc/rc.conf.localum zwei unformatierte Audiogeräte (4) anzugeben , wobei das zweite als Standard verwendet wird:

sndiod_flags="-f rsnd/1 -f rsnd/0"

Dann renne /etc/rc.d/sndiod restart. Das -fFlag funktioniert auch aucatfür die Wiedergabe oder Aufnahme von Audio:

aucat -f rsnd/1 -i my.wav # second "raw" audio device 
aucat -f snd/1 -i my.wav  # second sndiod device
Eradman
quelle
Danke! Ihre Antwort und die sndiod(1)Manpage haben mich auf den richtigen Weg gebracht und das Gerät funktioniert hervorragend. Ich schätze Ihre Hilfe.
SSH2KSH