Skype 4.3 without PulseAudio, only ALSA. Any options?

You can try using apulse: it is minimalistic pulseaudio emulator made specifically to run Skype 4.3 with ALSA. You need 32-bit build even on 64-bit machine.

I personally had troubles with microphone on Ubuntu 14.04, but for most people it works fine.


To build apulse on Ubuntu (and related distros), you must install following packages: pkg-config build-essential cmake libglib2.0-dev:i386 libasound2-dev:i386 gcc-multilib (probably some other too).

The build process more or less follows the one described in README:

mkdir build && cd build
PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig CFLAGS=-m32 cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release ..
make
sudo make install

I managed to have skype 4.3. running on my (otherwise pure ALSA) system. I'm running openSuSE 13.1, so, I can only describe what I did here. The general idea was to have skype running in a sort of 'pulseaudio jail'.

I installed pulseaudio but did not activate it. The most important thing about NOT activating pulseaudio seems to be a line

autospawn = no

in /etc/pulse/client.conf.

The next preparation step was to modify /etc/pulse/default.pa according to https://wiki.archlinux.org/index.php/Pulseaudio:

# BEGIN CHANGED: https://wiki.archlinux.org/index.php/Pulseaudio
load-module module-alsa-sink device=dmix
load-module module-alsa-source device=dsnoop
# END CHANGED: https://wiki.archlinux.org/index.php/Pulseaudio

#ORIG: #load-module module-alsa-sink
#ORIG: #load-module module-alsa-source device=hw:1,0
#ORIG: ### Automatically load driver modules depending on the hardware available
#ORIG: .ifexists module-udev-detect.so
#ORIG: load-module module-udev-detect
#ORIG: .else
#ORIG: ### Use the static hardware detection module (for systems that lack udev support)
#ORIG: load-module module-detect
#ORIG: .endif

Then I added two lines to my ~/.asoundrc:

pcm.unwantedpulse { type pulse }
ctl.unwantedpulse { type pulse }

A shell script 'myskype' looks like this:

#!/bin/sh
umask 0
cd

# 1. step: start pulseaudio in advance
mkdir .pulse 2> /dev/null
echo 'autospawn = yes' > .pulse/client.conf
aplay -q -D unwantedpulse /usr/share/skype/sounds/ChatOutgoing.wav
# now pulseaudio should be running

# 2. step: important mixer settings - these are hardware dependent and (probably) not really necessary
amixer sset Digital 100% unmute cap
amixer sset Capture 99% unmute cap
# etc etc
pacmd set-source-volume alsa_output.dmix.monitor 0x10000
pacmd set-source-volume alsa_input.dsnoop 0x11000

# 3. step: start skype in background 
/usr/bin/skype & 
skypepid=$!

sleep 9
# to prevent funny programs like firefox from connecting (or even starting)
# pulseaudio, we clean up rather quickly
rm -rf .pulse

# wait for skype to exit
wait $skypepid

# 4. step: stop pulseaudio
pactl exit
sleep 4
pactl exit
exit 0

Now, when I start 'myskype', skype will be started in that 'pulseaudio jail' but everything else is still using ALSA.


I had the same-ish problem. There's no workaround, I've already wasted two days to fix the problem. You can install pulseaudio and make it work with an older version of alsa. Because pulseaudio works smoothly with old versions of alsa.

I'm using 1.0.16. Here's a script to install this version. I've experienced just one issue so far with pulseaudio and this version of alsa. I had to always start pulseaudio manually after start up so I added it in start up applications.

And as far as sound control goes I use pavucontrol instead of alsamixer. It gives you more control over applications.

And there are some applications like Skype of example, that asks you to allow it to automatically adjust the mixer levels. These kind of privileges causes pulseaudio to behave in weird ways. Never allow them unless you really have to. But I guess you know that already.

Anyway give it a try, hope it works for you. It did for me. :)

Best Regards

Mohi