USB sound devices with FreeBSD-CURRENT

Tim Preston tim at timpreston.net
Sun Sep 13 23:42:03 UTC 2020


Hi Graham,

The best article I've found so far is https://wiki.freebsd.org/Sound

Hopefully you can find something useful there. I'm not switching any devices on the fly, but I am combining two USB devices (2 channel audio interface for headphones and a webcam with mic) into a single virtual device with virtual_oss, then run sndio over the top for video chat in both Firefox and Chromium (needs to be compiled with sndio support).

Regards,
Tim

> Date: Sun, 13 Sep 2020 10:21:52 +0100
> From: Graham Perrin <grahamperrin at gmail.com>
> To: FreeBSD CURRENT <freebsd-current at freebsd.org>, FreeBSD questions
> <freebsd-questions at freebsd.org>
> Subject: USB sound devices with FreeBSD-CURRENT
> Message-ID: <9551111b-5dfb-c42b-6f58-81f6c8b8bbd1 at gmail.com>
> Content-Type: text/plain; charset=utf-8; format=flowed
> 
> I'm confused about use of USB devices for audio (primarily with Firefox 
> and Chromium).
> 
> Re: 
> <https://forums.freebsd.org/threads/switching-dsp-devices-on-the-fly.69773/#post-419100> 
> under 'switching dsp-devices on-the-fly'
> 
> > ? hw.snd.default_unit to "0", which will automatically assign
> > hw.snd.default_unit to the newly-attached devices. ?"
> 
> ? so in sysctl.conf I experimented with:
> 
> hw.snd.default_unit="0"
> 
> ? and after signing in (to KDE Plasma) I attach first the USB microphone 
> (Alctron USB700 Alctron USB700) then a USB headset (SteelSeries 
> SteelSeries Siberia 350).
> 
> virtual_oss and sndiod are enabled.
> 
> With this setup, as far as I can tell:
> 
> 1. Chromium simply does not play AV content e.g. 
> <https://www.ted.com/talks/james_geary_metaphorically_speaking> ? after 
> a click to play, there's a moment of visual motion but no playback
> 
> 2. if Firefox media.cubeb.backend set to oss then behaviour is the same 
> as Chromium
> 
> 3. if Firefox media.cubeb.backend is not set (audio backend defaults to 
> pulse-rust) then playback occurs through IDT 92HD81B1X (Analog) ? not USB.
> 
> ----
> 
> root at momh167-gjp4-8570p:~ # date ; uname -v
> Sun Sep 13 08:25:39 BST 2020
> FreeBSD 13.0-CURRENT #64 r365364: Sun Sep? 6 01:38:18 BST 2020 
> root at momh167-gjp4-8570p:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG
> root at momh167-gjp4-8570p:~ # service virtual_oss start ; service sndiod 
> start ; service virtual_oss status ; service sndiod status ; cat 
> /dev/sndstat ; grep " -f /dev/" /usr/local/etc/rc.d/virtual_oss | grep 
> -v \# ; sysctl hw.snd.default_unit
> Starting Virtual OSS config dsp ...hw.snd.basename_clone: 0 -> 0
> ?done
> Starting sndiod.
> virtual_oss is running as pid 5688.
> sndiod is running as pid 5697.
> Installed devices:
> pcm0: <ATI R6xx (HDMI)> (play) default
> pcm1: <IDT 92HD81B1X (Analog 2.0+HP/2.0)> (play/rec)
> pcm2: <IDT 92HD81B1X (Analog)> (play/rec)
> pcm3: <USB audio> (rec)
> pcm4: <USB audio> (play/rec)
> Installed devices from userspace:
> dsp: <Virtual OSS> (play/rec)
> ? -f /dev/dsp0 \
> hw.snd.default_unit: 0
> root at momh167-gjp4-8570p:~ #
> 
> ----
> 
> In addition, as far as I can tell:
> 
> 4. if I remove then reconnect the two USB devices, the devices are no 
> longer driven
> 
> * neither device 'lights up'
> 
> * playback in Firefox (with oss) and Chromium is visible, but no longer 
> audible on any device
> 
> * playback in Firefox (with puse-rust) is visible, but no longer audible 
> on any device.
> 
> ----
> 
> root at momh167-gjp4-8570p:~ # grep Alctron /var/log/messages
> Sep 13 06:17:08 momh167-gjp4-8570p kernel: ugen0.7: <Alctron USB700 
> Alctron USB700> at usbus0 (disconnected)
> Sep 13 06:19:07 momh167-gjp4-8570p kernel: ugen0.3: <Alctron USB700 
> Alctron USB700> at usbus0
> Sep 13 06:19:07 momh167-gjp4-8570p kernel: uaudio0: <Alctron USB700 
> Alctron USB700, class 0/0, rev 1.10/1.00, addr 11> on usbus0
> Sep 13 06:19:07 momh167-gjp4-8570p kernel: uhid1: <Alctron USB700 
> Alctron USB700, class 0/0, rev 1.10/1.00, addr 11> on usbus0
> Sep 13 09:13:08 momh167-gjp4-8570p kernel: ugen0.5: <Alctron USB700 
> Alctron USB700> at usbus0
> Sep 13 09:13:08 momh167-gjp4-8570p kernel: uaudio1: <Alctron USB700 
> Alctron USB700, class 0/0, rev 1.10/1.00, addr 4> on usbus0
> Sep 13 09:13:08 momh167-gjp4-8570p kernel: uhid0: <Alctron USB700 
> Alctron USB700, class 0/0, rev 1.10/1.00, addr 4> on usbus0
> Sep 13 09:48:51 momh167-gjp4-8570p kernel: ugen0.5: <Alctron USB700 
> Alctron USB700> at usbus0 (disconnected)
> root at momh167-gjp4-8570p:~ # grep SteelSeries /var/log/messages
> Sep 13 06:17:22 momh167-gjp4-8570p kernel: ugen0.6: <SteelSeries 
> SteelSeries Siberia 350> at usbus0 (disconnected)
> Sep 13 06:17:51 momh167-gjp4-8570p kernel: ugen0.6: <SteelSeries 
> SteelSeries Siberia 350> at usbus0
> Sep 13 06:17:51 momh167-gjp4-8570p kernel: uaudio0: <SteelSeries 
> SteelSeries Siberia 350, class 0/0, rev 1.10/2.08, addr 10> on usbus0
> Sep 13 06:19:00 momh167-gjp4-8570p kernel: ugen0.6: <SteelSeries 
> SteelSeries Siberia 350> at usbus0 (disconnected)
> Sep 13 06:19:12 momh167-gjp4-8570p kernel: ugen0.7: <SteelSeries 
> SteelSeries Siberia 350> at usbus0
> Sep 13 06:19:12 momh167-gjp4-8570p kernel: uaudio1: <SteelSeries 
> SteelSeries Siberia 350, class 0/0, rev 1.10/2.08, addr 13> on usbus0
> Sep 13 09:13:08 momh167-gjp4-8570p kernel: ugen0.4: <SteelSeries 
> SteelSeries Siberia 350> at usbus0
> Sep 13 09:13:08 momh167-gjp4-8570p kernel: uaudio0: <SteelSeries 
> SteelSeries Siberia 350, class 0/0, rev 1.10/2.08, addr 3> on usbus0
> root at momh167-gjp4-8570p:~ # tail /var/log/messages
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: unregister: mixer busy
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: Waiting for sound 
> application to exit!
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: unregister: mixer busy
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: Waiting for sound 
> application to exit!
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: unregister: mixer busy
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: Waiting for sound 
> application to exit!
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: unregister: mixer busy
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: Waiting for sound 
> application to exit!
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: unregister: mixer busy
> Sep 13 10:11:39 momh167-gjp4-8570p kernel: pcm4: Waiting for sound 
> application to exit!
> root at momh167-gjp4-8570p:~ #
> 
> ----
> 
> Clearly I'm doing something wrong.
> 
> If on-the-fly use of USB audio devices is not possible, then must I keep 
> the devices connected whilst I'm signed in to the desktop environment?
> 


More information about the freebsd-questions mailing list