Linux / FreeBSD keyboard.

Using the Microphone with Skype and Other Audio Applications

The Problem:

Skype test call window during the audio test.

You have set up Skype or another audio program. While the headphones work and you can hear just fine, there is simply no microphone signal at all. You do the Skype audio test call, as we see here, and you hear the automated prompt telling you to speak. But when it is played back, you hear nothing.

Green Audio out
Pink Microphone in
Blue Line in

Before going further, make sure that that your audio peripherals are correctly plugged in. If you are using the audio connectors on the front of the case, they must be correctly connected to the motherboard and sometimes they are not. Try using the connectors on the rear, which are directly on the motherboard or the separate sound card.

Remember that "Microphone" means a non-amplified microphone signal, like a headset, while "Line in" means a line-level signal from another piece of equipment like a CD/DVD player, MP3 player, and so on.

The Investigation:

See what sound hardware the kernel has detected. Here is what I see on my system, with an nVidia audio device on the motherboard at PCI bus address 00:05.0. Type the bold and look for the highlighted output:

# lspci | grep -i audio
00:05.0 Audio device: nVidia Corporation MCP61 High Definition Audio (rev a2)

See what sound kernel modules are loaded. You should see a number of these, but your precise output will vary depending on your hardware and kernel version:

# lsmod | grep snd
snd_hda_codec_realtek    67904  1 
snd_hda_intel          30941  3 
snd_hda_codec         126679  2 snd_hda_codec_realtek,snd_hda_intel
snd_hwdep               6907  1 snd_hda_codec
snd_seq_dummy           1790  0 
snd_seq_oss            33816  0 
snd_seq_midi_event      7243  1 snd_seq_oss
snd_seq                59828  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          6985  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            46200  1 
snd_pcm                97044  3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
snd_timer              23140  2 snd_seq,snd_pcm
snd_mixer_oss          15901  1 snd_pcm_oss
snd                    78261  16 snd_hda_codec_realtek,snd_hda_intel,[...]
soundcore               7367  2 snd
snd_page_alloc          8508  2 snd_hda_intel,snd_pcm

Verify that the sound and ALSA services are configured to start in your current run level:

# runlevel
N 5
# chkconfig --list sound
sound     0:off   1:off   2:on    3:on    4:on    5:on    6:off
# chkconfig --list alsa
alsa      0:off   1:off   2:on    3:on    4:on    5:on    6:off

Verify that the sound and ALSA services have actually been started:

# /etc/init.d/sound status
Sound loaded
# /etc/init.d/alsa status
Sound loaded

If these are run through SystemD, you will see no output from the above command and you will need to do the following instead. The alsa-restore service does not run continuously, but it has successfully done its job and exited:

# systemctl list-unit-files |  egrep 'sound|alsa'
alsa-restore.service                    static
alsa-store.service                      static                            static
# systemctl status - Sound Card
          Loaded: loaded (/usr/lib/systemd/system/; static)
          Active: active since Fri, 2013-11-29 11:28:27 EST; 5h 18min ago
            Docs: man:systemd.special(7)

# systemctl status alsa-restore.service
alsa-restore.service - Restore Sound Card State
          Loaded: loaded (/usr/lib/systemd/system/alsa-restore.service; static)
          Active: inactive (dead) since Fri, 2013-11-29 11:28:36 EST; 5h 18min ago
         Process: 1290 ExecStart=/usr/sbin/alsactl restore (code=exited, status=0/SUCCESS)
          CGroup: name=systemd:/system/alsa-restore.service

Verify that the audio mixer is not muted and the input gain is set to a reasonable level:

# aumix -q
vol 100, 100
line 77, 77
pcm2 100, 100
igain 57, 57
dig1 100, 100
# amixer
Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined penum
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Front Left: Playback 65536 [100%] [on]
  Front Right: Playback 65536 [100%] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch cswitch-joined penum
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 65536
  Front Left: Capture 30147 [46%] [on]
  Front Right: Capture 30147 [46%] [on]

Verify that nothing is currently using the audio device. You want to see no output here:

# fuser -v /dev/dsp
# lsof /dev/dsp

The Solution:

If the problem was not fixed by switching to the rear panel connectors, the problem is probably that you have two microphone inputs and the wrong one is selected.

Start the Pulse audio volume control application with pavucontrol as seen here.

Click the Input Devices tab.

Pulse audio control interface associated with pavucontrol.

Click the pull-down menu beside Port and try selecting the other microphone. Here, I have switched from Microphone 1 to Microphone 2, solving my problem.

Verify that you see the level meter bar graph move as you speak. The input level meter bar graph is at the center of the panel, just below the "Front Right" slider, below the words "Silence Base Max", and above a light grey empty box. It is nearly at zero in this screen capture.

Set the input gain to a reasonable level. It should move most if not all the way to the right on peaks, but it should spend the majority of the time below 50%.

Back to the Linux / Unix page