openSUSE 12.1 - no microphone input (using pulseaudio w/ internal audio)

Hi guys!

I’m new to the forums, but I’ve been reading it since 11.4 - only now has the time come for me to post a question. I’ve been up and down looking for a solution to this specific problem - including the topics I managed to dig up here also -, no success though.

The problem is simple as it is:

  • fresh install of 12.1
  • no tweaking of sound config files done
  • if I select my internal audio in KMix (or pavucontrol) the slider does not move one bit, like it couldn’t detect any sound at all coming from the outside world
  • been using openSUSE since 11.4, internal input was working just fine without any tweaking
  • checked alsa-mixer (and everywhere else too), nothing is muted (except that I turned OFF nvidia-audio, for I have no use for it)

“cat /proc/asound/card0/codec* | grep Codec” responds with:
Codec: Realtek ALC269

Here’s the dump of my alsa-info.sh:
alsainfosh - Pastebin.com

Any ideas of what I could try are very welcome. :slight_smile:

Thank you for your time!

update: forgot to say: notebook with HDA Intel ^^

From the script, these are your record devices:


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

ie hw:0,0 and hw:0,2.

Are you trying to record with an integrated mic in the notebook ? In an external mic plugged in? You state ‘internal audio’ but internal audio is not a mic.

I note a 64-bit openSUSE-12.1 on an ASUSTeK N61Vn, with the nominal alsa versions and the ALC269 that you reported.

You say you tuned with pavucontrol. Can you show us each of the settings ? Ensure in the Configuration TAB you have correct settings. Ensure in the INPUT DEVICES tab you have SHOW set to ‘ALL Input Devices’ and ensure in the RECORDING TAB you have SHOW set to “ALL input streams” when trying to record.

What command are you using to record/test ? I recommend the command ‘arecord’ with appropriate arguments.

For example, if trying from your digital input (hw:0,2) try this:


arecord -vv -f S16_LE -c 2 -D hw:0,2 new.wav

Pay ATTENTION to the arecord errors. I assumed 2 channels ( -c 2 ) but maybe you need 1 channel ( -c 1 ). I assumed format S16_LE but maybe that is the wrong format. After recording, stop it by pressing and play back new.wav with something like:


aplay new.wav

Also try with hw:0,0, … ie


arecord -vv -f S16_LE -c 2 -D hw:0,0 new.wav

Worst comes to worst you can try some model options (one at a time with a very specific syntax that I have no time to post ) in the 50-sound.conf file:


ALC269
======
  basic		Basic preset
  quanta	Quanta FL1
  laptop-amic	Laptops with analog-mic input
  laptop-dmic	Laptops with digital-mic input
  fujitsu	FSC Amilo
  lifebook	Fujitsu Lifebook S6420
  auto		auto-config reading BIOS (default)

but I am VERY pressed for time about to leave on a business trip and I don’t have time how to explain how to do that. Maybe on the weekend if no one else has posted to teach you how.

Thank you for the quick answer oldcpu!
Yes, I’m trying to achieve some response out of my notebook’s internal microphone. Sorry if my description was a bit sloppy/misleading at that point.

I didn’t do any tuning with pavucontrol, just installed it and checked out all the TABs (as you just described). And what I noticed is that the sliders on the INPUT DEVICES tab were not moving, so my conclusion was that the internal microphone is somehow not picking up anything. I have selected “All streams” on RECORDING tab, and “All input devices” on INPUT DEVICES tab (also internal mic. selected).
Skype’s built in “call-test” shows the same results, meaning: it won’t play back any sound, nothing is recorded.
Also checked the sliders in KMix, they are on their max and nothing is muted.

Following your recommendation, I also checked out recording from CLI with arecord, using this code (with the assumptions you made as parameters):


arecord -vv -f S16_LE -c 2 -D hw:0,2 temp.wav
aplay temp.wav

Your assumptions were correct - to my surprise, it actually works! Recording and playback were 100% successful using this method! Thanks for the tip! :slight_smile:

So we can rule out the HW error case, right? However, I have no idea what could be causing this weird behaviour, and because of this nor do I know what the next step should be. Previously I’ve tried “messing” with /etc/modprobe.d/50-sound.rc, but then sound completely went away (added a few parameters after options I think), so I set everything back how it was by default. I see you have posted some model options, if I have time I’ll try to look up some info about how to add them.

It seems this problem isn’t such a lost cause as I imagined. :slight_smile:
Cheers!

I am in a hotel room working from a tablet so I can not say much. Since ‘arecord’ works then you do not need to apply options. Instead you need to tune pulse audio with ‘pavucontrol’

Thanks for the reply!
I’ve tried everything on the pavucontrol interface, but none of the settings made internal microphone work. Any other ideas where I could start poking around?

One more thing I noticed: in pavucontrol (and also in KMix) I can only choose between “internal microphone” and “analog microphone” inputs, altough I have one line-in and one mic-in ports on the side of my notebook. And I don’t use any external microphones, only the internal built into the notebook. Shouldn’t pavucontrol and KMix offer all three (internal-mic/analog-mic/line-in) choices?

One last addition:


options snd slots=snd-hda-intel,snd-hda-intel
# u1Nb.MD+6UGKwZP1:82801I (ICH9 Family) HD Audio Controller
alias snd-card-0 snd-hda-intel
# NXNs.zSQh34NWUK2:nVidia Corporation
alias snd-card-1 snd-hda-intel

This is what my /etc/modprobe.d/50-sound.conf looks like right now (default, nothing changed since install).
(Sorry for posting these as three different replies, but editing wasn’t offered at the time the thoughts came.)

If the arecord command works, then so should pulse. Please what are ALL your choices in the pavucontrol Configuration Tab ? (if not in english never mind, as I can’t translate to something meaningful to me).

Okay, I made some screenshots of my pavucontrol settings and options. They are in english ofcourse.

  1. Configuration tab - contents and settings:
    pavucontrol1

  2. Configuration tab - (NVIDIA) HighDef Audio choices:
    pavucontrol2

  3. Configuration tab - (Intel) Internal Audio chocies:
    pavucontrol3

  4. Input devices tab - contents and settings:
    pavucontrol4

  5. Input devices tab - Internal Audio choices:
    pavucontrol5

… and the recording tab ? (while recording from an APP ? ) You need to ensure it is NOT pointing to the 'high definition audio controller that you have switched OFF. You also need to ensure the RECORDING Tab while recording from an app (with SHOW all streams selected) is consistent with your other Tab selections (such as ‘internal Mic’).

If it were me, I would also switch that HDMI ON for testing and only after I had recording established would I switch it OFF.

Internal Mics are typically digital, … and I don’t see a digital Mic in that list, which is surprising (although you do note a selection in the Input devices tab for an internal mic, and most hardware audio codecs tend to be different). For an analog Mic, while I think ‘Duplex’ should work, for testing you should also test the Analog Stereo Input setting.

Recording tab, in all it’s glory - empty as hell (picture was taken while running arecord):
http://imgbin.org/images/5752.png

Running paman (pulseaudio manager) gives me a realtime usage display on my sinks and sources (lists all the client processes who are accessing them at the time). There is NO activity at all (meaning no new client appears under the source “alsa_input.pci-0000_00_1b.0.analog-stereo”) when I launch arecord. When playing back with aplay, a new client called “ALSA Playback” appears under the active sink:
http://imgbin.org/images/5753.png

Strange… seems like ALSA is doing the recording correctly, but pulseaudio is not even aware of it happening.

(Note: everything is the same with NVIDIA HighDef Audio turned ON.)

arecord is not a good example for pavucontrol screen shots, as it bypasses pulse audio.

Thanks, so it seems. Now I tried recording with Audacity too. In Audacity preferences, one is able to choose between several recording sources.
My choices are as follows:
http://imgbin.org/images/5756.png

First I chose “pulse” then “pulse monitor” as record device. Both gave the same result, ie. while recording the audio, paman was able to see the Audacity recording client under the MONITOR source ( http://imgbin.org/images/5755.png ) - so basically, I was recording the monitor channel. I don’t think this is correct, shouldn’t it be under the source called “alsa_input.pci-0000_00_1b.0.analog-stereo”?

Next I tried with “default”, results were the same as above with “pulse”/“pulse monitor”. No difference.

Then came “sysdefault”, which resulted in no recording signal detected at all, and no source client popping up in paman under neither of the sources.

Finally I tried with "HDA: Intel ALC269 Analog (hw:0,0) and (hw:0,2). As expected, (0,0) picked up no signals at all, while (0,2) was recording fine from internal microphone. While recording, there appeared NO client in paman, under neither sources (so it’s basically the same case as described in my previous post (recording with arecord)).

I’m more than puzzled what I could try at this point. Maybe it’s time to jump into editing /etc/asound-pulse.conf, /etc/modprobe.d/50-sound.conf ~/.asoundrc ?

One more thing I noticed: while in a call with someone via Skype, I can choose in pavucontrol’s RECORDING Tab between “Internal Audio Analog Stereo” and “Monitor of Internal Audio Analog Stereo”, for Skype. Meaning I can only record from monitor, but not microphone.

I think this concludes pretty much all I could help in troubleshooting this helluva problem. Enough for today on my side. :slight_smile:

Thanks again for helping,
Cheers!

I don’t use audacity. You will need an audacity user to help you there.

I’m suffering from a headache with the flue and lost track of what you are trying to do. Is hw:0,2 not the device you want to record from ? In the case of hw:0,0, ensure you have the mic plugged into the correct jack.

Is it not solved with hw:0,2 ?

Yes, you are correct. I wish to record with hw:0,2 (internal notebook mic). The problem is, that it refuses to work with pulseaudio… only works if I specify it directly with arecord or audacity, or any other recording app. But this way, it seems to me that it bypasses pulse, and uses ALSA only.

I cannot specify to use ALSA inside Skype, since it only offers “pulse (local)” as a choice in the sound preferences (don’t know why).
I cannot specify it inside pavucontrol either, because the choices there for me are: “internal mic” / “analog mic”. And none of them seem to be hw:0,2 (because no sound is picked up by the mic when selecting either of them)!

So this is why I’m starting to think that there must be some misconfiguration in one of my alsa/pulse config files, but sadly I’m not a pulseaudio expert enough to correct them myself. :slight_smile:
I’m going to paste the output of my current alsa-info.sh one more time, because there were some changes I made, nothing serious though.
Here it is: alsa-info.sh

Thanks for trying to help me out, get well soon!
Cheers!

If I were you, what i would try is logging on to Skype, and then trying the Skype sound test service. At the SAME TIME, have pavucontrol running and look in the RECORD tab. You should see Skype there in that tab. Make the appropriate selection and hopefully it should work.

Good suggestion, but I already tried that. And the two options I was able to choose from, was “internal mic” and “monitor” - monitor worked, internal mic didn’t (no sound picked up).
However, I found a solution that works for me, and I don’t even have to remove pulseaudio for that. Hurray! :slight_smile:

At least, it works with Skype (didn’t try it with any other applications). Remember, I wrote that Skype didn’t allow me to choose anything else for recording sound device but “pulseaudio (local)”.
The workaround is to launch Skype with the following prefix: PULSE_SERVER=127.0.0.1 /usr/bin/skype
After doing so, you will be able to choose any sound device for playback/recording. In my case, I was able to use hw:0,2 - finally.

Explanation (as I read it):
When you specify PULSE_SERVER, Skype is told to use a pulse instance which is not the local on this machine. However, by assigning the local address to it as input, Skype won’t be able to connect with the pulseaudio server through the network (because pulse runs at a user level, it can’t be accessed this way) - so in this case, Skype falls back to ALSA. Yay! \o/

This workaround is more than enough in my case since I don’t really use the mic for anything else then Skype. If someone tries this method with another application (Mumble/etc…), please report your findings, it would be great to know about it. :slight_smile:

oldcpu: thanks for the guidance! As a complete n00b towards ALSA and PulseAudio, I’ve managed to learn A LOT since starting this thread. Which is great by the way. :wink:

Cheers,
groovnout

Interesting. I did not know of that solution

But now that you mention it, with a quick surf, I note it mentioned on the Skype site: Skype - Skype for Linux blog - Some explanations

But in any case, it is really just a workaround… when I want to initiate/accept an incoming/outgoing call via Skype, it only works if no other applications (which are using pulse) are accessing the soundcard at that time. Or else it blocks sound in Skype. This is also true the other way, meaning if I’m having a call and I want to e.g. listen to some music via (a pulseaudio) app, then this app won’t give out any sound, just hangs waiting for Skype (ALSA (hw:02)) to finish.
Basically, this means ALSA takes the whole device for itself, locking out others. Which is by the way a normal behaviour as I read it.

When I have some more time, I’ll try to fix this problem the right way. In the meantime, do you happen to have any ideas about what could be done in case of the afore mentioned behaviour? Maybe a wrapper? But wrap what?