2

Итак, у меня есть рабочая мультибиблиотечная установка в соответствии с инструкциями 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, так как большинство пользователей, похоже, не заинтересованы в его использовании, но нет никаких причин, почему это не будет работать, мне просто любопытно, есть ли у кого-нибудь мудрые советы по получению этот пакет скомпилирован, поэтому я могу его установить. Если у кого-то есть прямой опыт в этой ситуации, тем лучше.

1 ответ1

0

Таким образом, похоже, что источником большого горя по этому поводу было тестирование после каждого шага с winecfg (который по-прежнему выдает ту же ошибку, что и в моем последнем вопросе о редактировании). Важно то, что на самом деле с помощью приложения win32 в Wine начала работать DID.

Соответствующая информация, которую я предполагаю для любого, кто придет к этому в будущем:

  1. Вы ДОЛЖНЫ убедиться, что export ARCH=i486 в дополнение к использованию . /etc/profile.d/32dev.sh перед использованием sbopkg -b или запуском.Скрипт Slackbuild. Это на самом деле указано в инструкциях, найденных в Slackbook, но, кажется, это было легко пропустить (или, по крайней мере, я лично пропустил это), поэтому я включаю это здесь на всякий случай.
  2. В дополнении к необходимости json-c и speex в compat32 формы, также необходим libcap и GConf в compat32 формы, хотя достичь этого может быть сделано путем захвата обоих пакетов из Slackware (а не Slackware64) зеркала в "L" пакет наборе. Вам также понадобятся alsa-plugins среди нескольких других пакетов, но все они должны быть включены в процесс следования инструкциям multilib в Slackbook.
  3. Естественно, вам понадобится подходящий файл конфигурации ALSA для отправки сообщений в нужные места. Это не было проблемой, с которой я столкнулся, но я включу мой рабочий файл ~ /.asoundrc ниже.
  4. И наконец, проверьте, что все работает с реальной программой win32, а не чем-то вроде winecfg. Winecfg по-прежнему выдает те же ошибки, о которых я в последний раз сообщал в этом вопросе, и его можно безопасно оставить с настройками звука, установленными в "System Default", не вызывая проблем. Так как wine вообще не поддерживает pulseaudio напрямую, а просто использует его через уровень совместимости 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"
    }
}

В любом случае, я надеюсь, что это послужит хорошим ориентиром для любого, кто придет за мной и столкнется с этой проблемой. Если нет, я уверен, что мне нужно будет ссылаться на него всякий раз, когда я настраиваю новую систему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .