Audio USB hanya menghasilkan white noise


9

Saya menjalankan OpenBSD / i386 5.1 pada laptop berusia 5 tahun. Port speaker dan headphone berfungsi, tetapi port headphone agak longgar sehingga saya mencoba memasang kartu suara USB eksternal (Fiio E17 USB DAC). Tidak ada masalah menggunakannya di Windows.

Perangkat ini terdeteksi dan saya membuat sebuah simpul untuk itu dalam /devdengan sh /dev/MAKEDEV audio1, kemudian dihubungkan sisa perangkat ke titik ke kartu suara baru. Sejauh ini bagus, saya bisa berlari cat /dev/urandom > /dev/audiodan mendengar suara putih. Namun, saya tidak dapat menjalankan audio lain melalui itu.

Saya tail /var/log/messagessetelah memasukkan perangkat ke:

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

Daftar perangkat relevan saya dari /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

Tes sederhana dari FAQ untuk menentukan apakah data melewati perangkat:

# 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

Saya 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

Dan terakhir, saya mixerctl -a:

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

Sekali lagi saya bisa cat /dev/urandom > /dev/audiomendapatkan white noise, tapi tidak ada yang saya coba yang bisa membuat saya mengeluarkan suara atau musik lain. Saya juga mencoba cat sample.au > /dev/audiotetapi itu juga diam.

Setiap saran atau bantuan akan sangat dihargai! Kasus terburuk, semoga seseorang dapat menggunakan langkah-langkah yang saya sebutkan di sini untuk memecahkan masalah perangkat suara mereka sendiri.


apa output dari mixerctl -v |grep output?

Jawaban:


2

Pada OpenBSD pemutaran / perekaman audio ditangani oleh daemon sndiod (1) secara default. Nama perangkat didokumentasikan dalam sndio (7) sebagai berikut:

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

Output dari dmesgmenunjukkan bahwa USB Anda menyala audio1, jadi tambahkan berikut ini /etc/rc.conf.localuntuk menentukan dua perangkat audio mentah (4) menggunakan yang kedua sebagai default:

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

Kemudian jalankan /etc/rc.d/sndiod restart. The -fbendera juga bekerja dengan aucatuntuk pemutaran atau merekam audio:

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

Terima kasih! Jawaban Anda dan sndiod(1)halaman manual menempatkan saya di jalur yang benar dan perangkat bekerja dengan baik. Saya menghargai bantuan Anda.
ssh2ksh
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.