~/.asoundrc

~/.asoundrc

Entonces, tengo una configuración multilib funcional según ellibro flojoinstrucciones. Tengo Wine trabajando exitosamente con programas de Windows de 32 bits (a saber, Skyrim y Deus Ex: Human Revolution). Y tengo pulseaudio instalado y configurado con éxito para programas nativos de 64 bits. Normalmente, elimino pulseaudio pulseaudio --killantes de usar Wine, ya que cuando ejecuto algo sin hacerlo, aparece esto en la terminal desde donde lo inicio:

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

Desde entonces, la siguiente parte la resolví agregando export ARCH=i486después de que, . /etc/profile.d/32dev.shcomo noté, era necesaria en la página multilib en Slackbook. La solución me permitió al menos obtener json-c y speex (dependencias especificadas para pulseaudio en slackbuilds.org) compilados como paquetes i486 que luego convertí a paquetes compat32 con convertpkg-compat32 e instalé.

he probado el recomendado

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

antes de ejecutarlo sbopkg -b pulseaudio, pero el paquete resultante sigue siendo un paquete x86-64, en lugar de i486. Y dado que Slackware no tiene pulseaudio incluido de forma nativa en la distribución, y Alienbob tampoco tiene una versión compilada en su repositorio de slackbuilds, no he podido encontrar un paquete binario de 32 bits para ejecutarlo converpkg-compat32.

El problema restante, sin embargo, es que cuando voy a compilar pulseaudio usando el mismo método usado para compilar esas dependencias, obtengo esto:

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

El siguiente problema lo solucioné instalando libcap y GConf como paquetes compat32, y luego volví a ejecutar el script pulseaudio.Slackbuild (nuevamente, en el entorno 32dev como con los paquetes anteriores).

¿Se trata de una biblioteca faltante que todavía necesito instalar como dependencia y que no se menciona en Slackbuilds.org? Ciertamente no sería la primera vez que me encuentro con esa situación, pero normalmente mis errores son un poco más útiles cuando se trata de buscar la biblioteca que necesito.

Una vez instalado pulseaudio, fui a ejecutar winecfgpara probar el sonido (Nota: intenté hacer esto con /usr/bin/pulseaudio --start, y cuando no funcionó, cerré el servidor y probé con /usr/bin/32/pulseaudio --start. Ambos produjeron el mismo resultado). El mensaje de error resultante siguió:

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

Intenté hacer una copia de seguridad de /usr/lib64/alsa-lib/libasound_module_pcm_pulse.so y crear un enlace simbólico en esa ubicación a /usr/lib/alsa-lib/libasound_module_pcm_pulse.so, además de copiar el archivo, ninguno de los cuales tenía efecto alguno sobre el mensaje de error que apareció. Además, intenté configurar la variable de entorno ALSA_MIXER_SIMPLE_MODULESen /usr/lib/alsa-lib, pero fue en vano. Empezando a quedarse sin ideas.

Sé que este es un territorio bastante inexplorado con Slackware, ya que la mayoría de los usuarios parecen no tener interés en usarlo, pero no hay ninguna razón por la que no sea viable, solo tengo curiosidad por saber si alguien tiene algún consejo sabio sobre cómo conseguirlo. Este paquete se compiló para poder instalarlo. Si alguien tiene experiencia directa con esta situación, mucho mejor.

Respuesta1

Entonces, parece que una fuente de mucha tristeza fue la prueba después de cada paso winecfg(que todavía produce el mismo error que con mi última pregunta de la edición). Lo importante es que, en el camino, el uso de una aplicación win32 en Wine SÍ comenzó a funcionar.

Supongo que la información relevante para cualquiera que se encuentre con esto en el futuro es:

  1. DEBE asegurarse, export ARCH=i486además de usar, . /etc/profile.d/32dev.shantes de usar sbopkg -bo ejecutar un script .Slackbuild. En realidad, esto se indica en las instrucciones que se encuentran en Slackbook, pero parecía fácil pasarlo por alto (o al menos, yo personalmente lo perdí), así que lo incluyo aquí por si acaso.
  2. Además de necesitar json-cy speexen formato compat32, también necesita libcapy GConfen formato compat32, aunque se puede lograr esto tomando ambos paquetes de Slackware (en lugar de Slackware64).espejoen el conjunto de paquetes "L". También necesitará alsa-pluginsalgunos otros paquetes, pero todos estos deben incluirse en el proceso de seguir lasbiblioteca múltipleinstrucciones en el Slackbook.
  3. Naturalmente, necesitará un archivo de configuración ALSA adecuado para manejar el envío de cosas a los lugares correctos. Este no fue un problema con el que me encontré, pero incluiré mi archivo ~/.asoundrc de trabajo a continuación.
  4. Y, por último, verifique que todo funcione con un programa win32 real, en lugar de algo como winecfg. Winecfg todavía produce los mismos errores que informé por última vez en la pregunta y se puede dejar de manera segura con la configuración de audio configurada en "Predeterminado del sistema" sin causar problemas. Como Wine no admite pulseaudio directamente en absoluto, sino que simplemente lo utiliza a través de la capa de compatibilidad ALSA, no veo ninguna razón para que este comportamiento sea algo por lo que valga la pena preocuparse.

~/.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"
    }
}

De todos modos, espero que esto sirva como una buena referencia para cualquiera que venga detrás de mí y se encuentre con este problema. De lo contrario, estoy seguro de que tendré que consultarlo cada vez que configure un nuevo sistema.

información relacionada