~/.asoundrc

~/.asoundrc

Ich habe also ein funktionierendes Multilib-Setup gemäßSlackbookAnweisungen. Wine funktioniert bei mir erfolgreich mit 32-Bit-Windows-Programmen (nämlich Skyrim und Deus Ex: Human Revolution). Und Pulseaudio ist bei mir erfolgreich installiert und für native 64-Bit-Programme konfiguriert. Normalerweise beende ich Pulseaudio, pulseaudio --killbevor ich Wine verwende, denn wenn ich etwas ausführe, ohne dies zu tun, erscheint Folgendes im Terminal, von dem aus ich es starte:

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

Diesen folgenden Teil habe ich inzwischen gelöst, indem ich export ARCH=i486nach dem . /etc/profile.d/32dev.sh, wie ich bemerkte, erforderlichen Eintrag auf der Multilib-Seite in Slackbook hinzugefügt habe. Durch den Fix konnte ich zumindest json-c und speex (angegebene Abhängigkeiten für pulseaudio auf slackbuilds.org) als i486-Pakete kompilieren, die ich dann mit convertpkg-compat32 in kompatible 32-Pakete konvertierte und installierte.

Ich habe die empfohlenen

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

vor dem Ausführen sbopkg -b pulseaudio, aber das resultierende Paket ist immer noch ein x86-64- und kein i486-Paket. Und da Slackware Pulseaudio nicht nativ in der Distribution enthält und Alienbob auch keine kompilierte Version dafür in seinem Slackbuilds-Repository hat, konnte ich kein 32-Bit-Binärpaket finden, auf dem es ausgeführt werden kann converpkg-compat32.

Das verbleibende Problem besteht jedoch darin, dass ich Folgendes erhalte, wenn ich versuche, Pulseaudio mit der gleichen Methode zu kompilieren, die ich zum Kompilieren dieser Abhängigkeiten verwendet habe:

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

Das folgende Problem habe ich behoben, indem ich libcap und GConf als compat32-Pakete installiert und anschließend das Skript pulseaudio.Slackbuild erneut ausgeführt habe (wieder in der 32dev-Umgebung wie bei den obigen Paketen).

Fehlt hier eine Bibliothek, die ich noch als Abhängigkeit installieren muss und die auf Slackbuilds.org nicht erwähnt wird? Es wäre sicherlich nicht das erste Mal, dass ich in diese Situation gerate, aber normalerweise sind meine Fehler etwas hilfreicher, wenn es darum geht, die Bibliothek zu finden, die ich brauche.

Nachdem ich pulseaudio installiert hatte, versuchte ich, winecfgden Ton zu testen (Hinweis: Ich habe dies sowohl mit versucht , als auch /usr/bin/pulseaudio --start, und als das nicht funktionierte, habe ich den Server beendet und es mit versucht /usr/bin/32/pulseaudio --start. Beides führte zum selben Ergebnis). Die resultierende Fehlermeldung lautete:

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

Ich habe versucht, /usr/lib64/alsa-lib/libasound_module_pcm_pulse.so zu sichern und an dieser Stelle einen symbolischen Link zu /usr/lib/alsa-lib/libasound_module_pcm_pulse.so zu erstellen sowie die Datei zu kopieren. Beides hatte keinerlei Auswirkungen auf die Fehlermeldung, die ausgegeben wurde. Außerdem habe ich versucht, die Umgebungsvariable auf zu setzen ALSA_MIXER_SIMPLE_MODULES, /usr/lib/alsa-libimmer noch ohne Erfolg. Mir gehen langsam die Ideen aus.

Ich weiß, dass dies bei Slackware ziemliches Neuland ist, da die Mehrheit der Benutzer anscheinend kein Interesse daran hat, es zu verwenden, aber es gibt keinen Grund, warum es nicht funktionieren sollte. Ich bin nur neugierig, ob jemand einen guten Ratschlag hat, wie ich dieses Paket kompilieren kann, damit ich es installieren kann. Wenn jemand direkte Erfahrung mit dieser Situation hat, umso besser.

Antwort1

Es sieht also so aus, als ob eine Quelle für viel Ärger darin bestand, nach jedem Schritt zu testen winecfg(was immer noch denselben Fehler ergibt wie bei meiner letzten Frage zur Bearbeitung). Das Wichtige ist, dass die Verwendung einer Win32-Anwendung in Wine tatsächlich funktioniert hat.

Für jeden, der sich später damit befasst, dürfte die folgende Information relevant sein:

  1. Sie MÜSSEN sicherstellen, dass Sie export ARCH=i486zusätzlich zu verwenden, . /etc/profile.d/32dev.shbevor Sie eines verwenden sbopkg -boder ein .Slackbuild-Skript ausführen. Dies steht tatsächlich in den Anweisungen in Slackbook, aber es schien leicht zu übersehen zu sein (oder zumindest habe ich es persönlich übersehen), also füge ich es hier nur für den Fall ein.
  2. Zusätzlich zu json-cund speexin kompatibler32-Form benötigen Sie auch libcapund GConfin kompatibler32-Form. Dies kann jedoch erreicht werden, indem Sie beide Pakete von einem Slackware-Paket (anstatt Slackware64) beziehen.Spiegelim Paketsatz "L". Sie benötigen außerdem alsa-pluginseinige andere Pakete, diese sollten jedoch alle in den Prozess der Befolgung derMultilibAnweisungen im Slackbook.
  3. Natürlich benötigen Sie eine geeignete ALSA-Konfigurationsdatei, um die Dinge an die richtigen Stellen zu senden. Bei mir ist das kein Problem gewesen, aber ich füge unten meine funktionierende ~/.asoundrc-Datei ein.
  4. Und zuletzt: Überprüfen Sie, ob alles mit einem echten Win32-Programm funktioniert und nicht mit etwas wie Winecfg. Winecfg erzeugt immer noch dieselben Fehler, die ich zuletzt in der Frage gemeldet habe, und kann ohne Probleme mit den Audioeinstellungen auf „Systemstandard“ belassen werden. Da Wine Pulseaudio überhaupt nicht direkt unterstützt, sondern es lediglich über die ALSA-Kompatibilitätsschicht nutzt, sehe ich keinen Grund, warum dieses Verhalten Anlass zur Sorge geben sollte.

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

Wie dem auch sei, ich hoffe, dass dies allen, die nach mir kommen und auf dieses Problem stoßen, als gute Referenz dient. Wenn nicht, bin ich sicher, dass ich darauf zurückgreifen muss, wenn ich ein neues System einrichte.

verwandte Informationen