Estou executando o OpenBSD / i386 5.1 em um laptop de 5 anos. Os alto-falantes e a porta do fone de ouvido funcionam, mas a porta do fone de ouvido está um pouco frouxa, por isso estou tentando instalar uma placa de som USB externa (Fiio E17 USB DAC). Sem problemas para usá-lo no Windows.
O dispositivo foi detectado e eu criei um nó para ele /dev
e sh /dev/MAKEDEV audio1
, em seguida, vinculei o restante dos dispositivos para apontar para a nova placa de som. Até aí tudo bem, sou capaz de correr cat /dev/urandom > /dev/audio
e ouço barulho branco. No entanto, não consigo executar nenhum outro áudio através dele.
Meu tail /var/log/messages
depois de conectar o dispositivo:
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
Minha lista de dispositivos relevantes 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
Um teste simples da FAQ para determinar se os dados estão passando pelo dispositivo:
# 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
Meu 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
E, finalmente, meu mixerctl -a
:
outputs.aux.mute=off
outputs.aux=255,255
Mais uma vez, sou capaz de cat /dev/urandom > /dev/audio
obter ruído branco, mas nada do que tentei me permite emitir outros sons ou músicas. Eu também tentei, cat sample.au > /dev/audio
mas isso também ficou em silêncio.
Quaisquer sugestões ou ajuda seriam muito apreciados! Na pior das hipóteses, espero que alguém possa usar as etapas descritas aqui para solucionar problemas de seus próprios dispositivos de som.
mixerctl -v |grep output
?Respostas:
No OpenBSD, a reprodução / gravação de áudio é tratada pelo daemon sndiod (1) por padrão. Os nomes dos dispositivos estão documentados em sndio (7) da seguinte maneira:
A saída de
dmesg
indica que seu USB está ligadoaudio1
, então adicione o seguinte a/etc/rc.conf.local
para especificar dois dispositivos de áudio bruto (4) usando o segundo como padrão:Então corra
/etc/rc.d/sndiod restart
. A-f
bandeira também funcionaaucat
para reprodução ou gravação de áudio:fonte
sndiod(1)
página de manual me colocaram no caminho certo e o dispositivo está funcionando muito bem. Eu aprecio sua ajuda.