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 /dev
avec 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/audio
et j'entends un bruit blanc. Cependant, je ne suis pas en mesure d'exécuter un autre audio à travers elle.
Mon 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 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/audio
obtenir 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/audio
mais 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.
mixerctl -v |grep output
?Réponses:
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:
La sortie de
dmesg
indique que votre USB est alluméaudio1
, ajoutez donc ce qui suit/etc/rc.conf.local
pour spécifier deux périphériques audio bruts (4) en utilisant le second par défaut:Exécutez ensuite
/etc/rc.d/sndiod restart
. Le-f
drapeau fonctionne également avecaucat
pour la lecture ou l'enregistrement audio:la source
sndiod(1)
page de manuel m'ont mis sur la bonne voie et l'appareil fonctionne très bien. J'apprécie ton aide.