Internal mic not working

Need help getting internal mic to work on Fedora 35 Gnome
At first start up mic would not work
It use to work by closing the laptop, in other words putting it to sleep, and on opening the laptop it would start working
But now that does not work I get nothing form the mic I can plug in a external headset mic and it works but I need the internal mic to work
If I try the usb live Fedora 35 mic does not work until I close the laptop and open it up then it works just like it did before
If you need any other info just let me know

Have you tried the gnome settings → sound control panel. There you can select the sound input source.

It seems possible that the internal mic is not selected by default and you may need to manually select it.

Yes it is selected
But there is no activity, no red line indicating output
Only started having trouble with the mic since pipewire
Use to be able to activate the mic by bringing it out of suspend but that does not work any more

Would you like to check from terminal with alsamixer and press F6 to select appropriate sound card then press F5 to show all available volume controls. Check if your mic and mic boost are at 00 volume level. If this what happen, you could rise it with arrow keys.

You could also try to disable/enable auto-mute in case this is what happen when your mic doesn’t work on startup.

I already tried alsamixer
It had no effect
I think possibly pipewire is not finding the mic
I’ve had trouble with my mic ever since pipewire came along

Maybe you want to run arecord -lL to check your devices availability first. From there maybe we can figure out on how to create custom pipewire config.

Use this article to test using arecord.

here is the output of arecord -1L

null
    Discard all samples (playback) or generate zero samples (capture)
pipewire
    PipeWire Sound Server
default
    Default ALSA Output (currently PipeWire Media Server)
sysdefault:CARD=PCH
    HDA Intel PCH, VT1802 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, VT1802 Analog
    Front output / input
**** List of CAPTURE Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: VT1802 Analog [VT1802 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Tried the arecord test in the linked article and no recording
Tried with and without sudo

Please read here, look like they have problem like yours with same sound card vt1802

Update:

The GUI package can be install with sudo dnf install pavucontrol. I’m not sure about terminal command suggested there since F35 not using pulseaudio.

Here is what I get when I do audio test

**** List of CAPTURE Hardware Devices ****
card 1: PCH [HDA Intel PCH], device 0: VT1802 Analog [VT1802 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
$ arecord -f S16_LE -d 10 -r 16000 --device="hw:1,0" /tmp/test-mic.wav
Recording WAVE '/tmp/test-mic.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
arecord: set_params:1358: Channels count non available
$ aplay /tmp/test-mic.wav
/tmp/test-mic.wav: No such file or directory

This is what I get using sudo

$ sudo arecord -f S16_LE -d 10 -r 16000 --device="hw:1,0" /tmp/test-mic.wav
Recording WAVE '/tmp/test-mic.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
arecord: set_params:1358: Channels count non available
$ sudo aplay /tmp/test-mic.wav
aplay: main:831: audio open error: Host is down

Add -c 2 for stereo to the command or -c 1 for mono. No need sudo if you save the output on your home directory.

Guess what I already tried pavucontrol
Didn’t help

OK I added -c 2 and this is what I got

$ arecord -f S16_LE -d 10 -r 16000 -c 2 --device="hw:1,0" /tmp/test-mic.wav
Recording WAVE '/tmp/test-mic.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Stereo
Warning: rate is not accurate (requested = 16000Hz, got = 44100Hz)
         please, try the plug plugin

So I changed 16000 to 44100 and this is what I got

$ arecord -f S16_LE -d 10 -r 44100 -c 2 --device="hw:1,0" /tmp/test-mic.wav
Recording WAVE '/tmp/test-mic.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
$ aplay /tmp/test-mic.wav
Playing WAVE '/tmp/test-mic.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo

So I got a recording, it works

Great!

My last idea, please open file /usr/share/pipewire/pipewire.conf. Read the very top comment on how to create local configuration.

After you creating ~/.config/pipewire/pipewire.conf file, open and find on the very bottom line as below:

# This creates a single PCM source device for the given
    # alsa device path hw:0. You can change source to sink
    # to make a sink in the same way.
    #{ factory = adapter
    #    args = {
    #        factory.name           = api.alsa.pcm.source
    #        node.name              = "alsa-source"
    #        node.description       = "PCM Source"
    #        media.class            = "Audio/Source"
    #        api.alsa.path          = "hw:0"
    #        api.alsa.period-size   = 1024
    #        api.alsa.headroom      = 0
    #        api.alsa.disable-mmap  = false
    #        api.alsa.disable-batch = false
    #        audio.format           = "S16LE"
    #        audio.rate             = 48000
    #        audio.channels         = 2
    #        audio.position         = "FL,FR"
    #    }
    #}

Edit it as below:

# This creates a single PCM source device for the given
    # alsa device path hw:0. You can change source to sink
    # to make a sink in the same way.
    { factory = adapter
        args = {
            factory.name           = api.alsa.pcm.source
            node.name              = "alsa-source"
            node.description       = "PCM Source"
            media.class            = "Audio/Source"
            api.alsa.path          = "hw:1,0"
    #        api.alsa.period-size   = 1024
    #        api.alsa.headroom      = 0
    #        api.alsa.disable-mmap  = false
    #        api.alsa.disable-batch = false
            audio.format           = "S16LE"
            audio.rate             = 44100
            audio.channels         = 2
            audio.position         = "FL,FR"
        }
    }

Please take a look what I changed above. It copying your parameter from arecord. You could modify it your self to playing around.

After finish the edit, run:

systemctl --user restart pipewire
systemctl --user restart wireplumber

Then open your Gnome setting. There should be new device added there.

It seems to be working
I have to turn it up more than before and the red line does not move as much
The external headphone mic also works and the red line moves a lot more
Will find out this evening how well it works
If it does not work will have to find out how to go back to PulseAudio
Thanks very much for your help it is appreciated