inbuilt microphone is not detected for recording in lenovo g460

Hi,
I have installed opensuse 11.4 in my lenovo ideapad G460. But, I am not being able to make the inbuilt microphone work. It does not record anything and also does not work in skype. I am not that expert with linux. I looked at different posts in this forum regarding microphone detection problem, bit could not follow. Can someone please guide me through setting up my inbuilt microphone?

Thanks,
Rahul

Here is the output after running alsa.sh.
http://www.alsa-project.org/db/?f=9eb478ff2c45cae5dc9d2424f9daf7ca7424c7e1

You might need to write a bug report on this. The reason being the audio hardware audio codec (CX20585) in the Lenovo G460 is new (although similar it appears to a CX5066) and after searching on this, I read many complaints from GNU/Linux distribution users (mostly Ubuntu) who complain the mic is broken when ever their sound is properly enabled. Typically such users had to apply the option model ‘thinkpad’ which when fixing a sound problem caused a problem with their mic.

Now an explanation …

First let me say, when testing your mic, I recommend you using this command:


arecord -vv -f cd test.wav

then open the file ‘test.wav’ and replay it with a media player and see if there is sound.

One can also specify the hardware device … For example if you run this command:


arecord -l

you should get something like :


**** List of CAPTURE Hardware Devices ****
**card 0:** Intel [HDA Intel], **device 0:** CONEXANT Analog [CONEXANT Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

which indicates your record device as currently alsa driver is configured is: hw:0,0 and so another record command you could try is :


arecord -D hw:0,0 -vv -f cd test.wav

Now I note you are running a 64-bit openSUSE-11.4 with the kernel 2.6.37.1-1.2-desktop and the 1.0.23 alsa driver and 1.0.24.2 alsa utilities. As noted your hardware audio codec is a CX20585.

First let me say that the alsa sound driver nominally comes packaged with the kernel, and your kernel is OLD. Your kernel does NOT have all the security, nor recent bug fixes. That ‘might’ be your problem. It ‘might not’. The only way to find out is to use YaST to update your kernel. The reason being when there are fixes to sound, one place where the SuSE-GmbH sound packager puts the fixes is in the updated kernels (in addition to submitting the fixes upstream).

If you do so, ensure you are ready to re-install any proprietary video driver, and I also recommend before any kernel update making a backup of the /boot/grub/menu.lst before updating the kernel, and then compare the backed up menu.lst file against the updated menu.lst file and compare the two. Make certain the update makes sence. If you have a proprietary wireless driver/firmware, then also ensure you have updated drivers for the wireless for the updated kernel ready BEFORE you update the kernel.

Anyway, that is the subject of a different thread.

Now its possible forcing a configuration of the alsa driver upon boot ‘might’ fix your problem. Noting that the CX20585 is similar to the CX2066 per this post you could try one at a time the different model options from the HD-Audio-Models.txt file (from the alsa sound driver documentation) and see if one of them might work (my guess is they will not , but who knows ? ) … That list is:


Conexant 5066
=============
  laptop    Basic Laptop config (default)
  hp-laptop    HP laptops, e g G60
  asus        Asus K52JU, Lenovo G560
  dell-laptop    Dell laptops
  dell-vostro    Dell Vostro
  olpc-xo-1_5    OLPC XO 1.5
  ideapad       Lenovo IdeaPad U150
  thinkpad    Lenovo Thinkpad

To force a model option (lets say you want to force ‘thinkpad’ ) you need to add this line to the START of your computers openSUSE-11.4 /etc/modprobe.d/50-sound.conf file:


options snd-hda-intel model=thinkpad

save the change, and then restart alsa with the comamnd:


su -c 'rcalsasound restart'

and enter root password when prompted for a password. If using KDE, don’t keep any old audio configurations if asked. Restart your mixer (‘kmix’ if kde, and likely ‘alsamixer’ if Gnome). Then test your sound, test your headphones, and test your mics. Note any one of those configurations could break your sound. No worries. Just move on to the next option. ie to test “ideapad” you replace “thinkpad” in the /etc/modprobe.d/50-sound.conf file with ‘ideapad’, restart alsa as before, restart your mixer, and test.

Do NOT put backups in the /etc/modprobe.d directory, but rather keep backups elsewhere.

Now if none of the above works, write a bug report on openSUSE-11.4 component sound on “openSUSE-11.4 CX20585 Lenovo G460 - internal mic does not work” following the guidance here: openSUSE:Submitting bug reports - openSUSE using your openSUSE forum username and password to log on to bugzilla. Attach to your bug report the text file /tmp/alsa-info.txt from running:


/usr/sbin/alsa-info.sh --no-upload

Do NOT point to the link you provided above. Run the file again and attach the file. Ensure your bug report has all the salient information. The SuSE-GmbH sound packager, who is also an alsa sound driver developer, will NOT read a forum thread, so you are wasting your time if you only point to this thread.

I am off on business for 3 days now and I may not have access to the internet. One last piece of advice … increase the BOOST in your mixer. I note:


Simple mixer control 'Analog Mic Boost',0
  Capabilities: cenum
  Items: '0dB' '10dB' '20dB' '30dB' '40dB'
  Item0: '20dB'

If you are going to test the mic, then increase the boost to something higher than 20dB (although I note that is for an ‘analog’ mic and its possible your internal mic is a digital mic.

Good luck.

OK, thanks a lot for these suggestions. I will follow these and let you know the updates.

Sorry for the late response to your suggestions.
I have updated the kernel.
I have tested the recording by using the arcrecord.
I have tried to force different model options in /etc/modprobe.d/50-sound.conf.
None of these works.

When, I voice chat in skype, it is the two sound speakers that are used as input device (instead the internal mic, which is not recognized anyway), hence cannot voice chat using internal mic. But, external mic works perfectly.

I have reported the bug to bugzilla as you suggested.

Try the:

options snd-hda-intel model=asus

line in /etc/modprobe.d/alsa-base.conf.

On my Lenovo Ideapad z560 the model=ideapad had worked to get my headphone out to my speakers to shut off the internal speakers but the internal microphone wasn’t recognized. When I finally found a forum/ubuntu bug thread that stated the thinkpad option would work I tried that, but still no mike. The same bug mentioned that the models don’t need to specifically be your actual model I tried the asus model and it worked!

I opened alsamixer and increased the micboost to the middle level (30 I think) to get the capturing volume high enough. If you open pavucontrol while recording you can also turn up/down the levels which now appear when before they did not.

In opensuse we do not use the file /etc/modprobe.d/alsa-base.conf.

Instead we use /etc/modprobe.d/50-sound.conf

…also such an entry should the be the 1st line and not the last line in such a 50-sound.conf file.

And finally, the user noted he already tried the ‘asus’ option.