After upgrading to Fedora 14 I noticed that the built-in mic in my Dell D620 stopped working, after searching here and there I the problem is between ALSA and Pulseaudio, since alsa will show to capture devices “Mic” & “Front Mic” and Pulseaudio will use Mic as the default instead of Front Mic.
So I used “alsamixer” to set the correct capture source and that worked but after a reboot it was set back to Mic. Then I found about “alsactl” which should store the current setting by doing “alsactl store” but that did not work either since I think pulseaudio does not look into that.
Uninstalling pulseaudio as some people suggested solved the Mic problem but caused many other problems when playing many applications that want to play audio (like flash apps such as youtube and video apps…etc), this is an ALSA problem that pulseaudio try to solve AFAIK.
The solution that I found was to use “amixer” which can be run from the command line with the parameters to set “Front Mic” as the capture source. Here is the full command for my device:
1 | amixer -c 0 cset numid=6,iface=MIXER,name='Input Source' 1 |
To explain the previous command: [-c 0] is to select the first sound card (the only card in my laptop, but if you have two cards they will be 0 and 1) [cset] is to tell amixer that you want to set these settings [numid, iface, and MIXER] are information about your card and what source you want to change the settings for, and here is how I get these information:
1 | [fad@fad ~\]$ amixer -c0 contents |
And as you can see in the previous result the part that am looking for is (numid=6,iface=MIXER,name=’Input Source’) and it lists Mic=0 and Front Mic=1 but the selected values=0 which is for Mic and I need to set it to 1
Here is the command again:
1 | amixer -c 0 cset numid=6,iface=MIXER,name='Input Source' 1 |
put this command in a script file and make it run whenever you login to your profile (I tried adding it to the rc.local so it will execute with every boot but that didn’t work, since I think the settings is applied during login time for each user)
For KDE users you can put that script (or a link to it) under:
1 | /home/<username>/.kde/Autostart/ |
or through the KDE “System Settings”>”Startup and Shutdown”>”Autostart” Now at each login this command should set the correct input source which pulseaudio will use it.