On Wed, Nov 12, 2008 at 2:27 PM, Alan Horstmann gineera@aspect135.co.uk wrote:
On Wednesday 12 November 2008 05:31, Arun KS wrote:
On Tue, Nov 11, 2008 at 5:27 PM, Takashi Iwai tiwai@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@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@OMAP2530EVM ~]# [root@OMAP2530EVM ~]# [root@OMAP2530EVM ~]# [root@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,
Thanks Alan. Thanks Takashi.
I am using 2.6.22 kernel, in which alsa verson is 1.0.14. I downgraded my alsa lib and utills to 1.0.14, but still i have the same error. Need to see what the issue is.
Thanks again for your time and support.
Regards, Arun KS
Alan