L'audio USB ne produit que du bruit blanc

9

J'utilise OpenBSD / i386 5.1 sur un ordinateur portable de 5 ans. Les haut-parleurs et le port casque fonctionnent, mais le port casque est un peu lâche, j'essaie donc d'installer une carte son USB externe (Fiio E17 USB DAC). Aucun problème pour l'utiliser sous Windows.

L'appareil est détecté et j'ai créé un nœud pour celui-ci /devavec sh /dev/MAKEDEV audio1, puis j'ai lié le reste des appareils pour pointer vers la nouvelle carte son. Jusqu'ici tout va bien, je suis capable de courir cat /dev/urandom > /dev/audioet j'entends un bruit blanc. Cependant, je ne suis pas en mesure d'exécuter un autre audio à travers elle.

Mon tail /var/log/messagesaprès avoir branché l'appareil:

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

Ma liste des appareils pertinents de /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

Un simple test de la FAQ pour déterminer si les données passent sur l'appareil:

# 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

Mon 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

Et enfin, mon mixerctl -a:

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

Encore une fois, je suis capable d' cat /dev/urandom > /dev/audioobtenir un bruit blanc, mais rien d'autre que j'ai essayé ne me permet de produire d'autres sons ou de la musique. J'ai aussi essayé cat sample.au > /dev/audiomais c'était silencieux aussi.

Toute suggestion ou aide serait grandement appréciée! Pire cas, j'espère que quelqu'un pourra utiliser les étapes que j'ai décrites ici pour dépanner ses propres périphériques audio.

ssh2ksh
la source
quelle est la sortie de mixerctl -v |grep output?

Réponses:

2

Sur OpenBSD, la lecture / l'enregistrement audio est géré par défaut par le démon sndiod (1) . Les noms des périphériques sont documentés sous sndio (7) comme suit:

 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).

La sortie de dmesgindique que votre USB est allumé audio1, ajoutez donc ce qui suit /etc/rc.conf.localpour spécifier deux périphériques audio bruts (4) en utilisant le second par défaut:

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

Exécutez ensuite /etc/rc.d/sndiod restart. Le -fdrapeau fonctionne également avec aucatpour la lecture ou l'enregistrement audio:

aucat -f rsnd/1 -i my.wav # second "raw" audio device 
aucat -f snd/1 -i my.wav  # second sndiod device
eradman
la source
Je vous remercie! Votre réponse et la sndiod(1)page de manuel m'ont mis sur la bonne voie et l'appareil fonctionne très bien. J'apprécie ton aide.
ssh2ksh