Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Sep 2020 09:41:36 +1000
From:      "Tim Preston" <tim@timpreston.net>
To:        freebsd-questions@freebsd.org
Subject:   Re: USB sound devices with FreeBSD-CURRENT
Message-ID:  <ac0c29f6-fa12-4e38-9ffe-03fb2e92865b@www.fastmail.com>
In-Reply-To: <mailman.121.1599998402.92352.freebsd-questions@freebsd.org>
References:  <mailman.121.1599998402.92352.freebsd-questions@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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@gmail.com>
> To: FreeBSD CURRENT <freebsd-current@freebsd.org>, FreeBSD questions
> <freebsd-questions@freebsd.org>
> Subject: USB sound devices with FreeBSD-CURRENT
> Message-ID: <9551111b-5dfb-c42b-6f58-81f6c8b8bbd1@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@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@momh167-gjp4-8570p:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG
> root@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@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@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@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@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@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?
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ac0c29f6-fa12-4e38-9ffe-03fb2e92865b>