-   Fedora (
-   -   alsactl error Invalid CTL hw:0 - FC3 (

jankom 01-22-2006 11:16 AM

alsactl error Invalid CTL hw:0 - FC3
Sound finally works, but mixer settings are not saved after shut down and alsactl command returns error message as above. Similar error with amixer. I can control mixer with aumix.

The error always lists the following:
ALSA lib control.c:654:
and a function after that, depending on what option I use in alactl or amixer.

My system is fully updated with
alsa-lib 1.0.6-8.FC3
alsa-lib-devel 1.0.6-8.FC3
alsa-utils 1.0.6-3

Any ideas? - thanks

Linux.tar.gz 01-23-2006 08:16 PM

Compile and install all alsa manually, using the latest release.
Then type alsaconf as root. Do settings with alsamixer. Store them with alsactl store. Put alsactl restore in your rc.local.

Thetargos 01-23-2006 08:20 PM

You don't need alsactl restore if you use the service alsasound as an init script (or at least most of the times when using alsasound you don't need alsactl restore, anyway). Build the ALSA packages from lib, then utils (this includes alsamixer), oss, etc; and if you'd like to, leave the driver as the last. You can build for all cards (slow compile) or for your card, consult ./configure --help on the driver's source tree to select your card, and you'll most likely want to choose to build the driver with compatibility with the Open Sound System API (OSS, --with-oss=yes configure option). Good luck!

jankom 01-23-2006 11:01 PM

Thanks, Linux.tar.gz and Thetargos. I'll completely uninstall alsa, download latest version of alsa, compile it myself and will report what happened. By the way, this is an A7N266-VM board with AMD 1.9G processor and Nvidia sound and video. The video AGP still does not work, but that's for later. At least, sound works but with the error. - jankom

Thetargos 01-24-2006 01:14 AM

You don't need to completely remove alsa, you can simply overwrite it, as the default install path will overwrite the files of the RPMs (so any modifications to the RPMs will modify the files as well)... I rather keep the RPM database entries for db consistency myself, but you can do as you please.

Regarding the AGP, what is the problem with it? Maybe you want to discuss it in another thread? BTW, the Fedora kernels have the AGP subssystem is compiled in, so using the NVAGP option of the nVidia driver is not an option (unless you either rebuild the kernel and compile it with AGP support as modules). Good luck.

jankom 01-28-2006 07:24 PM

Sorry, I do not have time to visit this board frequently. Here is an update: still the same problem with alsa.

1.) downloaded alsa-driver-1.0.9rc4a.tar.bz2
cd /usr/src
tar --use-compress-program=bzip2 -xf <location of downloaded file>/alsa-driver-1.0.9rc4a.tar.bz2
cd alsa-driver-1.0.9rc4a.tar.bz2
./configure #no problem, did not use any option
make #no problem
make install #OK
rebooted - just in case
./alsasound restart did not work, had to make it executable, but still the same erro

2.) Downloaded alsaconf-0.4.3b.tar.gz and untarred successfully
shut down and rebooted
I disabled audio in Bios and had kudzu delete configuration at boot up, so that things are clean
Rebooted and did not let kudzu configure sound during boot

./alsaconf #selected 0x31 - Intel-i8..., nvidia was not listed, Fedore used intel8x0
alsaconf modified modules.conf not modprobe.conf, so it failed
I copied stuff from modules.conf into modprobe.conf

The same error as in the beginning of the thread: sound works, all volumes are at zero after boot.

If I try amixer, the same error message: ALSA lib control.c:654:(snd_ctl_open_noupdate) Invalid CTL default

Theragos - thanks for your interest in my other problem: AGP. I'll start a new thread when this is resolved.


Thetargos 01-28-2006 08:42 PM

Alsa 1.0.9?? Man! That's pretty much ancent history! (well, not quite, but still the 1.0.10 is official now).

Detailed Insructions
To install ALSA you can follow these directions, you have an nVidia motherboard with a sound card, however, does it have SoundStorm? If it does, you may want to either take a look at the nVidia proprietary driver or the (not so proprietary) Open Sound System drivers, otherwise known as OSS. If you want to give ALSA a shot, follow these:
  1. Get the sources. You already did that, but I suggest you get the latest stable tarball from the project's site.
  2. Build and install the packages. This is actually a tricky part. Cannonically it is said that the preferred order to install ALSA is first all of the libraries, then the driver, starting with alsa-lib, so here's what I do:
    • This little script decompresses everything, I usually call it simply "":


      for i in *.tar.bz2
          tar jxf $i

      To run it (I don't even make it executable) I go by sh, and run it from the same directory where the alsa tarballs are. If you want to remove the tarballs just add a line with something like "rm -f *.tar.bz2" after "done".
    • Now change to the alsa-lib-<version> directory and build as usual:

      cd alsa-lib-<version>
      ./configure && make
      su -c make install

      Unless you want alsa-lib installed somewhere else, the default prefix for the installation will be /usr/, you can change that with "./configure --prefix="<some_dir>".
    • Repeat the above steps for the alsa-oss and alsa-utils packages.
    • Now, to install the driver, unless you have a very good reason to buld each and every driver, I strongly suggest you to chose your card! (assuming you are in alsa-utils or oss):

      cd ../alsa-driver-<version>
      ./configure --with-cards=intel8x0 --with-oss=yes --with-sequencer

      The above options mean: Select your card as an intel8x0, the nForce chipset has a generic AC97 codec basded on Intel's DSP, this has limited functionality (no hardware mixing), bu should at least let you hear sound; the SoundStorm variant is said to support hardware mixing through nVidia's proprietary driver or the OSS drivers (linked above). It is wise to specify the oss option, as a LOT of the software (especially games) still use the "old" OSS API (not to mention some proprietary packages, like Flash), and thus this option allows the driver to be able to emulate and playback with such programs; the sequencer option is to enable MIDI-In/-Out.

      Now, build the driver and install it:

      su -c make install

  3. You are not completely done, just yet. One step still is missing: configure or make sure everything's fine with /etc/modprobe.conf, you can erase any ALSA references from it or comment them out (basically any line that reads something with snd-intel8x0, as well as some alias entries). The idea would be to have something similar to:

    alias eth0 forcedeth
    alias scsi_hostadapter sata_nv # Depends on your kernel
    alias usb-controller ehci-hcd
    alias usb-controller1 uhci-hcd # These two depend on your motherboard
    alias usb-controller2 ohci-hcd # manufacturer.

    # ALSA portion
    alias char-major-116 snd
    alias snd-card-0 snd-intel8x0

    # module options should go here

    # OSS/Free portion
    alias char-major-14 soundcore

            # card #0
    alias sound-service-0-0 snd-mixer-oss
    alias sound-service-0-1 snd-seq-oss
    alias sound-service-0-3 snd-pcm-oss
    alias sound-service-0-8 snd-seq-oss
    alias sound-service-0-12 snd-pcm-oss

    Save the file.
  4. One more step: Add alsasound as a system service!:

    su -
    chkconfig --add alsasound

    And start it to load the driver:

    service alsasound start
    Pay attention to any messages!
  5. Now you can use alsamixer to set the volumes, you should be able to execute alsamixer without any problems now.
You may have noticed that I seldom used root access to configure and build the packages, you don't have to do that in a restricted area like /usr/src, and wih "su -c make install" you are only prompted for root's password to copy the files to their locations. You may run that little scirpt I wrote in a single line like this:

for i in *.tar.bz2; do tar jxf $i; rm -f $i; done && unset i
Pay special attention to the configuration of the modprobe.conf file and you should be OK.

Ohh!! And before I forget: If you update your kernel, it will most likely include a more recent version of the driver (unless you were using the -rc ALSA)

jankom 02-05-2006 02:10 PM

Thanks, Theragos, for the detailed instructions. First, I thought the problem was solved and it was my fault. Previously I downloaded only the 1.0.9 driver and not the -lib, -oss and -utils. So I started according to your instructions.

I downloaded everything related to alsa 1.0.10.

First, I untarred alsa-lib. Just a comment: I had to do it in su. Same for ./configure. So I did all your instructions as root.

Compiling alsa-lib was OK, with some warnings of "unused variables".

Next I did alsa-oss and alsa-utils - both compiled OK.

Finally, I compiled alsa-driver with intel8x0 only, according to your Code. Make said "Alsa modules successfully compiled".

My modprobe.conf already had the required lines coming from an earlier attempt and using alsaconf. I checked it and it was according to your instructions.

My last step was chkconfig. It was /sbin/chkconfig. Added alsasound - ok, no message. When I did service alsasound start I got a message: alsa driver is already running.

When I tried amixer I got the same error with control.c as in the beginning of the thread.


So I tried the same thing as described in an earlier answer in this thread:

a.) commented out everything from modprobe.conf and reboot.

b.) while reboot I disabled MCP Audio Controller in BIOS and rebooted.

c.) while booting linux kudzu recognized that audio was missing and I responded to unconfigure it. Now my system is clean in terms of audio.

d.) after booting lsmod shows no audio stuff, but /sbin/chkconfig --list still reported alsasound. So I did /sbin/chkconfig --del alsasound. Finally, my system is really clean, I can start loading the new driver. So I rebooted and enabled MCP Audio Controller in BIOS.

e.) While linux was booting ("checking for new hardware") kudzu detected nForce Audio (by the way, my Mobo is A7N266VM), but I told kudzu to "ignore" it, so that I can load the good alsa driver.

f.) After linux booted I did lsmod !!!NFG!!! - sound modules were already loaded: intel8x0. Audio works just as before (mute on boot, but can control with aumix and control.c error with amixer or at shutdown. Modprobe.conf has no sound drivers or settings, everything is still commented out.


My conclusion: it looks like Fedora already configures audio in the beginning when kernel boots, the Fedora version of alsa driver is probably part of the kernel and not loaded as module, hence the error.

Any ideas? Did I do something wrong?

Thanks for the help - jankom

Thetargos 02-05-2006 05:26 PM

I certainly find quite odd that you are having so many troubles with something that is otherwise a no brainer... However I've noticed something, you are trying to run amixer, which requires a previously working configuration, what happens when you open alsamixer? This program will set a configuration, and basically is a TUI program for the mixer, the other mixers (GNOME's volume control or KDE's kmix) only modify the memory values/temporary files, while alsamixer when the driver is unloaded or reloaded with the system service will store the mixer values.

I'm not sure what could be wrong, and you may want to ask on the alsa mailing list.

jankom 02-06-2006 09:28 PM

Sorry, Thetargos, for misspelling you name in my previous posting.

alsamixer command gives the same error:

ALSA lib control.c:654:(snd_ctl_open_noupdate) Invalid CTL default

alsamixer: function snd_ctl_open failed for default: No such file or directory

I must be doing something wrong. Maybe because I started with Red Hat 9, then updated to Fedora-1 then Fedora-3.

Thanks, anyway. If I find the solution I'll post it in this thread.


Thetargos 02-07-2006 01:15 AM


Originally Posted by jankom
Sorry, Thetargos, for misspelling you name in my previous posting.

No problem, I have that problem with my real name too, so I'm used to ;)

Originally Posted by jankom
alsamixer command gives the same error:

ALSA lib control.c:654:(snd_ctl_open_noupdate) Invalid CTL default

alsamixer: function snd_ctl_open failed for default: No such file or directory

This bit is particularly interesting... Seems it is not finding the device... hmm...

Could you post the result from

ls /dev/*dsp*

Originally Posted by jankom
I must be doing something wrong. Maybe because I started with Red Hat 9, then updated to Fedora-1 then Fedora-3.

Thanks, anyway. If I find the solution I'll post it in this thread.


Excellent! This may actually help others in the same situation!

jankom 02-07-2006 09:42 PM

ls /dev/*dsp*
/dev/adsp /dev/dsp

Hi Thetargos, thanks for your continued interest of cracking this nut.

Being a newbe but have just enough knowledge to be dangerous it seems to me that the device is there - as I mentionned previously, sound seems to work (xmms, playing CD, audacity), it is just this annoying error message and the fact that after each reboot I have to set volumes from zero.


Thetargos 02-08-2006 11:25 AM

It certainly looks strange. I do remember once having this problem of sound not being "unmutted" upon boot (one of the many reasons why my computer stayed on), and it's been a while since this last happened to me.

jankom 10-10-2007 09:46 PM

Invalid CTL hw:0 problem solved!
Finally no more error, amixer and other alsa utilities work!

The solution was:

1.) I found somewhere in google that even if you reinstall newer version of a program some remaining files may cause malfunction. This was the clue. From root I did

find / -name alsa*

and deleted most of the stuff except documentation files.

2.) Downloaded the latest source - in my case 1.0.14 of alsa-lib, alsa-utils ans alsa-driver

3.) Compiled them and based on INSTALL instructions in alsa-lib I did

ln -sf /usr/lib/ /lib/

This seemed to solve the problem.


a.) I'm not sure if the ln was necessary of step 3.
b.) My current installation is FC-3, but probably mangled. I started with RH-9 then changed to FC-1 and finally to FC-3. However, being new to Linux, probably did not do it correctly and left a lot of junk around. Lately I compile everything from source as I gain confidence with Linux. It is slower than using rpm, but I learn a lot. I also compiled my own kernel, currently 2.6.20.

I hope this helps others with similar problem.

Thank you for those who responded to my original post and provided good advice.


All times are GMT -5. The time now is 05:01 AM.