Page MenuHomeFreeBSD

christos (Christos Margiolis)
User

Projects

User Details

User Since
Jul 2 2021, 4:03 PM (245 w, 8 h)

Recent Activity

Yesterday

christos committed rG63888350d583: rc: virtual_oss: Silence potential hw.snd.default_unit error (authored by christos).
rc: virtual_oss: Silence potential hw.snd.default_unit error
Fri, Mar 13, 11:50 AM

Thu, Mar 12

christos committed rGac5ff2813027: sound: enforce MASTER volume mute during playback (authored by scf).
sound: enforce MASTER volume mute during playback
Thu, Mar 12, 6:24 PM
christos closed D55605: sound: enforce MASTER volume mute during playback.
Thu, Mar 12, 6:23 PM · multimedia

Wed, Mar 11

christos added a comment to D55670: virtual_oss: Define a default control device for /dev/dsp.

What about alternative approach as in "ask the /dev/dsp* what is its control device"? For hardware devices the answer is NULL, for virtual_oss, it's /dev/dsp.ctl (or whatever is configured). Or maybe get devices through nvlist and /dev/sndstat and see which devices are virtual. In any case, my idea is "ask the kernel". I don't have preferences on the exact implementation.

Wed, Mar 11, 5:51 PM
christos added inline comments to D55605: sound: enforce MASTER volume mute during playback.
Wed, Mar 11, 5:24 PM · multimedia
christos added a comment to D55670: virtual_oss: Define a default control device for /dev/dsp.

I'm thinking about this again and I'm suspecting this will make things very inflexible. I think that instead of patching virtual_oss, it might be better to have an environment variable that specifies the control device name, and let devd use that. @markj What do you think?

As I understand it, the basic problem is that virtual_oss is providing a virtual audio device, and there's an associated control device, and there is no mechanism to figure out the control device name from the audio device name, aside from looking at whatever's configured in rc.conf.

Can virtual_oss create files under /var/run which provide this mapping? Similar to a pidfile, it could create /var/run/virtual_oss.dsp at startup, and the file would contain the path to the control device. Then snd.conf would contain something like action "/usr/sbin/virtual_oss_cmd $(cat /var/run/virtual_oss.${cdev}) -R /dev/${cdev}". I'm pretty sure devd can perform substitutions like that, the devd.conf man page has an example of it.

Wed, Mar 11, 5:18 PM

Tue, Mar 10

christos added a comment to D55605: sound: enforce MASTER volume mute during playback.

This is not diff'd against main. Also please address the other inline comment.

Tue, Mar 10, 3:34 PM · multimedia
christos added a comment to D55670: virtual_oss: Define a default control device for /dev/dsp.

I'm thinking about this again and I'm suspecting this will make things very inflexible. I think that instead of patching virtual_oss, it might be better to have an environment variable that specifies the control device name, and let devd use that. @markj What do you think?

Tue, Mar 10, 11:53 AM
christos updated the summary of D55670: virtual_oss: Define a default control device for /dev/dsp.
Tue, Mar 10, 11:51 AM
christos committed rGa2b601343bf9: virtual_oss: Combine -d, -l and -L option getopt code (authored by christos).
virtual_oss: Combine -d, -l and -L option getopt code
Tue, Mar 10, 10:56 AM
christos closed D55671: virtual_oss: Combine -d, -l and -L option getopt code.
Tue, Mar 10, 10:55 AM
christos added a reverting change for rG9aac27599aca: mixer(8): Implement hot-swapping: rG10aa4c8ce852: Revert "mixer(8): Implement hot-swapping".
Tue, Mar 10, 10:55 AM
christos committed rG10aa4c8ce852: Revert "mixer(8): Implement hot-swapping" (authored by christos).
Revert "mixer(8): Implement hot-swapping"
Tue, Mar 10, 10:55 AM
christos committed rG0b27b79f357c: sound: Notify devd when no devices are connected (authored by christos).
sound: Notify devd when no devices are connected
Tue, Mar 10, 10:55 AM
christos committed rG716773278a03: sound: Notify devd on hw.snd.default_unit change (authored by christos).
sound: Notify devd on hw.snd.default_unit change
Tue, Mar 10, 10:55 AM
christos added a reverting change for D46253: mixer(8): Implement hot-swapping: rG10aa4c8ce852: Revert "mixer(8): Implement hot-swapping".
Tue, Mar 10, 10:55 AM

Sun, Mar 8

christos added a reviewer for D55670: virtual_oss: Define a default control device for /dev/dsp: meka_tilda.center.
Sun, Mar 8, 8:41 PM
christos updated the diff for D55671: virtual_oss: Combine -d, -l and -L option getopt code.

Address Mark's comment.

Sun, Mar 8, 8:01 PM

Sat, Mar 7

christos committed rG3a410851bf02: virtual_oss: Use virtual_oss_delay_ns() to avoid duplication (authored by christos).
virtual_oss: Use virtual_oss_delay_ns() to avoid duplication
Sat, Mar 7, 11:47 PM
christos committed rGe75c8faf277d: virtual_oss: Use virtual_oss_timestamp() to avoid duplication (authored by christos).
virtual_oss: Use virtual_oss_timestamp() to avoid duplication
Sat, Mar 7, 11:47 PM
christos committed rG0351c21f4f6b: virtual_oss(8): Expose ioctl interface (authored by christos).
virtual_oss(8): Expose ioctl interface
Sat, Mar 7, 11:45 PM

Fri, Mar 6

christos committed rGe85f221def71: rc: virtual_oss: Silence potential hw.snd.default_unit error (authored by christos).
rc: virtual_oss: Silence potential hw.snd.default_unit error
Fri, Mar 6, 12:27 PM
christos added inline comments to D55605: sound: enforce MASTER volume mute during playback.
Fri, Mar 6, 12:23 PM · multimedia

Thu, Mar 5

christos updated the diff for D55671: virtual_oss: Combine -d, -l and -L option getopt code.

Fix switch case.

Thu, Mar 5, 9:57 PM
christos added a comment to D55605: sound: enforce MASTER volume mute during playback.
In D55605#1274023, @scf wrote:

Something is messed up with the file paths here. (dev/sound instead of sys/dev/sound).

I am not sure what happened. The diff starts with:

diff --git sys/dev/sound/pcm/feeder_volume.c sys/dev/sound/pcm/feeder_volume.c
index fc4ed1bbb0a5..c1a33dcdd8a3 100644
--- sys/dev/sound/pcm/feeder_volume.c
+++ sys/dev/sound/pcm/feeder_volume.c
@@ -1,350 +1,360 @@
 /*-
  * SPDX-License-Identifier: BSD-2-Clause

I have not used git-arc, but it looks like I need to try it.

Thu, Mar 5, 4:16 PM · multimedia
christos requested review of D55671: virtual_oss: Combine -d, -l and -L option getopt code.
Thu, Mar 5, 3:58 PM
christos requested review of D55670: virtual_oss: Define a default control device for /dev/dsp.
Thu, Mar 5, 3:57 PM
christos added a comment to D55605: sound: enforce MASTER volume mute during playback.

Something is messed up with the file paths here. (dev/sound instead of sys/dev/sound).

Thu, Mar 5, 2:47 PM · multimedia

Wed, Mar 4

christos committed rGd15987cc0619: virtual_oss(8): Expose ioctl interface (authored by christos).
virtual_oss(8): Expose ioctl interface
Wed, Mar 4, 6:07 PM
christos added a comment to D55605: sound: enforce MASTER volume mute during playback.

Can you please generate the diff with full context or upload it with git-arc?

Wed, Mar 4, 2:30 PM · multimedia

Tue, Mar 3

christos committed rGd00b32c2d70c: Revert "mixer(8): Implement hot-swapping" (authored by christos).
Revert "mixer(8): Implement hot-swapping"
Tue, Mar 3, 11:33 AM
christos added a reverting change for rG9aac27599aca: mixer(8): Implement hot-swapping: rGd00b32c2d70c: Revert "mixer(8): Implement hot-swapping".
Tue, Mar 3, 11:33 AM
christos committed rGd40189f8259e: sound: Notify devd on hw.snd.default_unit change (authored by christos).
sound: Notify devd on hw.snd.default_unit change
Tue, Mar 3, 11:33 AM
christos committed rG428517a7712e: sound: Notify devd when no devices are connected (authored by christos).
sound: Notify devd when no devices are connected
Tue, Mar 3, 11:33 AM
christos closed D55532: Revert "mixer(8): Implement hot-swapping".
Tue, Mar 3, 11:33 AM
christos added a reverting change for D46253: mixer(8): Implement hot-swapping: rGd00b32c2d70c: Revert "mixer(8): Implement hot-swapping".
Tue, Mar 3, 11:33 AM
christos closed D55530: sound: Notify devd on hw.snd.default_unit change.
Tue, Mar 3, 11:33 AM
christos closed D55531: sound: Notify devd when no devices are connected.
Tue, Mar 3, 11:33 AM

Mon, Mar 2

christos committed rG960ef72179bd: virtual_oss: use hw.snd.default_unit by default (authored by quentin.thebault_defenso.fr).
virtual_oss: use hw.snd.default_unit by default
Mon, Mar 2, 2:47 PM

Sat, Feb 28

christos committed rGa9f454a9c798: sound: Detect unsupported formats (authored by christos).
sound: Detect unsupported formats
Sat, Feb 28, 2:03 PM

Thu, Feb 26

christos added a reverting change for rG9aac27599aca: mixer(8): Implement hot-swapping: D55532: Revert "mixer(8): Implement hot-swapping".
Thu, Feb 26, 2:49 PM
christos added a reverting change for D46253: mixer(8): Implement hot-swapping: D55532: Revert "mixer(8): Implement hot-swapping".
Thu, Feb 26, 2:49 PM
christos requested review of D55532: Revert "mixer(8): Implement hot-swapping".
Thu, Feb 26, 2:49 PM
christos requested review of D55531: sound: Notify devd when no devices are connected.
Thu, Feb 26, 2:49 PM
christos requested review of D55530: sound: Notify devd on hw.snd.default_unit change.
Thu, Feb 26, 2:49 PM

Mon, Feb 23

christos committed rG06b466526a7f: virtual_oss: use hw.snd.default_unit by default (authored by quentin.thebault_defenso.fr).
virtual_oss: use hw.snd.default_unit by default
Mon, Feb 23, 12:35 PM

Sat, Feb 21

christos closed D55403: sound: Detect unsupported formats.
Sat, Feb 21, 11:38 AM
christos committed rG3deae7b78674: sound: Detect unsupported formats (authored by christos).
sound: Detect unsupported formats
Sat, Feb 21, 11:38 AM

Fri, Feb 20

christos requested review of D55403: sound: Detect unsupported formats.
Fri, Feb 20, 5:38 PM

Tue, Feb 17

christos committed rG3bd7deffdda7: mixer/tests: use require.kmods property instead of ad-hoc checks (authored by siva).
mixer/tests: use require.kmods property instead of ad-hoc checks
Tue, Feb 17, 12:53 PM

Feb 10 2026

christos accepted D55221: mixer/tests: use require.kmods property instead of ad-hoc checks.
Feb 10 2026, 11:02 PM
christos added inline comments to D55221: mixer/tests: use require.kmods property instead of ad-hoc checks.
Feb 10 2026, 10:05 PM

Feb 3 2026

christos committed rGa9f9496dee2d: src.opts: Remove MK_SOUND artifact (authored by christos).
src.opts: Remove MK_SOUND artifact
Feb 3 2026, 9:43 AM

Jan 30 2026

christos committed rG3eac38573274: src.conf.5: Regen after addition of MK_SOUND (authored by emaste).
src.conf.5: Regen after addition of MK_SOUND
Jan 30 2026, 4:34 PM
christos committed rG33c49c35d0f0: Set virtual_oss_enable="NO" in /etc/defaults/rc.conf (authored by eborisch_gmail.com).
Set virtual_oss_enable="NO" in /etc/defaults/rc.conf
Jan 30 2026, 4:34 PM
christos committed rGdcdb18bd3cda: bluetooth: Don't use a non-string to initialize NG_HCI_BDADDR_ANY (authored by jhb).
bluetooth: Don't use a non-string to initialize NG_HCI_BDADDR_ANY
Jan 30 2026, 4:34 PM
christos committed rGf3888268299d: lib/virtual_oss: don't (over)link to libsamplerate (authored by brooks).
lib/virtual_oss: don't (over)link to libsamplerate
Jan 30 2026, 4:34 PM
christos committed rG9be3ccda4c90: virtual_oss: build system tidying (authored by brooks).
virtual_oss: build system tidying
Jan 30 2026, 4:34 PM
christos committed rG00964aa2424d: virtual_oss: build commands/libs in parallel (authored by brooks).
virtual_oss: build commands/libs in parallel
Jan 30 2026, 4:34 PM
christos committed rG352d405637d2: virtual_oss: remove needless .include in intermediate Makefile (authored by brooks).
virtual_oss: remove needless .include in intermediate Makefile
Jan 30 2026, 4:34 PM
christos committed rGc88f012faa13: lib/virtual_oss/sndio: Remove trailing backslash (authored by christos).
lib/virtual_oss/sndio: Remove trailing backslash
Jan 30 2026, 4:25 PM
christos committed rGb9289743f40d: src.opts: Remove MK_SOUND artifact (authored by christos).
src.opts: Remove MK_SOUND artifact
Jan 30 2026, 4:16 PM

Jan 29 2026

christos committed rG1b2d495a24c3: Set virtual_oss_enable="NO" in /etc/defaults/rc.conf (authored by eborisch_gmail.com).
Set virtual_oss_enable="NO" in /etc/defaults/rc.conf
Jan 29 2026, 7:35 AM

Jan 21 2026

christos committed rG2bee4bb7f1b3: src.opts: Introduce MK_SOUND (authored by christos).
src.opts: Introduce MK_SOUND
Jan 21 2026, 4:08 PM
christos committed rG47917383c6d4: sound: Replace MIN() with min() (authored by christos).
sound: Replace MIN() with min()
Jan 21 2026, 4:08 PM
christos committed rG0d33cdd04da7: sound: Unlock around uiomove() in midi_{read,write}() (authored by christos).
sound: Unlock around uiomove() in midi_{read,write}()
Jan 21 2026, 4:08 PM
christos committed rG17ed747f1e2f: sndctl(8): Add libxo support (authored by christos).
sndctl(8): Add libxo support
Jan 21 2026, 4:08 PM

Jan 15 2026

christos added a comment to D54705: lib/virtual_oss: don't (over)link to libsamplerate.

By the way, there is a typo in the commit title ("vitual").

Jan 15 2026, 5:58 PM
christos accepted D54705: lib/virtual_oss: don't (over)link to libsamplerate.
Jan 15 2026, 5:58 PM
christos accepted D54704: vitual_oss: build system tidying.
Jan 15 2026, 5:57 PM
christos committed rG37164224eefd: libexec/rc/rc.d/Makefile: Remove duplicate mixer entry (authored by christos).
libexec/rc/rc.d/Makefile: Remove duplicate mixer entry
Jan 15 2026, 5:55 PM
christos committed rG241a43cf9da8: virtual_oss: Take MK_CUSE into account (authored by christos).
virtual_oss: Take MK_CUSE into account
Jan 15 2026, 5:55 PM
christos closed D54708: virtual_oss: Take MK_CUSE into account.
Jan 15 2026, 5:55 PM
christos closed D54706: libexec/rc/rc.d/Makefile: Remove duplicate mixer entry.
Jan 15 2026, 5:54 PM

Jan 14 2026

christos updated subscribers of D54702: virtual_oss: remove needless .include in intermediate Makefile.

@ivy Makefile.inc defines:

PACKAGE?=	sound

Is it a problem if the inclusion is removed from here?

Jan 14 2026, 1:41 PM
christos added a comment to D54704: vitual_oss: build system tidying.

Neither lib/virtual_oss nor usr.sbin/virtual_oss build with this patch:

root@freebsd:/mnt/src/lib/virtual_oss # make
Building /usr/obj/mnt/src/amd64.amd64/lib/virtual_oss/null/null.pico
In file included from /mnt/src/lib/virtual_oss/null/null.c:39:
/mnt/src/usr.sbin/virtual_oss/virtual_oss/int.h:33:10: fatal error: 'samplerate.h' file not found
   33 | #include <samplerate.h>
Jan 14 2026, 1:39 PM
christos accepted D54703: virtual_oss: build commands/libs in parallel.
Jan 14 2026, 1:37 PM
christos accepted D54702: virtual_oss: remove needless .include in intermediate Makefile.
Jan 14 2026, 1:37 PM
christos requested review of D54708: virtual_oss: Take MK_CUSE into account.
Jan 14 2026, 1:31 PM
christos requested review of D54706: libexec/rc/rc.d/Makefile: Remove duplicate mixer entry.
Jan 14 2026, 1:27 PM
christos added a reviewer for D54503: linuxkpi: Add tag support to radix tree: christos.
Jan 14 2026, 12:49 AM

Jan 12 2026

christos committed rGf74f891581bc: src.opts: Introduce MK_SOUND (authored by christos).
src.opts: Introduce MK_SOUND
Jan 12 2026, 2:17 PM
christos closed D54456: src.opts: Introduce MK_SOUND.
Jan 12 2026, 2:17 PM
christos added a comment to D54456: src.opts: Introduce MK_SOUND.

Congratulations and thanks for this great solution! It's now 100% compatible with the "WITHOUT_MODULES sound" kernel build and install knob and covers the entire sound toolkit.

Jan 12 2026, 2:16 PM
christos added a comment to D54456: src.opts: Introduce MK_SOUND.

@zarychtam_plan-b.pwste.edu.pl @rozhuk.im-gmail.com Opinions?

Jan 12 2026, 2:05 PM
christos committed rGeccd366b0a8b: sound: Replace MIN() with min() (authored by christos).
sound: Replace MIN() with min()
Jan 12 2026, 1:39 PM
christos added a comment to D50853: linuxkpi: Add eventfd_*().

Should this be committed now?

Jan 12 2026, 1:34 PM
christos committed rGaa58af04dc88: sndctl(8): Add libxo support (authored by christos).
sndctl(8): Add libxo support
Jan 12 2026, 1:33 PM
christos closed D54032: sndctl(8): Add libxo support.
Jan 12 2026, 1:32 PM
christos added a comment to D54360: sound examples: Add MIDI kqueue example.

The USB stack seems to have a default kqfilter method,so I suppose this is why it works. Does it work properly though?

Almost perfectly in my testing. Problem is that kevent.data is always 0 and as kqueue is advertised as "after the fact" eventing system, it would be nice to get the event after all 3 bytes are ready. I'm speaking strictly about notes and controllers, but similar is true for any MIDI message: I'd like to receive event once the whole message is ready. In this code you'll notice I read 2 more bytes after initial read. That feels like magic, so it would be nice to get event.data = 3 and read the whole MIDI message at once.

Jan 12 2026, 1:17 PM
christos updated the diff for D54456: src.opts: Introduce MK_SOUND.

Replace MK_VOSS with MK_SOUND after discussion with Mark.

Jan 12 2026, 1:06 PM
christos retitled D54456: src.opts: Introduce MK_SOUND from virtual_oss: Create MK_VOSS option to src.opts: Introduce MK_SOUND.
Jan 12 2026, 1:06 PM
christos added inline comments to D54503: linuxkpi: Add tag support to radix tree.
Jan 12 2026, 12:47 PM
christos committed rG6b69d6726a7d: sound: Unlock around uiomove() in midi_{read,write}() (authored by christos).
sound: Unlock around uiomove() in midi_{read,write}()
Jan 12 2026, 11:27 AM
christos closed D54130: sound: Unlock around uiomove() in midi_{read,write}().
Jan 12 2026, 11:27 AM

Jan 10 2026

christos closed D54418: Status/2025Q4/audio.adoc: Add report.
Jan 10 2026, 1:07 PM
christos committed R9:c29933c2d76f: Status/2025Q4/audio.adoc: Add report (authored by christos).
Status/2025Q4/audio.adoc: Add report
Jan 10 2026, 1:07 PM
christos added a comment to D54359: sound: Add kqueue support to MIDI.

For testing you can use snd_dummy(4), I added some basic MIDI support, although you might need to make it more functional because it basically does more or less nothing currently.

Jan 10 2026, 11:26 AM

Jan 9 2026

christos committed rG60d93337caff: sound: Retire MIDIQ_DEBUG (authored by christos).
sound: Retire MIDIQ_DEBUG
Jan 9 2026, 11:33 PM
christos committed rG982dabce7247: sys/conf/files: Fix sndstat path (authored by christos).
sys/conf/files: Fix sndstat path
Jan 9 2026, 11:29 PM