Skype for Linux

This is the page to share my findings regarding to Skype for Linux.


Skype 1.3

The BETA version of Skype 1.3 has been released. Has ALSA support.

Skype for Linux BETA — first impressions

The most anticipated feature — ALSA support is finally in. Unfortunately it is not yet fully functional. If you have single sound card - there should be no major problems (except loosing sound...). Default configuration should just work.

In more advanced config with more than one sound device, I found out that choosing from dropdown list any other sound device then first one makes Skype deaf and mute.

Moreover Skype does not support selection of virtual sound devices. Selection box features only basic hardware devices, so you cannot easily benefit from ALSA flexibility, where you can define own device, that consist of speakers of one sound card and microphone of another (eg. USB webcam).

Fortunately this is up to some degree workaroundable. Current implementation seems to always choose default ALSA configuration (at least when first device is selected in dropdown list). And you can redefine what default device is. The downside is that other applications will use that device as a default as well. However many of them (eg. mplayer, xmms, xine) gives the way to specify what device should be used.

See the ALSA configuration hints for Skype for some examples. If you configure that right skype_dsp_hijacker shouldn't be necessary anymore. But if you wish to continue using OSS drivers, you can continue using it with no harm. Moreover hijacker has now a workaround so you may leave default ALSA device unchanged and use custom one (eg. named 'skype) with Skype.

Problems in Skype 1.3 BETA

Skype for Linux

Skype 1.2

Sound problems

Skype is using obsolete OSS sound system and this fact has several implications. One is that with most sound cards and configurations allows only one application to access sound device in a time. Another is not directly OSS fault, but rather how the Skype is implemented. Skype setup doesn't give much flexibility in configuring sound. In fact you can setup only one OSS device (/dev/dsp*) that will be used for all purposes: speakers, microphone, ringing. It sounds reasonable to allow user to select different devices, eg. earphones for listening, USB (camera) microphone for recording, and loudspeakers for ringing. This is doable with OSS, just there is no such option in Skype.

Separate problem is a bug introduced in Skype for Linux and not fixed in, or, that makes Skype unusable after first call. Sometimes a few calls can be made, before it happens, but later only solution is to restart Skype. Technically it seems that Skype "forgets" to close sound device, before trying to open it again and locks up. Messages given on the screen & on the console aren't very helpful: Problem with sound device., or /dev/dsp1: Device or resource busy.


Real solution would be to fix the bug, implement ALSA support, and add more detailed sound configuration to Skype. Unfortunately due a closed source development model, only Skype employees are able to do the work.



Skype failure message
skype_dsp_hijacker is GPL licensed wrapper wrote by snow-x, Jan Albin & others.

How does hijacker it work

skype_dsp_hijacker is loaded before Skype itself, and override open/close/read/write operations. Depending on configuration it can reroute reads and/or writes that comes from Skype to other device than Skype intended.

For bug introduced in Skype, wrapper detects the situation when Skype tries to open the device it didn't close before, and close it.

Technically skype_dsp_hijacker is shared library that is preloaded (LD_PRELOAD) before Skype is executed, and the script that wraps it with some command line interface. skype_dsp_hijacker is distributed as a C source code and needs to be compiled.

Skype 1.3 with ALSA update: Since new Skype 1.3 BETA has ALSA support, using OSS is not recommended anymore. Also bug introduced in is not longer a problem. The new problem is that Skype always use default ALSA device. skype_dsp_hijacker v0.8 can workaround that too. Instead of 'default' will use ALSA device named 'skype' (see configuration hints) or any other you configure it to use.
Technically it would be possible to use separate ALSA device for input & output, but there is no need to, since this can be achieved through ALSA configuration as well.

To use skype_dsp_hijacker with ALSA support, compile it with make CFLAGS=-DHAVE_ALSA. Make sure that you have ALSA device named 'skype' configured.





Debian dependency problem

Q: how to fix the problem with the libqt3c102-mt lib?
A: Download the fedora rpm and "alien" it:
sudo alien skype-versionblabla.rpm
sudo dpkg -i skype_version_blabla.deb
Credits to Rattlesnake at Skype Forum for this workaround.

Slow startup

In some configurations Skype takes way too long to start, and slows down, or even freeze other applications by using 100% of CPU. This happens even on systems that are much more powerful then the system requirements.

Known workaround is to start Skype with --disable-dbus option.
skype --disable-dbus

→ Go back to Linux resources page
2006.07.04, Jan SÅ‚upski, email: jslupski at juljas dot net