2

So, I have a working multilib setup as per the slackbook instructions. I have wine successfully working with 32 bit Windows programs (namely Skyrim and Deus Ex: Human Revolution). And I have pulseaudio successfully installed and configured for native 64 bit programs. Normally, I kill pulseaudio with pulseaudio --kill prior to using wine, as when I run something without doing so, this pops up in the terminal I start it from:

fixme:win:EnumDisplayDevicesW ((null),0,0x33f7d8,0x00000000), stub!
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

This following part I've since solved by adding export ARCH=i486 after the . /etc/profile.d/32dev.sh as I noticed was required on the multilib page in Slackbook. The fix allowed me to at least get json-c and speex (specified dependencies for pulseaudio on slackbuilds.org) compiled as i486 packages which I then converted to compat32 packages with convertpkg-compat32 and installed.

I've tried the recommended

# . /etc/profile.d/32dev.sh

prior to running sbopkg -b pulseaudio, but the resulting package ends up still being an x86-64, rather than i486, package. And since Slackware doesn't natively have pulseaudio included in the distribution, and nor does Alienbob have a compiled version up for it on his slackbuilds repository, I haven't been able to come across a 32 bit binary package to run converpkg-compat32 on.

The remaining problem, however, is that when I go to compile pulseaudio using the same method used to compile those dependencies, I get this:

daemon/pulseaudio-caps.o: In function `pa_drop_caps':
/tmp/SBo/pulseaudio-5.0/src/daemon/caps.c:85: undefined reference to `cap_init'
/tmp/SBo/pulseaudio-5.0/src/daemon/caps.c:86: undefined reference to `cap_clear'
/tmp/SBo/pulseaudio-5.0/src/daemon/caps.c:87: undefined reference to `cap_set_proc'
/tmp/SBo/pulseaudio-5.0/src/daemon/caps.c:88: undefined reference to `cap_free'
collect2: error: ld returned 1 exit status
make[3]: *** [pulseaudio] Error 1

This following issue I fixed by installing libcap and GConf as compat32 packages, followed by re-running the pulseaudio.Slackbuild script (again, in the 32dev environment as with the above packages).

Is this a matter of a missing library I still need to install as a dependency, not mentioned on Slackbuilds.org? It certainly wouldn't be the first time I've encountered that situation, but usually my errors are a little more helpful when it comes to hunting down the library I need.

Having gotten pulseaudio thus installed, I went to run winecfg to test sound (Note: I tried doing this both with /usr/bin/pulseaudio --start, and when that didn't work, killed the server and tried with /usr/bin/32/pulseaudio --start. Both yielded the same result). The resulting error message followed:

ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib64/alsa-lib/libasound_module_pcm_pulse.so
ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib64/alsa-lib/libasound_module_pcm_pulse.so
libgcc_s.so.1 must be installed for pthread_cancel to work

I tried backing up the /usr/lib64/alsa-lib/libasound_module_pcm_pulse.so and making a symlink at that location to /usr/lib/alsa-lib/libasound_module_pcm_pulse.so, as well as copying the file, neither of which had any effect whatsoever on the error message that came out. Also, I tried setting the environment variable ALSA_MIXER_SIMPLE_MODULES to /usr/lib/alsa-lib, still to no avail. Starting to run out of ideas.

I know this is pretty uncharted territory with Slackware, as the majority of users seem to have no interest in using it, but there being no reason why it wouldn't be workable, I'm just curious if anyone has any sage advice on getting this package compiled so I can get it installed. If anyone has direct experience with this situation, so much the better.

  • I should point out for completeness that I'm using Slackware 14.1 and Pulseaudio 5.0 and wine version 1.7.14 – 0xDAFACADE Aug 16 '14 at 19:55
0

So, it looks like a source of a lot of grief on this was testing after each step with winecfg (which still yields the same error it did with my last question of the edit). The important thing is, along the way, actually using a win32 application in wine DID start working.

The relevant information I suppose for anyone coming along to this down the line is:

  1. You MUST make sure to export ARCH=i486 in addition to using the . /etc/profile.d/32dev.sh before using either sbopkg -b or running a .Slackbuild script. This is actually stated in the instructions found in Slackbook, but it seemed easy to miss (or at least, I personally missed it) so I'm including it here just in case.
  2. In addition to needing json-c and speex in compat32 form, you also need libcap and GConf in compat32 form, though accomplishing this can be done by grabbing both packages from a Slackware (rather than Slackware64) mirror in the "L" package set. You'll also need alsa-plugins among a few other packages, but these should all be included in the process of following the multilib instructions in the Slackbook.
  3. Naturally, you'll need a suitable ALSA configuration file to handle sending things to the right places. This wasn't a problem I ran into, but I'll include my working ~/.asoundrc file below.
  4. And lastly, check that things are working with an actual win32 program, rather than something like winecfg. Winecfg still yields the same errors I last reported in the question, and can be safely left with audio settings set to "System Default" without causing issues. As wine doesn't support pulseaudio directly at all, but merely makes use of it through the ALSA compatibility layer, I see no reason for this behavior to be anything worth being concerned over.

~/.asoundrc

pcm.!default {
    type pulse
}
ctl.!default {
    type pulse
}

pcm.phononpulse
{
   type plug

   slave.pcm
   {
      type pulse
   }

   hint
   {
      show on
      description "PulseAudio"
   }
}

pcm.pulse {
    type pulse
    hint {
        show on
        description "PulseAudio"
    }
}

Anyway, I hope this serves as a good reference to any who come after me and run into this problem. If not, I'm sure I'll need to reference back to it whenever I set up a new system.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.