[alsa-devel] amixer error

Alan Horstmann gineera at aspect135.co.uk
Wed Nov 12 09:57:54 CET 2008


On Wednesday 12 November 2008 05:31, Arun KS wrote:
> On Tue, Nov 11, 2008 at 5:27 PM, Takashi Iwai <tiwai at suse.de> wrote:
> > At Tue, 11 Nov 2008 17:15:15 +0530,
> >
> > Arun KS wrote:
> >> On Tue, Nov 11, 2008 at 4:08 PM, Takashi Iwai <tiwai at suse.de> wrote:
> >> > At Tue, 11 Nov 2008 15:55:38 +0530,
> >> >
> >> > Arun KS wrote:
> >> >> Hi,
> >> >>
> >> >> I am getting an error for amixer, but my amixer controls works fine.
> >> >>
> >> >> Here is the log:
> >> >>
> >> >> [root at OMAP2530EVM ~]#
> >> >> [root at OMAP2530EVM ~]#
> >> >> [root at OMAP2530EVM ~]#
> >> >> [root at OMAP2530EVM ~]# amixer
> >> >> amixer: Mixer default load error: Operation not permitted
> >> >
> >> > How about checking via strace?
> >>
> >> Below is the strace output:
> >
> > ...
> >
> >> open("/dev/snd/controlC0", O_RDWR)      = 3
> >> ioctl(3, USBDEVFS_CONTROL, 0xbea498fc)  = 0
> >> fcntl64(3, F_GETFL)                     = 0x2 (flags O_RDWR)
> >> fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
> >> ioctl(3, USBDEVFS_RELEASEINTERFACE, 0xbea49980) = 0
> >> ioctl(3, USBDEVFS_RELEASEINTERFACE, 0xbea49980) = 0
> >> ioctl(3, USBDEVFS_CONNECTINFO, 0xbea49718) = 0
> >> ioctl(3, USBDEVFS_IOCTL, 0xbea492c0)    = 0
> >> ioctl(3, USBDEVFS_CONNECTINFO, 0xbea49718) = 0
> >> ioctl(3, USBDEVFS_IOCTL, 0xbea492e0)    = 0
> >> ioctl(3, USBDEVFS_CONNECTINFO, 0xbea49718) = 0
> >> ioctl(3, USBDEVFS_IOCTL, 0xbea492e0)    = 0
> >> ioctl(3, USBDEVFS_CONNECTINFO, 0xbea49718) = 0
> >> ioctl(3, USBDEVFS_IOCTL, 0xbea492e0)    = 0
> >> ioctl(3, USBDEVFS_CONNECTINFO, 0xbea49718) = 0
> >> ioctl(3, USBDEVFS_IOCTL, 0xbea492e0)    = 0
> >> ioctl(3, USBDEVFS_CONNECTINFO, 0xbea49718) = 0
> >> ioctl(3, USBDEVFS_IOCTL, 0xbea492d8)    = 0
> >> ioctl(3, USBDEVFS_CONNECTINFO, 0xbea49718) = 0
> >> ioctl(3, USBDEVFS_IOCTL, 0xbea492c0)    = 0
> >> ioctl(3, USBDEVFS_IOCTL, 0xbea492c0)    = 0
> >> ioctl(3, USBDEVFS_CONNECTINFO, 0xbea49718) = 0
> >> ioctl(3, USBDEVFS_IOCTL, 0xbea492c0)    = -1 EPERM (Operation not
> >> permitted)
> >
> > Weird.  USBDEVFS_IOCTL corresponds to SNDRV_IOCTL_ELEM_REPLACE,
> > and USBDEVFS_CONNECTINFO to SNDRV_IOCTL_ELEM_ADD.
> > [some strace versions don't show SNDRV_* ioctls because they are defined
> >  via enum instead of #define in asound.h...]
> > These are for user-defined control elements.
> > And, strace shows that you don't use any ~/.asound or /etc/asound.conf...
>
> But when i use a different kernel and different codec with the same
> file system, amixer is working.
>
> So the filesytem is fine. AM I Rite?
>
> Is it kernel dependent?

This is embedded, on ARM -right?  I'll just throw in a couple of suggestions 
we went through as 'newbie-at-embedded's.  The build environment can cause 
havoc! (which are you using?) and throw up spurious errors.

The filesystem contains Alsa-lib, whereas the kernel image is usually 
separate.  However the Alsa-lib is really a user abstraction of the kernel 
driver, and as such it's version needs to correspond to the particular 
Alsa-driver in the kernel (Takashi correct me if I understand wrong).  Thus 
our build environment's habit of allowing you to select a specific kernel 
source by number and then getting either a fixed old Alsa-lib (the same one 
as always) or just getting the latest release, but in either case with no 
reference to the kernel, causes potential problems in the driver<->lib 
interface.  (Been there).

Also we experienced unpredictable errors with versioned symbols and UClibc 
(which I have posted about previously).  Other build parameters such as the 
setting of -mabi can cause incompatibilities between parts.

Just ideas, HTH,

Alan





More information about the Alsa-devel mailing list