pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: xmmix installed with pkgin fails ioctl



hi-

On Thu, Oct 08, 2026 at 03:23:23PM +0300, Monica Vaida wrote:
> ```xmmix``` installed through pkgin does not start due to a failed ioctl:
> ```
> FIOASYNC ioctl failed: Invalid argument
> SOUND_ MIXER_READ_ RECSRC ioctl falled: Invalid argument
> ```



Yeah, I saw that error too.  It looks like it is a bug in xmmix.

xmmix's do_ioctl() ioctl wrapper function typed the second arg
of ioctl ("unsigned long request") as "int cmd" instead.  this
type conversion mangled the request value being passed to the
ioctl syscall and resulted in an "Invalid argument" error for
a FIOASYNC request on /dev/mixer.   

i updated the pkgsrc patch to mixer.c to change the prototype
of do_ioctl() from "int cmd" to "unsigned int cmd" ... i rebuild
from src and that resolved it for me.



That being said, xmmix on my NetBSD hardware does not actually
do anything.   looking at the output of "mixerctl -a" the problem
is that there are two master outputs:

	outputs.master
	outputs.master2

the actual output volume of my speakers is controlled by "outputs.master2" ...
but the "xmmix" program's master volume slider controls "outputs.master"
instead.  as far as I can tell, changing the values of "outputs.master"
does not do anything.


hdaudio0 at pci0 dev 3 function 0: HD Audio Controller
hdaudio0: interrupting at msi0 vec 0
hdaudio0: HDA ver. 1.0, OSS 2, ISS 0, BSS 0, SDO 1, 64-bit
hdafg0 at hdaudio0: Intel HDMI/DP
hdaudio1 at pci0 dev 27 function 0: HD Audio Controller
hdaudio1: interrupting at msi3 vec 0
hdaudio1: HDA ver. 1.0, OSS 4, ISS 4, BSS 0, SDO 1, 64-bit
hdafg1 at hdaudio1: Realtek ALC280
audio0 at hdafg1: playback, capture, full duplex, independent
audio0: slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for playback
audio0: slinear_le:16 2ch 48000Hz, blk 1920 bytes (10ms) for recording
spkr0 at audio0: PC Speaker (synthesized)


hmmm.

chuck


Home | Main Index | Thread Index | Old Index