Итак, у меня есть рабочая мультибиблиотечная установка в соответствии с инструкциями slackbook . У меня Wine успешно работает с 32-битными программами Windows (а именно Skyrim и Deus Ex: Human Revolution). И я Pulseaudio успешно установлен и настроен для родных 64-битных программ. Обычно я использую pulseaudio с помощью pulseaudio --kill
перед использованием wine, так как, когда я запускаю что-то без этого, это появляется в терминале, с которого я запускаю его:
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. Исправление позволило мне, по крайней мере, получить json-c и speex (указанные зависимости для pulseaudio на slackbuilds.org), скомпилированные как пакеты i486, которые я затем преобразовал в пакеты compat32 с помощью convertpkg-compat32 и установил.
Я попробовал рекомендуемый
# /etc/profile.d/32dev.sh
до запуска
sbopkg -b pulseaudio
, но в результате пакет остается пакетом x86-64, а не i486. И поскольку Slackware изначально не имеет в своем составе Puludio, и 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? Это, конечно, не первый раз, когда я сталкиваюсь с такой ситуацией, но обычно мои ошибки немного более полезны, когда дело доходит до поиска нужной мне библиотеки.
Получив таким образом pulseaudio, я запустил 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, так как большинство пользователей, похоже, не заинтересованы в его использовании, но нет никаких причин, почему это не будет работать, мне просто любопытно, есть ли у кого-нибудь мудрые советы по получению этот пакет скомпилирован, поэтому я могу его установить. Если у кого-то есть прямой опыт в этой ситуации, тем лучше.