HOWTO: Skype for Linux

From Sabayon Wiki
Jump to: navigation, search

HOWTO: Skype for Linux

The following procedure works on an Acer TravelMate 8215WLMi laptop PC running Sabayon x86-64 3.3 and Skype for Linux 1.3.0.53_API. [See the addenda at the bottom of this page for later versions.]


The Acer TravelMate 8215WLMi uses an Intel soundcard. You will need to find out precisely which type of soundcard your PC uses and edit the appropriate configuration file for it as explained in this procedure. There are ALSA configuration files in directory /usr/share/alsa/cards for many different soundcards. AlsaConf (see STEP 2 below) should tell you which soundcard you have if you are not sure.


Problems with Skype that this procedure may resolve

This procedure may help you resolve the following problems when trying to use Skype for Linux with Sabayon Linux:

- The microphone appears not to work: you can hear the other party but they cannot hear you.

- The Skype window displays the message “Problem with sound device”, or displays the message “Connecting” ad infinitum.

- The Terminal window from which you launched Skype displays the following message:

ALSA lib pcm_dsnoop.c:606:(snd_pcm_dsnoop_open) unable to open slave

- You can connect to the Skype Test Call service but usually the 'bong' informing you that the recording period has finished is immediately followed by a second 'bong' instead of your voice being played back.

- You can sometimes connect to the Skype Test Call service and record your voice correctly but usually you cannot and experience one or more of the above problems.

- You can sometimes connect to a third party and have a conversation but usually you cannot and experience one or more of the above problems.


STEP 1

First make sure that your PC has the latest versions of the ALSA software. I do this by launching Kuroo, typing alsa into the Filter box, ticking the Updates radio button and then opening a Terminal window and using the emerge -u command as root to update all the installed ALSA-related packages displayed by Kuroo. Updating listed third-party applications such as TiMidity++ is not necessary.


STEP 2

# alsaconf

Run AlsaConf as root and click on OK, to make sure ALSA is configured. AlsaConf should also tell you which soundcard your PC has. If AlsaConf lists a second soundcard which is described as a “legacy” soundcard, do not select the “legacy” soundcard.


STEP 3

Launch Recording Tool (KRec) and use it to see if the PC microphone is recording correctly.


STEP 4

$ alsamixer

Run AlsaMixer and make sure nothing is muted and that both Front Mic, Mic, and the two Capture columns are not muted/disabled, and set them to maximum. (Use the TAB key to cycle through all the parameters in AlsaMixer; to select different parameters press the left and right arrow keys; to increase/decrease volumes use the up/down arrow keys, to mute/unmute use the Space bar. To see all the parameters simultaneously you can maximise the window.) By the way, I also ran KMix and found that anything I did in KMix was mirrored in AlsaMixer, and vice versa except for the two Capture sliders in KMix. Volume Control, though, matches AlsaMixer exactly, so you can use Volume Control instead of AlsaMixer if you want.


STEP 5

Select Control Centre > Sound & Multimedia > Sound System > Hardware and change ‘Select the audio device:’ from ‘Autodetect’ to ‘Advanced Linux Sound Architecture’ and tick ‘Full duplex’.


STEP 6

Repeat STEP 3. You should find that KRec works: you should be able to record your voice and play it back.


STEP 7

# cp /usr/share/alsa/cards/HDA-Intel.conf /usr/share/alsa/cards/HDA-Intel.conf.bak

As root, backup your soundcard’s ALSA configuration file. This is just a precautionary measure in case you need to revert. Bear in mind that the example above is for the Acer TravelMate 8215WLMi which uses an Intel soundcard. You will need to find out precisely which type of soundcard your PC uses and edit the appropriate configuration file in /usr/share/alsa/cards. There are ALSA configuration files in /usr/share/alsa/cards for many different soundcards.


STEP 8

As root, edit /usr/share/alsa/cards/HDA-Intel.conf (or whatever the ALSA configuration file is called for your soundcard) and change:

File: /usr/share/alsa/cards/HDA-Intel.conf
		capture.pcm {
			type plug
			slave.pcm {
				@func concat
				strings [ "dsnoop:" $CARD ]
			}

to

File: /usr/share/alsa/cards/HDA-Intel.conf
		capture.pcm {
			type plug
			slave.pcm {
				@func concat
				strings [ "hw:" $CARD ]
			}

i.e. replace "dsnoop:" with "hw:"


STEP 9

$ sudo skype

Launch Skype as root and you may find that Skype now works consistently. The Skype Test Call service should work correctly and consistently. You should also be able to make a long call without problem.



This HowTo is based on the Sabayon Forum post here.

Authored by Fitzcarraldo, 18.04.07


ADDENDUM No. 1

16 July 2007: See the following warning by Skype for Linux forum member 'berkus', one of the Skype developers on the Skype for Linux forum, about ALSA 1.0.14 stopping the microphone from working:

http://forum.skype.com/index.php?showtopic=66544&st=40&p=413813&#entry413813

The command to restart the ALSA modules ('berkus' refers) is:

/etc/init.d/alsasound restart

Note that the above warning has nothing to do with the problem stopping the microphone working that is documented above. Even if you have not installed ALSA 1.0.14 the procedure above may help you get your microphone working with Skype.


ADDENDUM No. 2

16 August 2007: I have found that I do not need to edit the new version of /usr/share/alsa/cards/HDA-Intel.conf now that I have updated to the latest version of ALSA (1.0.14) and the latest version of Skype (1.4.0.94) from Portage. This version of Skype for Linux is much better than the version (1.3.0.53_API) originally discussed on the Wiki page.


ADDENDUM No. 3

7 October 2007: Here is how I got Skype (Beta) 1.4.0.99 to work (Skype was giving the error message “Call Failed: Problem with Audio Capture”). I needed to do this for both SL 3.4 Loop 2b and SL 3.4f.

STEP 1

emerge -u to get the latest version of the ALSA packages alsa-firmware (1.0.14), alsa-headers (1.0.14), alsa-lib (1.0.14a-r1), alsa-plugins (1.0.14), alsa-tools (1.0.14).

STEP 2

Run alsaconf as root in a Terminal window and click on the OK buttons and click on your audio card. It should be obvious.

STEP 3

Run alsamixer as root in a Terminal window and make sure nothing is muted (pressing M toggles on/off) and volume levels are turned up (not into the red region, though). Ditto for the two Capture channels.

STEP 4

Run GNOME Volume Control or KDE KMix (KMix does not work properly on my laptop: the Capture channels reset to zero every time) and double-check nothing is muted and levels are all non-zero.

STEP 5

emerge -u skype to get the latest version of Skype (1.4.0.99).

STEP 6

K Menu > Control Centre > Sound & Multimedia > Sound System, click on the Hardware tab and tick the box Override device location and enter "default" (without the quotes) in the box beside it. Don't change anything else in the as-installed settings. Click Apply.

STEP 7

Reboot.

STEP 8

Launch Skype and select Options > Sound Devices. Select the following settings:

Sound In	HDA Intel (hw:Intel,2)
Sound Out	HDA Intel (hw:Intel,0)
Ringing	HDA Intel (hw:Intel,0)

N.B. My sound card is HDA Intel. Yours could be different, but try to select the (hw:*,2) and (hw:*,0) as I've shown above.

STEP 9

If the above still does not get Skype working, try also: K Menu > Control Centre > Sound & Multimedia > Sound System and untick 'Enable the sound system' under the General tab. I had to do this.


ADDENDUM No. 4

8 October 2007: Here is how I got Skype 1.4.0.118 to work with the 64-bit version of SL.

I emerged version 1.4.0.118 it but it did not run with the 64-bit version of SL I'm using and the following error message was displayed:

/opt/skype/skype: error while loading shared libraries: libsigc-2.0.so.0: cannot open shared object file: No such file or directory

I looked in the directory /opt/skype/ and there is the following symlink:

lrwxrwxrwx 1 root root 20 2007-10-07 01:07 /opt/skype/libsigc-2.0.so.0 -> libsigc-2.0.so.0.0.0

The above was flashing red in the Terminal window, indicating that the file libsigc-2.0.so.0.0.0 did not exist.

This is what I had to do to get Skype 1.4.0.118 to work with 64-bit SL:

STEP 1

Uninstalled Skype 1.4.0.118

STEP 2

Re-installed Skype 1.4.0.99

STEP 3

Copied the library file to a safe place:

cp /opt/skype/libsigc-2.0.so.0.0.0 /home/fitzcarraldo/Desktop/libsigc-2.0.so.0.0.0

STEP 4

Uninstalled Skype 1.4.0.99

STEP 5

Re-installed Skype 1.4.0.118

STEP 6

Copied the library file I had saved in Step 3 back to the /opt/skype/ directory:

cp /home/fitzcarraldo/Desktop/libsigc-2.0.so.0.0.0 /opt/skype/libsigc-2.0.so.0.0.0

Now Skype 1.4.0.118 launches and works correctly.