From the ALSA wiki
|The FAQs have been reorganized. The new location of this question is FAQ#I cannot record from the microphone|
I cannot record from the microphone
Many times, it is not enough to just put the microphone input level high enough. Make sure the "Capture" switch of your microphone is set. To do so, run
alsamixer, select your microphone and press space. Something like...
CAPTUR L R
should appear. There can also be a "Mic Capture" volume that must be set. To avoid the sound from the microphone going through speakers, you can mute the microphone by pressing "m" (I am not sure about that.) Also keep your eyes open for a "Mic Boost" option. This may have only two settings, "muted" and "unmuted"; in the later case it will amplify the microphone input by an additional 20dB.
Another option to check is the Mic number. I battled for ages trying to get my mic working under SuSe 9.1. In the end I discovered I had to select "Mic 2" using alsamixer - the default was "Mic 1". Alternatively, run
amixer to see all controls. An example of a part of the output can be:
Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume \ pswitch pswitch-joined cswitch cswitch-joined Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 31 Capture 0 - 7 Mono: Playback 23 [74%] [on] Capture 5 [71%] [off]
In this case you set Capture on with the command
amixer sset Mic Capture cap. (The Capture volume was set with the command
amixer sset Mic Capture 71%.) If you don't want the input from your microphone to go immediately through your speakers, mute the Playback:
amixer sset Mic Playback mute. (I'm not very sure about that, correct me if I am wrong.)
I am also not sure the control you need to change is called 'Mic', in some cases, this can probably be another control or have another name.
IMPORTANT: Make sure _both_ the Mic Capture and the Capture device are enabled (press space on them) and have a non-zero input volume. In alsamixer for my sound card, the Capture device (Item) is on the far right.
On many AC97 based soundcards Capture can have volume of 0 (thes means 0 dB). Max value is +34 dB. Capture control amplify input signal.
I followed this advice, and I wasn't getting anywhere but finally, I got it to work. The problem was fixed by running 'aumix' (not alsamixer or amixer) and setting iGain to 100%. This is on top of tweaking every knob in alsamixer, setting them all to 100%, setting the microphone to capture (with space). I tell ya, alsa isn't a walk in the park.
For me, the instructions above did not still cut it. I had to turn a control "AC97" to 100% (in addition to Mic and Capture to 100%).
I was using kmix 2.4 on Fedora Core 4, but I couldn't find a solution. So I used alsamixer as written above selecting mic (Mic1 for me) and I fixed. Perfect. But KMix isn't able yet to change the config, only alsamixer works.