# HOWTO: >=skype-4.3 with alsa and minimal pulseaudio

## mv

Edit: The whole posting is now somewhat obsolete: Just install skype[apulse], and you are done. (Be aware to compile apulse without -fltto.)

If you use >=apulse-0.1.4 you must use the most current >=skype-4.3.0.37-r5 ebuild, because only this provides a wrapper script.

If the default choice of apulse for your output (playback) or input (capture) device is false, put the following data into the ~/.asoundrc (in the home directory of your skype user):

```
pcm.!default {

   type asym

   playback.pcm {

      type plug

      slave.pcm "dmix:CARD=X,RATE=48000"

   }

   capture.pcm {

      type plug

      slave.pcm "hw:Y,0"

   }

}
```

Here, X and Y have to be replaced by the corresponding card number which you see by pressing F6 in "alsamixer". (The above ~/.asoundrc is essentially taken from this helpful thread)

Only if for some reason apulse does not work for you, you have to resort to the following solution.

Here are instruction how to make skype work with alsa, and pulseaudio being used only for skype but not for the rest of your system.

The following instructions are tested on amd64 and on x86 systems.

Of course, the first you have to do is to emerge pulseaudio. This brings already two problems:

 If you use amd64 and not the emul-linux-x86-* pacakges, you should enabe USE=abi_x86_32 for pulseaudio. Otherwise, skype will not recognize that pulseaudio is installed. This is a dependency bug which is already reported. (If you use the emul-linux-x86-* packages, it is perhaps not necessary to emerge pulseaudio - I have not tried this setting). It is absolutely necessary to use the alsa USE-flag in pulseaudio - I was not able to get any sound/micro without that USE-flag.

Unfortunately, currently this brings a PDEPEND to media-plugins/alsa-plugins[pulseaudio] (until the corresponding bug is fixed).

It is not necessary to install media-plugins/alsa-plugins, and if you do, you should remove /usr/share/alsa/alsa.conf.d/51-pulseaudio-probe.conf (since otherwise all programs will use pulseaudio for sound output). With media-sound/pulseaudio-5.0-r2 (it might differ for future versions), I could disable all USE-flags, including the default-enabled ones like X, without losing any functionality concerning skype, with the following exceptions. abi_x86_32: As mentioned above, this is mandatory (unless you use emul-linux-x86-* on an amd64 system)abi_x86_64: This is of course only needed if ARCH=amd64. However, if ARCH=amd64 you have to use this unless you use a customn ebuild; probably only a few files obtained through this USE-flag are actually needed, but I did not research which ones.alsa: As mentioned above, nothing seems to work without this.caps(?): If you have sys-libs/libcap installed anyway, it is probably a good idea to activate this: It seems that pulseaudio is using this only to drop capabilities. If you do not have sys-libs/libcap installed, you can probably omit this, but you will receive some annoing warnings when running skype (the source code shows that these warnings have no other purpose than being annoying).glib(?): I do not suppose that this is really needed, but puslseaudio-5.0-r2 does not compile without this - apparently, this is a bug in the building system, since pulseaudio tries to build the glib-based mainloop anyway (whose compilation fails without this flag).udev: Despite the description claims that this is only needed to autodetect devices (which seems unnecessary if alsa is forced by the description below), I could not get anything to work without this flag. When I write in the above or subsequent text, that something does not work, I did not only test this with the above minimal flag of USE-flags, but as well with all default flags (and some more like dbus and qt4) enabled.

In contrast to the skype documentation, it is not necessary to install media-sound/pavucontrol, but in error case this might show you conveniently whether pulseaudio can be used and which devices are available (this is how I found that without USE=alsa, no device is recognized). Once everything runs, you can uninstall pavucontrol with its severe dependencies again   :Very Happy: 

Once pulseaudio is installed, you need to edit /etc/pulse/default.pa (for some reason, the automatic detection of hardware does not seem to work):

Essentially you have to insert two lines at the end:  */etc/pulse/default.pa wrote:*   

> load-module module-alsa-sink
> 
> load-module module-alsa-source

  Here, ...-sink is for the output device and ...-source is for the input device.

If you have a special configuration like "pcm.camrec" in your ~/.asoundrc which you want to use, you must specify this as an option, for instance in this example   */etc/pulse/default.pa wrote:*   

> load-module module-alsa-sink
> 
> load-module module-alsa-source device=camrec

 

In theory, it should also be possible to use e.g. "device=hw:1,0" but this does not seem to work.

Whenever you make a change to /etc/pulse/default.pa you should erase the local configuration (with the user starting skype) with 

```
rm -rf ~/.config/pulse
```

 and restart skype. It seems not necessary to remove ~/.Skype for this purpose.

Error shooting: If everything works, skype should report under "Options / Sound Devices": "PulseAudio server (local)". If it reports instead "virtual" it means that either pulseaudio is not detected or that it could not be started due to a misconfiguration in /etc/pulse/default.pa (or in ~/.config/pulse); in the latter case, the information in the system logs might give a hint what is wrong.

Edits:

1. Added information about USE-flags, pavucontrol, and error shooting.

2. Added information about apulse

3. Added information about wrapper script with >=apulse-1.4

4. Added information that the latter is not needed with >=skype-4.3.0.37-r4[/bug]

5. Added reference to thread where the ~/.apulserc was recommended; remove wrapper script (since some is contained in the skype ebuild now).Last edited by mv on Mon Dec 29, 2014 10:54 pm; edited 5 times in total

----------

## Ant P.

Here's a patch to the pulseaudio ebuild so that re-merging alsa-plugins with USE=pulseaudio isn't necessary (it turns out it never was; the ebuild authors were just sloppy):

```
--- a/pulseaudio-5.0-r2.ebuild

+++ b/pulseaudio-5.0-r2.ebuild

@@ -88,8 +88,6 @@

    dev-util/intltool

    >=sys-devel/gettext-0.18.1

 "

-# This is a PDEPEND to avoid a circular dep

-PDEPEND="alsa? ( >=media-plugins/alsa-plugins-1.0.27-r1[pulseaudio] )"

 

 # alsa-utils dep is for the alsasound init.d script (see bug #155707)

 # bluez dep is for the bluetooth init.d script
```

----------

## depontius

Thanks for the information.  I hadn't quite gotten around yet to telling my wife that we were going to lose Skype contact with our daughter in Maine.  Really, I was about to give in and install pulseaudio on that one system, just for W.A.F. and Skype.  This makes it much more palatable.

In the long run, I'd still like to find some way to build a pa-lookalike that simply passes things down to alsa and dmix, skipping any fancy pa features.  Maybe if/when work lets up a bit...

----------

## Budoka

I just installed pulseaudio because I needed it for Skype. Pulled in all sorts of crap I didn't want. Samba, MySQL, etc.

I'll give this a shot but I am just curious why would I not want pulseaudio? What's the downside? Isn't it suppose to be better than ALSA?

----------

## mv

 *Budoka wrote:*   

> I just installed pulseaudio because I needed it for Skype. Pulled in all sorts of crap I didn't want. Samba, MySQL, etc.

 

You should disable some useflags like gnome and gdbm (probably globally). This is really all optional.

 *Quote:*   

> but I am just curious why would I not want pulseaudio? What's the downside? Isn't it suppose to be better than ALSA?

 

pulseaudio is a full-blown sound server like esd or phonon. The latter two are practically withdrawn, and there is a reason for it.

Sound servers sit in-between the application and the kernel drivers (by default usually alsa, nowadays), and their main purpose is to eat resources and cause all sort of problems.   :Wink: 

Seriously, if you have a reason to use it (e.g. if you need sound over network, different volume levels for different applications, the ability to switch sound output while programs are running etc) then go ahead and use it. But if you have no such reason, it will just cost resources unnecessarily and cause a lot of headache to get run properly. There are also cases reported where using pulseaudio decreases the audio quality.

----------

## Budoka

 *mv wrote:*   

>  *Budoka wrote:*   I just installed pulseaudio because I needed it for Skype. Pulled in all sorts of crap I didn't want. Samba, MySQL, etc. 
> 
> You should disable some useflags like gnome and gdbm (probably globally). This is really all optional.
> 
>  *Quote:*   but I am just curious why would I not want pulseaudio? What's the downside? Isn't it suppose to be better than ALSA? 
> ...

 

Thanks for the explanation. I'll probably just get rid of it now that you provided a method to get Skype to work with ALSA.

----------

## dmpogo

mv,    what is this option abi_x86_32  ?  I don't see such USE flag, how to enable it ?

----------

## dmpogo

Hm, following this Howto, I am getting in the log

Aug 12 16:43:33 wheeler pulseaudio[28786]: [pulseaudio] module.c: Failed to load

 module "module-alsa-sink" (argument: ""): initialization failed.

----------

## YuriyRusinov

Hello !

I have some questions.

1. Is corrected ebuild on portage tree ?

2. USE="abi_x86_32" emerge -vp pulseaudio shows 

 *Quote:*   

> 
> 
> [ebuild   R    ] media-sound/pulseaudio-5.0-r2  USE="X alsa asyncns caps dbus gdbm glib ipv6 orc qt4 ssl tcpd webrtc-aec -avahi -bluetooth -doc -equalizer -gnome -gtk -jack -libsamplerate -lirc (-neon) (-oss) -realtime (-system-wide) -systemd {-test} -udev -xen" ABI_X86="(64) (-32) (-x32)" 0 kB
> 
> 

 

which way I have to set this flag ?

3. Sound in my skype with these flags is not work, which way I have to search my errors ?

----------

## shazeal

 *YuriyRusinov wrote:*   

> Hello !
> 
> I have some questions.
> 
> 1. Is corrected ebuild on portage tree ?
> ...

 

You need "-abi_x86_32" in /etc/portage/profile/use.mask

----------

## dmpogo

 *YuriyRusinov wrote:*   

> Hello !
> 
> I have some questions.
> 
> 1. Is corrected ebuild on portage tree ?
> ...

 

I found on my installation that I SHOULD NOT include two last lines in /etc/pulse/default   for skype to work.  However, I have emul libraries, so

did not set abi_x86_32 flag either

----------

## YuriyRusinov

And one's more question. Do I have to set abi_x86_32 use flag to emul-libs-* or onto skype and pulseaudio only ?

----------

## mv

 *dmpogo wrote:*   

> Aug 12 16:43:33 wheeler pulseaudio[28786]: [pulseaudio] module.c: Failed to load
> 
>  module "module-alsa-sink" (argument: ""): initialization failed.

 

This seems that for some reason pulseaudio cannot connect to your alsa driver. Maybe your default alsa card has not sound output, maybe there is a problem with the library versions. For instance, if you use pulseaudio from emul-x86-soundllibs, do you also have enabled USE=alsa for that package? Maybe these precompiled libraries are not compatible with your alsa version.

But of course, it might also have completely different reasons. I am not a pulseaudio expert, so I cannot help here. Maybe you can get pulseaudio to dump more information why the initialization failed.Last edited by mv on Wed Aug 13, 2014 11:20 am; edited 1 time in total

----------

## mv

 *YuriyRusinov wrote:*   

> And one's more question. Do I have to set abi_x86_32 use flag to emul-libs-* or onto skype and pulseaudio only ?

 

skype does not have this flag.

Concerning emul-* libs: This is not really related with skype; you should read somewhere else about ABI_X86=32; this is how gentoo is probably supporting 32-bit stuff in some future. Anyway, since the question arose here, I give a brief overview. (All related to this is still considered experimental; this is why the USE-flag is masked and you have to unmask it if you want to be an early tester of this stuff).

I have not tested, but if you set USE=-pulseaudio for emul-linux-x86-soundlibs (and reinstall that package), it will probably remove the pulseaudio binaries so that when you install pulseaudio[abi_x86_32] afterwards you will probably not get a collision.

Alternatively you can set abi_x86_32 on your emul-*. If you do so, this will force you a lot of packages to be installed with abi_x86_32, too. The disadvantage is that this requires testing versions of many of these packages (since earlier versions do not have the abi_x86_32 flag, yet).

The advantage is that the libraries are then taken from your packages (with your useflags) instead of using the precompiled stuff.

Yet a better alternative (this is what I have done): If your emul-* libs are needed only for skype, acroread, and wine, and if you do not have too many USE-flags  in wine (e.g. just USE="X alsa custom-cflags gecko jpeg ncurses opengl png threads" works), you can get rid of the emul-* packages entirely (currently with the exception of emul-linux-x86-qtlibs): Just unmerge and mask all other emul-* packages. You still have to set abi_x86_32 on quite a lot of packages (and use some testing versions of some of these packages), but these are much less than if you want a "full" replacement for emul-*.

(It is just a question of time until you can also get rid of emul-linux-x86-qtlibs in the same way; AFAIK, if you use the qt-overlay you already can).

Or, of course, you wait, until all this abi_x86_32 stuff is considered stable and the above is perhaps happening automatically. However, do not expect this to happen very soon.

----------

## dmpogo

 *mv wrote:*   

>  *dmpogo wrote:*   Aug 12 16:43:33 wheeler pulseaudio[28786]: [pulseaudio] module.c: Failed to load
> 
>  module "module-alsa-sink" (argument: ""): initialization failed. 
> 
> This seems that for some reason pulseaudio cannot connect to your alsa driver. Maybe your default alsa card has not sound output, maybe there is a problem with the library versions. For instance, if you use pulseaudio from emul-x86-soundllibs, do you also have enabled USE=alsa for that package? Maybe these precompiled libraries are not compatible with your alsa version.
> ...

 

Currently I have two setups.  On my laptop I have followed your HOWTO without adding module load at the end of default.pa,   and everything is working fine.

I have not tried adding explicit load module_alsa_sink.

On my desktop, which I tried first, explicit load module_alsa_sink  falis as I described, and pulseaudio is not launched.  If I eliminate explicit sink/source lines, as on 

desktop,  pulseaudio is launched,   Skype shows pulseaudio(local) as the source,  but there is no sound.

----------

## mv

 *dmpogo wrote:*   

> If I eliminate explicit sink/source lines, as on 
> 
> desktop,  pulseaudio is launched,   Skype shows pulseaudio(local) as the source,  but there is no sound.

 

I have made the same experience: pulseaudio should autodetect devices, but it doesn't (even if compiled with more USE-flags). If you install pavucontrol, it will show you probably that you have only virtual devices available for pulseaudio.

You must find out why the module-alsa-sink cannot be initialized...

----------

## apiaio

I followed this tutorial and can hear the sound with skype, but after pulseaudio is started , the front mic is on the zero level.  I can set the mic using alsamixer, but restart pulseaudio causes that the level is on the zero  again.

----------

## YuriyRusinov

Thank you, problem was solved.

----------

## Perfect Gentleman

i think it's better to uncomment those strings and delete "device=xxx" in sink-string.

----------

## v_andal

How about consolekit? If I'm not mistaken, pulseaudio needs consolekit to work properly.

----------

## mv

 *v_andal wrote:*   

> How about consolekit? If I'm not mistaken, pulseaudio needs consolekit to work properly.

 

I don't know. I use slim without any special configuration about consolekit/logind, and most packages are compiled with USE="systemd -consolekit -pam -policykit". If slim does not do anything magically, I doubt that I get a logind token, but I never checked carefully. Of course, I have neither pam nor the policykit madness installed - it might be that you get problems when you use one of these without a logind token.

----------

## v_andal

Could be. I have pam installed, but no consolekit. When I've tried to install pulse it didn't want to start daemon.

On 2 other computers I have xfce and that requires consolekit. So, there I didn't do anything special. Just allowed pulse for skype in package.use and did installation. That pulled in pulseaudio. Started skype and everything worked. No other application beside skype knows about pulseaudio. On my computer at work I've removed skype completely because pulseaudio refused to work there  :Smile: 

----------

## franzf

 *mv wrote:*   

> pulseaudio is a full-blown sound server like esd or phonon.

 

Probably you mix up phonon with aRTS. While aRTS is a soundserver phonon is not. It's just a library that wraps different audio libs/frameworks, like gstreamer and vlc. Its main purpose is to give the developer an API he's used to from Qt (SIGNAL/SLOT, Properties, naming conventions, ...), and to give the user the possibility to use the backend he likes most/works best for his hardware. As a wrapper it requires some slight overhead, but it really should not matter that much.

----------

## mv

 *franzf wrote:*   

> As a wrapper it requires some slight overhead, but it really should not matter that much.

 

It is certainly not as bad as pulseaudio but as unnecessary: eating resources and possibly causing additional trouble by introducing yet another point of failure.

----------

## larophel

Thank you for this guide. 

On my system, it seems Pulseaudio is still messing with non-Skype applications. For example, if I try to listen to a word on dictionary.com, the sound now comes from the device specified by pavucontrol instead of the speakers as before. 

Further, I used to be able to toggle mute of the speakers using "amixer set Master toggle". Now, I have to toggle both "Master" and "Headphone". Also, playing sound via HDMI using "mplayer -ao alsa:device=hw=1.7" does not work well after installing pulseaudio. 

Is there any way I can restrict Pulseaudio to only run for Skype, or at least only for my USB headset?

----------

## mariuz

Anyone tested apulse - PulseAudio emulation for ALSA   :Question: 

https://github.com/i-rinat/apulse

----------

## depontius

 *mariuz wrote:*   

> Anyone tested apulse - PulseAudio emulation for ALSA  
> 
> https://github.com/i-rinat/apulse

 

I've heard that it doesn't work on multilib systems.

----------

## Perfect Gentleman

it works, but may not work with some audiocards like e-mu 0404 usb

----------

## depontius

 *Perfect Gentleman wrote:*   

> it works, but may not work with some audiocards like e-mu 0404 usb

 

As long as it works with hd-audio I'll be happy.  Guess I'll have to test it.

Side question...  Some people seem to consider multilib to be anathema, along with *kit, etc.  I can see the problems with *kit, but I'm not quite sure what the problem is with multilib, or how you run legacy 32-bit software (Notably under WINE) without it.  Or maybe I'm confusing what multilib really is.  I don't have the no-multilib profile, and I generally wind up with a bunch of emul-linux-x86-* packages installed.

----------

## Perfect Gentleman

depontius, as you have skype installed that means you have multilib

----------

## mv

Heads up, the first posting was edited: You do no longer have to mess with pulseaudio at all; just install skype[apulse]

(On amd64 you currently still have to unmask some USE-flags and switch to ABI_X86="32" instead of emul-libs, but these things are discussed in separate threads:

All you need is already in the portage main tree, just partially masked.)

----------

## Perfect Gentleman

mv, apulse doesn't work work with some cards, so, please, don't remove your manual for pulseaudio

----------

## mv

 *Perfect Gentleman wrote:*   

> mv, apulse doesn't work work with some cards, so, please, don't remove your manual for pulseaudio

 

I don't plan to remove it.

It's hard to imagine that apulse does not work with some cards: AFAIK it just "translates" all requests into alsa requests, so if a card is supported by alsa it should immediately be supported by apulse, shouldn't it?  Maybe it is another problem than your card, e.g. the compile flags (which was the problem in my case: Surprisingly, apulse compiles fine with -flto but does not work with skype if compiled in this way)

----------

## Perfect Gentleman

 *mv wrote:*   

> so if a card is supported by alsa it should immediately be supported by apulse, shouldn't it?

 

as developer said "No, it shouldn't"

----------

## mv

 *Perfect Gentleman wrote:*   

> as developer said "No, it shouldn't"

 

Interesting. Can you perhaps provide a link which contains a more detailed explanation? I looked into the closed isues of the apulse project on github, but couldn't find anything related.

----------

## Perfect Gentleman

 *mv wrote:*   

> Can you perhaps provide a link which contains a more detailed explanation?

 

I can, but it's russian.

Shortly, my E-MU 0404 USB doesn't work properly in Skype when apulse is used.

----------

## steveL

I wonder if this patch is relevant; looks like it's meant for distro usage, since they would tend not to use bundled headers.

This one allows you to use envvars to select the playback and/or capture card, rather than using "default" for both, unconditionally.

All in all, looks quite nice; definitely much nicer than pulsefail, afaic.

----------

## Perfect Gentleman

steveL, tried that too, it doesn't help.

----------

## Princess Nell

apulse works well here. While I'm waiting for multilib to become stable and usable, I'm running it in a 32-bit chroot jail.

----------

## sl70

This is not working for me. I can't stand pulseaudio so I was very happy to try apulse. However, I keep getting the same error messages that I don't understand:

```
emerge: there are no ebuilds to satisfy "media-libs/alsa-lib[abi_x86_32(-)]".

(dependency required by "media-sound/apulse-0.1.2-r1[abi_x86_32]" [ebuild])

(dependency required by "net-im/skype-4.3.0.37-r2[apulse]" [ebuild])

(dependency required by "skype" [argument])

```

I have this in package.use:

```
net-im/skype apulse

media-sound/apulse abi_x86_32

media-libs/alsa-lib abi_x86_32

```

but I still get the abi_x86_32 message with alsa-lib. I even tried this:

```
 ABI_X86="32 64" emerge -pv alsa-lib
```

but it says: 

```
[ebuild   R    ] media-libs/alsa-lib-1.0.28  USE="python -alisp -debug -doc" ABI_X86="(64) (-32) (-x32)" PYTHON_TARGETS="python2_7" 0 kB

```

Can't figure out how to build alsa-lib with the 32-bit ABI. Anyone have an idea?

----------

## mv

You have to unmask the USE-flag. Put into  */etc/portage/profile/use.stable.mask wrote:*   

> -abi_x86_32

 

----------

## sl70

 *mv wrote:*   

> You have to unmask the USE-flag. Put into  */etc/portage/profile/use.stable.mask wrote:*   -abi_x86_32 

 

When I do this I get this message:

```
--- EAPI '0' does not support 'use.stable.mask': '/etc/portage/profile/use.stable.mask'
```

I don't get this. The alsa-lib ebuild states EAPI=5. Why does it think it's EAPI=0?

----------

## mv

```
echo 5 >/etc/portage/profile/eapi
```

----------

## sl70

 *mv wrote:*   

> 
> 
> ```
> echo 5 >/etc/portage/profile/eapi
> ```
> ...

 

Awesome! That fixed it.

Thanks very much.

----------

## depontius

 *sl70 wrote:*   

>  *mv wrote:*   
> 
> ```
> echo 5 >/etc/portage/profile/eapi
> ```
> ...

 

I don't have /etc/portage/profile - did you have it previously with a different default, or is "base install" not ready to do this particular trick?

----------

## sl70

 *depontius wrote:*   

>  *sl70 wrote:*    *mv wrote:*   
> 
> ```
> echo 5 >/etc/portage/profile/eapi
> ```
> ...

 

Nah, I just created it by hand.

----------

## sl70

[quote="sl70"][quote="depontius"] *sl70 wrote:*   

>  *mv wrote:*   
> 
> ```
> echo 5 >/etc/portage/profile/eapi
> ```
> ...

 

Oops. Still not perfect. emul-linux-x86-soundlibs conflicts with apulse, but em...soundlibs is required by em...medialibs which is required by em...qtlibs which is required by skype, which is the package I want to run in the first place. 

```
!!! All ebuilds that could satisfy "~app-emulation/emul-linux-x86-soundlibs-20140508" have been masked.

!!! One of the following masked packages is required to complete your request:

- app-emulation/emul-linux-x86-soundlibs-20140508-r1::gentoo (masked by: package.mask, ~amd64 keyword)

/etc/portage/package.mask:

## this conflicts with apulse, which is needed by skype

- app-emulation/emul-linux-x86-soundlibs-20140508::gentoo (masked by: package.mask)

(dependency required by "app-emulation/emul-linux-x86-medialibs-20140508-r6[-abi_x86_32]" [installed])

(dependency required by "app-emulation/emul-linux-x86-qtlibs-20140508-r1" [installed])

(dependency required by "net-im/skype-4.3.0.37-r2" [installed])

```

----------

## depontius

[quote="sl70"][quote="sl70"] *depontius wrote:*   

>  *sl70 wrote:*    *mv wrote:*   
> 
> ```
> echo 5 >/etc/portage/profile/eapi
> ```
> ...

 

My impression is that the emul-linux-x86-* stuff is being replaced by a full multilib, and things get built for both amd64 and x86.  Right now we really only build for amd64, and the x86 is supplied by emul-linux-x86-*.  They've also changed skype to "-r2" which requires the new multilib, not the old emul-linux-x86-* stuff.

----------

## mv

 *sl70 wrote:*   

> (dependency required by "net-im/skype-4.3.0.37-r2" [installed])

 

There was just an -r3 release which again fixed some depedencies.

The ony emul-* which you really need is qtlibs, but you have to mark a lot of packages ABI_X86=32 and probably also have to unmask some packages.

Here is my current files for unmasking (no gurantee for completeness, since I have also unmasked some packages for other reasons):

 */etc/portage/package.accept_keywords/multilib wrote:*   

> ~media-libs/fontconfig-2.10.93
> 
> ~x11-libs/cairo-1.12.16
> 
> ~x11-libs/libSM-1.2.2

 

And here is my file for setting multilib-related USE. Perhaps you do not need all of these if you do not run acroread or wine (or run wine only with fewer USE-Flags than me):

 */etc/portage/package.use/multilib wrote:*   

> app-emulation/emul-linux-x86-* abi_x86_32
> 
> app-emulation/wine abi_x86_32
> 
> # The rest we are forced to take...
> ...

 

----------

## Naib

There might be a neater solution around the corner.

MS are making Skype a webapp to work in chrome,FF ...

----------

## steveL

 *Naib wrote:*   

> MS are making Skype a webapp to work in chrome,FF ...

 

Yay open your browser to the proprietary plugin, as if a separated process which has access to everything you do weren't enough.

----------

## pablo_supertux

I still having troubles with apulse. I tested it today with a debian 6 and it worked like a charm. So when I got home, I tried to install it on my gentoo but it's a mess with all the dependencies and blocks...

I have an amd64 system, so I guess I need to build some libs as 32bit.

I've read some of the problems encountered in the thread and did what it was suggested:

I put -abi_x86_32 in /etc/portage/profile/use.mask, uninstalled pulseaudio and made an emerge @preserved-rebuild to rebuild the libraries. At first it all went wrong, because emul-linux-x86-soundlibs conflicts with apulse. So I uninstalled emul-linux-x86-soundlibs and skype without pulseaudio and apulse were installed. after that a emerge @preserved-rebuild showed me errors again: 

```

emerge @preserved-rebuild -pv 

 Calculating dependencies... done! 

 [ebuild   R    ] media-plugins/alsa-plugins-1.0.28  USE="ffmpeg -debug -jack -libsamplerate -pulseaudio* -speex" ABI_X86="(64) -32 (-x32)" 0 kB 

 [ebuild   R    ] media-video/mplayer2-2.0_p20130428-r1  USE="X alsa cdio directfb dvd dvdnav enca gif iconv ipv6 jpeg lcms libass mmx mng mp3 network opengl png postproc quvi shm sse sse2 threads unicode xscreensaver xv -3dnow -3dnowext (-altivec) (-aqua) -bluray -bs2b -cddb -cpudetection -debug -doc -dvb -ftp -jack -joystick -ladspa -libcaca -lirc -md5sum -mmxext -oss -pnm -portaudio -pulseaudio -pvr -radio -samba (-selinux) -ssse3 -symlink -tga -v4l -vcd -vdpau -xinerama -yuv4mpeg" 1,867 kB 

 [ebuild   R    ] app-emulation/emul-linux-x86-medialibs-20140508-r6  USE="development" ABI_X86="-32" 11,058 kB 

 [ebuild  N     ] app-emulation/emul-linux-x86-soundlibs-20140508  USE="alsa development (-pulseaudio)" ABI_X86="-32" 7,090 kB 

 [ebuild   R    ] app-emulation/emul-linux-x86-sdl-20140508-r1  USE="development" ABI_X86="-32" 0 kB 

 [ebuild     U  ] net-libs/webkit-gtk-2.4.4-r1:3/25 [2.2.6:3/29] USE="X%* egl geoloc gstreamer introspection jit opengl spell webgl (-aqua) -coverage -debug -gles2 -libsecret {-test} -wayland%" 0 kB 

 [ebuild     U  ] net-libs/webkit-gtk-2.4.4-r201:2 [2.4.4-r200:2] USE="X egl geoloc gstreamer introspection jit opengl spell webgl (-aqua) -coverage -debug -gles2 -libsecret {-test}" 0 kB 

 [blocks B      ] app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)] ("app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]" is blocking media-libs/alsa-lib-1.0.28)

```

This is the error I always get, app-emulation/emul-linux-x86-soundlibs gets in the way of media-libs/alsa-lib and I cannot figure out what I've got to do to get everything running without causing major blocks.

So i reverted now to my old setup with pulseaudio (I start it only when I use skype and after that I close pulseaudio again), its not nice but at least it's working again.

----------

## mv

Meanwhile it is possible to unmerge and mask all emul-linux-* packages: The tree contains now qt ebuilds which know abi_x86_32 (you have to put everything from dev-qt which you have into /etc/portage/package.accept_keywords, of course, currently).

Thus, the best way to switch to to abi_x86_32 completely is currently probably:

 emerge --unmerge $(eix -I# emul-linux)

 Switch to the new profile default/linux/amd64/13.0/no-emul-linux-x86

This masks the emul-linux-* packages and unmasks the abi_x86_32 flag

 Add some packages to package.accept_keywords (see below)

 Add abi_x86_32 for a lot of packages to /etc/portage/package.use (see below)

An updated list for the last two points is here:

 */etc/portage/package.accept_keywords/multlilib wrote:*   

> ~dev-qt/qt3support-4.8.6
> 
> ~dev-qt/qtcore-4.8.6
> 
> ~dev-qt/qtdbus-4.8.6
> ...

 

 */etc/portage/package.use/multilib wrote:*   

> # These mv wants as multilib:
> 
> app-emulation/wine abi_x86_32
> 
> # The rest mv is *forced* to take...
> ...

 

The data might vary in your case: It depends on which use-flags (of skype, wine, acroread and others of the above packages) you have activated, and it also depends on which packages you have installed to satisfy some virtual/* packages.

----------

## neumond

Installed skype with apulse via multilib (abi_x86_32). Experienced many bugs: skype hangs when someone calls me, it's only possible to speak if you start the call. The strangest thing was minecraft sigsegv. OpenAL application tries to open device with some bad name causing segmentation fault on standard C function strlen! Decided to install pulseaudio  :Smile: 

----------

## Levns

I just made the whole migration from pulseaudio to apulse (finally !) and.. nope, Skype does not produce any sound.

Basically, I have a peculiar setup: a Loopback interface that all my ALSA applications use (hw:0,0) and I have a JACK server running which links the over side of this loopback interface (hw:0,1) to my actual audio cards (using zita-ajbridge, from the pro-audio overlay), both for input and output. This setup works well for all my ALSA applications.

However, even when running

```
APULSE_CAPTURE_DEVICE="hw:0,0" APULSE_PLAYBACK_DEVICE="hw:0,0" apulse skype
```

Skype does not produce any sound.

Would someone have any insight, or a link to a sample PulseAudio client that I could use to debug my setup ?

----------

## mv

Just for anybody who follows this thread:

With apulse-0.1.4, it is not sufficient just to run "skype": I edited the first post correspondingly.

Also I gave a hint in the first post to some ~/.asoundrc which was recommended to me in another thread and which works fine for me.

@Levns: However, this is only a simple setup; I never tried to combine things with jack.

----------

## Levns

@mv: Well thanks for editing your first post. It had in fact nothing to do with my setup, I was just missing the LD_LIBRARY_PATH thing.

Seems to work now.   :Very Happy: 

----------

## mv

Editing the first post again: Wrapper scripts are no longer needed with >=skype-4.3.0.37-r5.

Note, however, that if you run a pax kernel you should probably wait for the next release of the skype ebuild which hopefully contains a fix for the bug which was introduced by that latest change in the skype ebuild (or you must manually paxmark /opt/bin/skype-bin).

----------

## sl70

This is really driving me crazy. I went through the whole procedure and finally was able to build @world with no emu_x86 packages. But then when I went to build skype and acroread, no luck at all. 

Typical pattern:

needs gtk+:2 with abi_x86_32 -- do it

needs cups with abi_x86_32 -- do it

now it needs gtk+:2 with -abi_x86_32 -- do it

now it needs cups with -abi_x86_32 -- do it

now it needs cups with abi_x86_32 -- I throw my hands in the air

I really need acroread and skype for work. Any help?

----------

## v_andal

I just created 32-bit chroot and install there applications that need emu_x86 packages. Maybe does not look as nice as abi_x86_32, but it works without much hassle.

----------

## mv

 *sl70 wrote:*   

> now it needs gtk+:2 with -abi_x86_32

 

If you are "switching" to no-emul, never marks something as -abi_x86_32: If portage suggests this, it means that some of its dependencies are not abi_x86_32, e.g. because the corresponding version is not stable.

Never emerge something, before emerge -NaDu @world show no errors/warnings.

It can help to choose the no-emul profile.

----------

## sl70

 *mv wrote:*   

>  *sl70 wrote:*   now it needs gtk+:2 with -abi_x86_32 
> 
> If you are "switching" to no-emul, never marks something as -abi_x86_32: If portage suggests this, it means that some of its dependencies are not abi_x86_32, e.g. because the corresponding version is not stable.
> 
> Never emerge something, before emerge -NaDu @world show no errors/warnings.
> ...

 

MV, I appreciate the help. I've get my profile set to no-emul:

```
 eselect profile show

Current /etc/make.profile symlink:

  default/linux/amd64/13.0/no-emul-linux-x86

```

and I've removed all the -abi_x86_32 in package.use and added tons of other packages. Now when I try to emerge @world I get this:

```

emerge: there are no ebuilds built with USE flags to satisfy ">=net-libs/gnutls-2.12.23-r6[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?,abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?]".

!!! One of the following packages is required to complete your request:

- net-print/cups-1.7.5::gentoo (Change USE: -abi_x86_32)

(dependency required by "net-print/cups-1.7.5" [ebuild])

(dependency required by "x11-libs/gtk+-2.24.24[cups]" [ebuild])

(dependency required by "app-dicts/kasumi-2.5-r1" [installed])

(dependency required by "@selected" [set])

(dependency required by "@world" [argument])

```

I'm stuck. cups, gtk+, kasumi and gnutls are all marked as abi_x86_32 in package.use. Don't know how to proceed from here.

----------

## mv

 *sl70 wrote:*   

> emerge: there are no ebuilds built with USE flags to satisfy ">=net-libs/gnutls-2.12.23[...]

 

The error message seems rather clear to me: You need to emerge gnutls with USE=abi_x86_32.

eix shows that the current stable gnutls does not provide this use-flag, so you have to install the testing version.

An alternative (if you want to compile the least number of programs with 32 bit support): compile cups with USE=-gnutls. Of course, this means you have no encryption support in cups.

Another alternative is to compile gtk+2 iwth USE=-cups, so that you do not have to compile cups with USE=abi_x86_32, either. Of course, this means that you have no special printing support in gtk+2.

These are the disadvantages of the multilib approach: You cannot choose the USE-flags for the 32-bit and the 64-bit version separately. If you want some support in the 64 bit version, you must provide this support also in the 32 bit version.

----------

## sl70

Ah, I see! Thanks very much, MV.

----------

## sl70

OK, another problem. Thanks to the kind help of MV, I was able to emerge @world and acroread without emul libs, but now when I try to build skype I'm failing. skype requires qtdbus[abi_x86_32] (among others), which is only available for the testing version, ~qtdbus-4.8.6-r1. However,  the dev-qt packages also require qtchooser, the only version of which, 0_p20140613, requires <dev-qt/qtdbus-4.8.6:4 (and all the other qt* less than 4.8.6). 

Any idea how to resolve these blocks?

----------

## mv

 *sl70 wrote:*   

>  qtchooser [...] requires <dev-qt/qtdbus-4.8.6:4

 

Quite the opposite: There is "!<dev-qt/qtdbus-4.8.6:4" in RDPEPEND, i.e., a blocker to this old version.

----------

## mani001

Although I can install skype with apulse without a glitch, this is not working for me... I'm trying to use a USB Logitech webcam...which is not the problem since I'm able to record audio from Audacity. I also checked the volume and it's fine...Any suggestion?

Cheers

----------

## depontius

I began looking at this whole multilib/no-emul thing today, and find a serious blocker...

It appears to me that in order to get abi_x86_32 you need qtsql-4.8.6-r1.

But qtsql-4.8.6-r1 also requires virtual/mysql-5.6-r2, which in turn needs either dev-db/mydql-5.6+ or dev-db/mariadb-10.0+.  Either of these has a horrible knock-on rippling through the rest of the installation.  For instance, apr-util-1.5.3-r2 requires virtual/mysql-5.5, and there are others.

I guess I give up, for now.  On bugzilla this is listed as "working as intended", but that's quite a big difference between qtsql-4.8.5 and qtsql-4.8.6-r1.

----------

## mv

 *depontius wrote:*   

> But qtsql-4.8.6-r1 also requires virtual/mysql-5.6-r2

 

No. You can USE="sqlite -mysql" with qtsql

----------

## depontius

 *mv wrote:*   

>  *depontius wrote:*   But qtsql-4.8.6-r1 also requires virtual/mysql-5.6-r2 
> 
> No. You can USE="sqlite -mysql" with qtsql

 

Not if I eventually want to run MythTV on that machine.  Right now it's the only machine in the house with no MythTV client.  (>=dev-qt/qtsql-4.7.2:4=[mysql])  I'm also using this machine as an experimental platform, and would eventually like to move my other machines to work this way, and all except one server have MythTV on them.  (One server of course has MythTV, too.)

I've also seen something about running the no-emul-linux-x86 profile, and unmasking emul-linux-x86-qtlibs.  If I read things right, it looks like emul-linux-x86-qtlibs-20140508-r1 can be used in a mix'n'match fashion, perhaps as the only emul-linux-x86 piece left in an otherwise multilib system?  (Looking at the ebuild now...)

----------

## Naib

 *Naib wrote:*   

> There might be a neater solution around the corner.
> 
> MS are making Skype a webapp to work in chrome,FF ...

 

Looks like it is in Skype for Web is in beta https://login.skype.com.

It seems to actively check useragent string but when I switch it it IE8 it logs in. So far it seems focused on making called so no access to VOIP or chat 

But as I stated, no plugin required (uses webRTc)  :Smile:   whether MS makes it useragent Agnostic is another thing. BUT if you still need skype (and unfortunately some do...)

----------

