그래서 저는 다음과 같이 작동하는 multilib 설정을 가지고 있습니다.슬랙북지침. 저는 32비트 Windows 프로그램(즉, Skyrim 및 Deus Ex: Human Revolution)에서 와인을 성공적으로 사용하고 있습니다. 그리고 기본 64비트 프로그램에 대해 pulseaudio를 성공적으로 설치하고 구성했습니다. 일반적으로 와인을 사용하기 전에 펄스 오디오를 종료합니다 pulseaudio --kill
. 그렇게 하지 않고 무언가를 실행하면 시작하는 터미널에 다음과 같은 팝업이 표시됩니다.
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
다음 부분은 내가 알아낸 export ARCH=i486
대로 . /etc/profile.d/32dev.sh
Slackbook의 multilib 페이지에 필수 항목을 추가하여 해결했습니다. 수정 사항을 통해 최소한 json-c 및 speex(slackbuilds.org의 pulseaudio에 대한 종속성 지정)를 i486 패키지로 컴파일한 다음 Convertpkg-compat32를 사용하여 compat32 패키지로 변환하고 설치할 수 있었습니다.
추천받아 먹어봤는데
# . /etc/profile.d/32dev.sh
실행하기 전에
sbopkg -b pulseaudio
결과 패키지는 여전히 i486이 아닌 x86-64 패키지가 됩니다. 그리고 Slackware에는 기본적으로 배포판에 펄스 오디오가 포함되어 있지 않고 Alienbob의 slackbuilds 저장소에 이에 대한 컴파일된 버전도 없기 때문에 실행할 수 있는 32비트 바이너리 패키지를 찾을 수 없었습니다converpkg-compat32
.
그러나 남은 문제는 해당 종속성을 컴파일하는 데 사용된 것과 동일한 방법을 사용하여 pulseaudio를 컴파일할 때 다음과 같은 결과가 나온다는 것입니다.
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
다음 문제는 libcap 및 GConf를 compat32 패키지로 설치한 후 pulseaudio.Slackbuild 스크립트를 다시 실행하여 해결했습니다(역시 위 패키지와 마찬가지로 32dev 환경에서).
Slackbuilds.org에 언급되지 않았지만 종속성으로 설치해야 하는 라이브러리가 누락되었기 때문에 발생하는 문제입니까? 확실히 제가 그런 상황을 접한 것이 처음은 아니겠지만, 일반적으로 필요한 라이브러리를 찾을 때 제 실수가 좀 더 도움이 됩니다.
펄스 오디오를 설치한 후 사운드를 테스트하기 위해 실행했습니다 winecfg
. (참고: 로 이 작업을 시도했지만 /usr/bin/pulseaudio --start
작동하지 않으면 서버를 종료하고 으로 시도했습니다 /usr/bin/32/pulseaudio --start
. 둘 다 동일한 결과를 얻었습니다.) 결과 오류 메시지는 다음과 같습니다.
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
/usr/lib64/alsa-lib/libasound_module_pcm_pulse.so를 백업하고 해당 위치에 /usr/lib/alsa-lib/libasound_module_pcm_pulse.so에 대한 심볼릭 링크를 만들고 파일을 복사해 보았지만 어느 쪽도 없었습니다. 나온 오류 메시지에 어떤 영향을 미치나요? 또한 환경 변수를 ALSA_MIXER_SIMPLE_MODULES
로 설정해 보았지만 /usr/lib/alsa-lib
여전히 소용이 없습니다. 아이디어가 고갈되기 시작했습니다.
나는 이것이 Slackware의 미지의 영역이라는 것을 알고 있습니다. 대다수의 사용자는 그것을 사용하는 데 관심이 없는 것 같지만 실행 가능하지 않을 이유가 없습니다. 누구든지 슬랙웨어를 얻는 데 현명한 조언이 있는지 궁금합니다. 이 패키지를 컴파일하여 설치할 수 있습니다. 누구든지 이 상황을 직접 경험한 사람이라면 더욱 좋습니다.
답변1
따라서 각 단계 이후의 테스트가 이에 대해 많은 슬픔을 안겨주는 것 같습니다 winecfg
(편집에 대한 마지막 질문에서와 동일한 오류가 여전히 발생합니다). 중요한 것은 실제로 와인 DID에서 win32 애플리케이션을 사용하여 작업을 시작한다는 것입니다.
이 문제를 해결하는 모든 사람에게 내가 생각하는 관련 정보는 다음과 같습니다.
- .Slackbuild 스크립트를 사용하거나 실행하기 전에
export ARCH=i486
반드시 확인해야 합니다 . 실제로 Slackbook에 있는 지침에 명시되어 있지만 놓치기 쉬운 것 같아서(또는 적어도 개인적으로는 놓쳤습니다) 만일을 대비해 여기에 포함시킵니다.. /etc/profile.d/32dev.sh
sbopkg -b
json-c
및speex
compat32 형식이 필요한 것 외에도libcap
및GConf
compat32 형식도 필요합니다. 하지만 이 작업을 수행하려면 Slackware(Slackware64가 아닌)에서 두 패키지를 모두 가져와서 수행할 수 있습니다.거울"L" 패키지 세트에 포함되어 있습니다. 몇 가지 다른 패키지 도 필요alsa-plugins
하지만 다음 과정에 모두 포함되어야 합니다.멀티립Slackbook의 지침.- 당연히 올바른 장소로 항목을 보내는 작업을 처리하려면 적절한 ALSA 구성 파일이 필요합니다. 이것은 내가 겪은 문제가 아니었지만 아래에 작업 중인 ~/.asoundrc 파일을 포함하겠습니다.
- 마지막으로 winecfg와 같은 프로그램이 아닌 실제 win32 프로그램을 사용하여 작업이 작동하는지 확인하세요. Winecfg는 여전히 질문에서 마지막으로 보고한 것과 동일한 오류를 발생시키며 문제를 일으키지 않고 오디오 설정을 "시스템 기본값"으로 안전하게 남겨둘 수 있습니다. 와인은 펄스오디오를 직접적으로 지원하지 않고 단지 ALSA 호환성 레이어를 통해서만 사용하기 때문에 이 동작을 걱정할 이유가 없다고 생각합니다.
~/.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"
}
}
어쨌든, 이 내용이 저를 따라 와서 이 문제에 직면하는 모든 사람들에게 좋은 참고 자료가 되기를 바랍니다. 그렇지 않다면 새로운 시스템을 설정할 때마다 다시 참조해야 할 것입니다.