Skype for Linux
This is the page to share my findings regarding to Skype for Linux.
The BETA version of Skype 1.3 has been released. Has ALSA support.
Skype for Linux 18.104.22.168 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 22.214.171.124
- Not fully functional ALSA configuration (device selection does not work, no virtual device selection) →skype_dsp_hijacker v0.8
- Still no support for selecting device for ringing
- Loosing sound problem (no sound in headphones after few seconds of connection) →forum
- Do you have problems with DTMF driven services (banking, passwords, etc.)? After a year of troubles (lost digits, double digits etc), and different tries, I found a solution that more-or-less worked for me recently. If others have these problem too, I'm willing to describe it here.
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 126.96.36.199 and
not fixed in 188.8.131.52, 184.108.40.206 or 220.127.116.11, 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_dsp_hijacker is GPL licensed wrapper wrote by snow-x, Jan Albin & others.
- use of separate devices for sound input and output
- workaround device open bug in Skype 18.104.22.168, Skype 22.214.171.124, Skype 126.96.36.199 & Skype 188.8.131.52
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
For bug introduced in Skype 184.108.40.206, 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 220.127.116.11 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.
- Skype 18.104.22.168 bug workaround only
$ MIXERDEV=/dev/mixer MICDEV=/dev/dsp SPEAKERDEV=/dev/dsp LD_PRELOAD=./libskype_dsp_hijacker.so:/lib/libdl.so.2 skype
- Use second sound card
$ ./skype_dsp_hijacker --2nd
$ MIXERDEV=/dev/mixer1 MICDEV=/dev/dsp1 SPEAKERDEV=/dev/dsp1 LD_PRELOAD=./libskype_dsp_hijacker.so:/lib/libdl.so.2 skype
- Use microphone from the first sound card and speakers connected to the second (eg. USB ones)
$ ./skype_dsp_hijacker --speakers2nd
$ MIXERDEV=/dev/mixer1 MICDEV=/dev/dsp SPEAKERDEV=/dev/dsp1 LD_PRELOAD=./libskype_dsp_hijacker.so:/lib/libdl.so.2 skype
- See also:
$ ./skype_dsp_hijacker --help
and edit skype_dsp_hijacker to customize it even more
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
Credits to Rattlesnake at Skype Forum for this workaround.
sudo dpkg -i skype_version_blabla.deb
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
Known workaround is to start Skype with --disable-dbus option.
→ Go back to Linux resources page
2006.07.04, Jan Słupski, email: