I am running OpenBSD/i386 5.1 on a 5 year old laptop. The speakers and headphone port work, but the headphone port is a little loose so I am trying to install an external USB sound card (Fiio E17 USB DAC). No problems using it on Windows.The device is detected and I created a node for it in /dev with sh /dev/MAKEDEV audio1, then linked the rest of the devices to point to the new sound card. So far so good, I am able to run cat /dev/urandom > /dev/audio and I hear white noise. However, I am not able to run any other audio through it.My tail /var/log/messages after plugging the device in:Aug 30 10:03:55 s96j /bsd: uhidev0 at uhub1Aug 30 10:03:55 s96j /bsd:  port 1 configuration 1 interface 0 FiiO FiiO USB DAC-E17 rev 1.10/0.01 addr 2Aug 30 10:03:55 s96j /bsd: uhidev0: iclass 3/0Aug 30 10:03:55 s96j /bsd: uhid0 at uhidev0: input=18, output=27, feature=0Aug 30 10:03:55 s96j /bsd: uaudio0 at uhub1Aug 30 10:03:55 s96j /bsd:  port 1 configuration 1 interface 1 FiiO FiiO USB DAC-E17 rev 1.10/0.01 addr 2Aug 30 10:03:56 s96j /bsd: uaudio0: ignored setting with type 8193 formatAug 30 10:03:56 s96j /bsd: uaudio0: audio rev 1.00, 2 mixer controlsAug 30 10:03:56 s96j /bsd: audio1 at uaudio0My list of relevant devices from /dev:lrwxr-xr-x  1 root  wheel         6 Aug 30 09:44 audio -> audio1crw-rw-rw-  1 root  wheel   42, 128 Aug 30 10:07 audio0crw-rw-rw-  1 root  wheel   42, 129 Aug 30 10:15 audio1crw-rw-rw-  1 root  wheel   42, 130 Aug 30 06:40 audio2lrwxr-xr-x  1 root  wheel         9 Aug 30 09:44 audioctl -> audioctl1crw-rw-rw-  1 root  wheel   42, 192 Aug 30 06:40 audioctl0crw-rw-rw-  1 root  wheel   42, 193 Aug 30 09:44 audioctl1crw-rw-rw-  1 root  wheel   42, 194 Aug 30 06:40 audioctl2lrwxr-xr-x  1 root  wheel         6 Aug 30 09:45 mixer -> mixer1crw-rw-rw-  1 root  wheel   42,  16 Aug 30 06:40 mixer0crw-rw-rw-  1 root  wheel   42,  17 Aug 30 09:44 mixer1crw-rw-rw-  1 root  wheel   42,  18 Aug 30 06:40 mixer2lrwxr-xr-x  1 root  wheel         6 Aug 30 09:45 sound -> sound1crw-rw-rw-  1 root  wheel   42,   0 Aug 30 06:40 sound0crw-rw-rw-  1 root  wheel   42,   1 Aug 30 09:44 sound1crw-rw-rw-  1 root  wheel   42,   2 Aug 30 06:40 sound2A simple test from the FAQ to determine if data is passing over the device:# cat > /dev/audio < /dev/zero &[1] 21098# audioctl play.{seek,samples,errors}play.seek=61712play.samples=1146080play.errors=0# audioctl play.{seek,samples,errors}play.seek=52896play.samples=1542800play.errors=0# audioctl play.{seek,samples,errors}play.seek=61712play.samples=1957152play.errors=0My audioctl -a:name=USB audioversion=config=uaudioencodings=slinear_le:16:2:1,slinear_le:24:3:1properties=independentfull_duplex=0fullduplex=0blocksize=8816hiwat=7lowat=1output_muted=0monitor_gain=0mode=play.rate=44100play.sample_rate=44100play.channels=2play.precision=16play.bps=2play.msb=1play.encoding=slinear_leplay.gain=127play.balance=32play.port=0x0play.avail_ports=0x0play.seek=8816play.samples=131988play.eof=0play.pause=0play.error=1play.waiting=0play.open=0play.active=0play.buffer_size=65536play.block_size=8816play.errors=2267record.rate=44100record.sample_rate=44100record.channels=2record.precision=16record.bps=2record.msb=1record.encoding=slinear_lerecord.gain=127record.balance=32record.port=0x0record.avail_ports=0x0record.seek=0record.samples=0record.eof=0record.pause=0record.error=0record.waiting=0record.open=0record.active=0record.buffer_size=65536record.block_size=8816record.errors=0And lastly, my mixerctl -a:outputs.aux.mute=offoutputs.aux=255,255Again I am able to cat /dev/urandom > /dev/audio and get white noise, but nothing else I've tried lets me output other sounds or music. I also tried cat sample.au > /dev/audio but that was silent as well.Any suggestions or help would be greatly appreciated! Worst case, hopefully someone can use the steps I outlined here to troubleshoot their own sound devices.
USB audio only outputs white noise
audio;usb;openbsd
On OpenBSD audio playback/recording is handled by the sndiod(1) daemon by default. The device names are documented under sndio(7) as follows: 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).The output of dmesg indicates that your USB is on audio1, so add the following to /etc/rc.conf.local in order to specify two raw audio(4) devices using the second as the default:sndiod_flags=-f rsnd/1 -f rsnd/0Then run /etc/rc.d/sndiod restart. The -f flag also works with aucat for playback or recording of audio:aucat -f rsnd/1 -i my.wav # second raw audio device aucat -f snd/1 -i my.wav  # second sndiod device