LINUX.ORG.RU
решено ФорумGames

HowTO: Почему не работает OpenAL и как решить эту проблему


0

1

Всем здравствуйте. Для начала: на англоязычной Википедии в статье про OpenAL появилась информация, что библиотека стала проприетарной. Это неправда. Я перевёл два непереведённых отрывка статьи на русский язык, и пока переводил, этот текст появился. Ещё летом. Не верьте. Последняя версия OpenAL - 1.13, от 15 февраля 2011 года. Большая просьба тем, кто умеет ставить просьбу на источник, прилепить её туда. Я знаю только русскоязычный тэг для этого.

Так, далее. Никогда не замечали, что Unreal Tournament 2004 через несколько минут после старта начинает терять звук, и через 10 совсем теряет? А Сталкер начиная со 2 части у вас запускается с Wine 1.1.30 и старше? Замечали неработоспособность звука в большинстве OpenAL-программ? А всё из-за OpenAL. Есть два OpenAL для Linux: один от StrangeSoft, второй от Creative. Отличий между ними два 1). Размер бинарника, у Creative 600-900 килобайтов, у StrangeSoft - 150-300. 2). Естественно тот, который от StrangeSoft, глючит. Если создатели вашего дистрибутива положили вам OpenAL от StrangeSoft, удаляем его.

Скачиваем OpenAL от Creative, распаковываем, заходим в каталог build. Там:

cmake ..
make

Пользователям дистрибутивов с PulseAudio перед этим необходимо сделать:

mv /usr/include/pulse /usr/include/pulse2

А после:

mv /usr/include/pulse2 /usr/include/pulse

Чтобы не было зависимости от PulseAudio.

Получившийся бинарник и символические ссылки на него копируем из каталога build в /usr/lib, например с помощью kdesu(do) konqueror или kdesudo dolphin или gksu(do) nautilus. Затем, в /usr/include удаляем каталог AL и заменяем его openal-soft-1.13/include/AL.

Для пользователей 64-битных дистрибутивов (а то были 32-битные x86) есть ещё одно действие:

make clean
любимый_редактор_текстов CMakeFiles/CMakeCCompiler.cmake

Там в SET(CMAKE_C_COMPILER_ARG1 "") между кавычками вписываем -m32, и сохраняем. Снова make. Скомпилируется 32-битный бинарник, проверить можно командой file. Запихиваем в /usr/lib32.

Все программы, использующие OpenAL, чудесным образом заработают. В Unreal Tournament 2004 надеюсь вы сделали ссылку на библиотеку, а не скопировали в каталог игры, если последнее то нужно поменять. Просьба дистрибутивостроителям, присутствующим на форуме, проверить какой OpenAL у вас в репозитарии и заменить в случае StrangeSoft на полноценный.

Что за пляски с pulseaudio? Неужели нет параметров для make || cmake?

Да и лучше наверное собирать пакет для своего дистрибутива, вместо того чтобы создавать неучтённый файл, который будет убит при следующем обновлении openal.

А ещё у меня openal от StrangeSoft и всё работает

Gary ★★★★★ ()
Ответ на: комментарий от Gary

> А ещё у меня openal от StrangeSoft и всё работает

Установи Wine с патчем для мыши (http://bugs.winehq.org/attachment.cgi?id=33574), установи Сталкер: чистое небо, либо Зов Припяти. Установи noCD. Запусти.

Как видишь, дальше стартового экрана дело не идёт. Решение: загрузить wrap_oal.dll и openal32.dll, положить в каталог с игрой (с заменой файлов), в winecfg выставить openal32 как native. Всё работает.

Либо - установить полноценный работающий OpenAL, потому что сбои наблюдаются не только с Wine.

ZenitharChampion ★★★★★ ()

Есть два OpenAL для Linux: один от StrangeSoft, второй от Creative

Заходим на сайт Creative и OMG! - «Please see http://kcat.strangesoft.net/openal.html for more information». А если скачать оба архива с сорцами(с сайта Creative и StrangeSoft) и проверить diff'ом, то откроется ещё одна новость - различий нет совсем. Так что проблемы со звуком видимо как раз из-за Pulse, который вы решили обойти в отличии от ментейнеров вашего дистрибутива.

// когда я был моложе, я порой тоже разные «открытия» делал, но перепроверял всё и понимал, что был фейл )

Andru ★★★★ ()
Ответ на: комментарий от Andru

Странно. Щас в генте, и когда из портрежа всё собирается - архив занимает 150 килобайтов и ничего не работает. Pulse нет в системе. А когда сам собираю - 900 килобайтов и всё работает. Щас буду смотреть ключи сборки.

ZenitharChampion ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.