L'audio USB émet uniquement du bruit blanc

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

Le périphérique est détecté et j'ai créé un nœud dans /dev avec sh /dev/MAKEDEV audio1 , puis lié le rest des périphériques à la nouvelle carte son. Jusqu'ici tout va bien, je suis capable de lancer cat /dev/urandom > /dev/audio et j'entends du bruit blanc. Cependant, je ne suis pas capable d'exécuter d'autre audio à travers elle.

Ma tail /var/log/messages aprè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 list d'appareils concernés 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 test simple de la FAQ pour déterminer si datatables passent sur le périphérique:

 # 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 de cat /dev/urandom > /dev/audio et get un bruit blanc, mais rien d'autre que j'ai essayé me permet de sortir d'autres sons ou de la musique. J'ai aussi essayé cat sample.au > /dev/audio mais c'était silencieux aussi.

Toute suggestion ou aide serait grandement appréciée! Le pire des cas, j'espère que quelqu'un peut utiliser les étapes que j'ai décrites ici pour dépanner leurs propres appareils sonores.

Sur la lecture / l'logging audio OpenBSD est géré par le démon sndiod (1) par défaut. 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 dmesg indique que votre key USB est sur audio1 , ajoutez donc ce qui suit à /etc/rc.conf.local afin de spécifier deux périphériques audio (4) bruts utilisant la seconde par défaut:

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

Exécutez ensuite /etc/rc.d/sndiod restart . Le drapeau -f fonctionne également avec aucat pour la lecture ou l'logging de l'audio:

 aucat -f rsnd/1 -i my.wav # second "raw" audio device aucat -f snd/1 -i my.wav # second sndiod device