i-am.ws |
Alsa Microphone
While trying to install Skype on RedHat Linux, I discovered that although I thought that sound was running fine on my CentOS 5.3 box, in reality it was only doing half the job. Playing music was fine, but capturing sound from a microphone had never properly worked. Both "/usr/bin/system-config-soundcard" and "gnome-sound-properties" didn't show anything obvious (Autodetect for the three playback options and ALSA for the sound capture), but clicking the last test button didn't result in hearing the sound of the microphone on my headset.
Another way to test this is with:
# arecord -d 5 -f cd -t wav foobar.wav # aplay foobar.wav
and in my case, I didn't hear anything while doing the playback.
It took lots of googling, but here is what you need to do. First of all, you can have the problem that your system has audio ports both on the front and the back of the system. For speakers or headsets you just plug it in anywhere and it works. Typically the front plug will disable what's plugged into the back. But for mics those two ports are not the same.
# /usr/bin/amixer ... Simple mixer control 'Mic Select',0 Capabilities: enum Items: 'Mic1' 'Mic2' Item0: 'Mic1' ...
On my system Mic1 was the input on the back of my PC, so I had to switch to Mic2 to use my headset that is plugged into the front. To change, use "/usr/bin/alsamixer", which opens a clumsy GUI, then click 'right' to get to "Mic Select" and use 'up'/'down' to change the Mic. Press 'Esc' to quit.
But that's not enough. Let's go back to our 'amixer' output.
# /usr/bin/amixer ... Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined pswitch pswitch-joined cswitch cswitch-exclusive Capture exclusive group: 0 Playback channels: Mono Capture channels: Front Left - Front Right Limits: Playback 0 - 31 Mono: Playback 22 [71%] [-1.50dB] [on] Front Left: Capture [on] Front Right: Capture [on] Simple mixer control 'Mic Boost (+20dB)',0 Capabilities: pswitch pswitch-joined Playback channels: Mono Mono: Playback [on] ...
When I was running this the first time, it showed "Front Left/Right: Capture [off]". That's no good!! But how to change, because my alsamixer didn't show this as an option that can be changed. The following command will do the job:
# amixer sset Mic Capture cap
After that, maybe you should go back to alsamixer and switch the "Mic Boost" option on. You do that by moving right with the cursor and then press the 'M' key. Another option further right is "Mono Out", which can be 'Mic' or 'Mix'. I'm not 100% sure what it should be, I settled for 'Mix'.
Finally, while you're doing all this, you should keep your 'Volume Control' window open. For example, playing test sounds with the soundcard config tool will mute the microphone. And in other cases the level gets automagically :-) set back to zero. You better watch out.
This was for me just the prologue for installing Skype. The best way to do that successfully I found on this Hackery blog. Here is the summary.
# the skype binaries are 32-bit, so if you're running a 64-bit system, you # need to make sure you have various 32-bit libraries installed in parallel yum install glib2.i386 qt4.i386 zlib.i386 alsa-lib.i386 libX11.i386 \ libXv.i386 libXScrnSaver.i386 # installing to /opt cd /tmp wget http://www.skype.com/go/getskype-linux-beta-static cd /opt tar jxvf /tmp/skype_static-2.1.0.47.tar.bz2 ln -s skype_static-2.1.0.47 skype # setup some symlinks (the first is required for sounds to work) ln -s /opt/skype /usr/share/skype ln -s /opt/skype/skype /usr/bin/skype
Other good tips can be found on this CentOS HowTo webpage.
Posted at 02:13PM Apr 07, 2010 by WWWillem in Desktop |