LinuxForum.Fans
Тема

Jardinains 2! нет звука

Автор: redix 16 сообщений 7077 просмотров
#328436

Есть такая игрушка арканоид Jardinains 2! http://jardinains2.com/download/



Свободная версия имеет 50 уровней. Работает без установки, но одна беда нет звука. В вендовой версии они предлагают для скачивания файл oalinst.zip. Я так понимаю, что это openal, но в линукс установка оного эффекта не даёт. Что посоветуете?

#328452

Для начала, напомни, пожалуйста:
- дистрибутив
- используется ли в системе pulseaudio

и неплохо бы запустить игру из терминала и посмотреть вывод, а так же сделать

text
ldd исполняемый_файл_игры

и вывод сюда

"redix" написал:
Я так понимаю, что это openal, но в линукс установка оного эффекта не даёт

Редко требуется только openal.
Обычно требуется наличие libopenal, libvorbis и libvorbisfile, libogg.

#328454
"xxblx⇓" написал:
Для начала, напомни, пожалуйста:
- дистрибутив
- используется ли в системе pulseaudio

Centos 6.4x86_64, pulseaudio используется.

Показать
redix@slash:~/JN2 $ ldd 'Jardinains 2!'
ERROR: ld.so: object '/usr/lib64/libXft-infinality/libXft.so.2' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/lib64/freetype-infinality/libfreetype.so.6.6.1' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/lib64/libXft-infinality/libXft.so.2' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/lib64/freetype-infinality/libfreetype.so.6.6.1' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object '/usr/lib64/cairo-freeworld/libcairo.so.2' from LD_PRELOAD cannot be preloaded: ignored.
linux-gate.so.1 => (0x00ef8000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x006b3000)
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0x002e2000)
libGL.so.1 => /usr/lib/nvidia/libGL.so.1 (0x002e7000)
libGLU.so.1 => /usr/lib/libGLU.so.1 (0x0018e000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x008aa000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00d63000)
libm.so.6 => /lib/libm.so.6 (0x00525000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00c86000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00bdf000)
libc.so.6 => /lib/libc.so.6 (0xf754c000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00944000)
libdl.so.2 => /lib/libdl.so.2 (0x003ed000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00a5d000)
libnvidia-tls.so.319.32 => /usr/lib/nvidia/tls/libnvidia-tls.so.319.32 (0x00210000)
libnvidia-glcore.so.319.32 => /usr/lib/nvidia/libnvidia-glcore.so.319.32 (0xf5581000)
/lib/ld-linux.so.2 (0x00232000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x007ee000)
#328462

redix, недавно сталкивался с похожей проблемой, но на Debian. Может поможет.

#328464

Nigelist. Спасибо! Попробую.

#328535

redix, проверил я игру, "из коробки" звука нет, т.е.

text
$ './Jardinains 2!'

звука не будет.


запустил игру с padsp

text
$ padsp './Jardinains 2!'

звук появился, но игру постоянно сегфолтит.


запустил игру с aoss

text
$ aoss './Jardinains 2!'

звук есть, сегфолтов нет, работает исправно.

#328547

xxblx, установил два пакета alsa-oss и alsa-oss-libs, но звука нет. Подскажи может быть нужен ещё пакет какой то. Помню при сборке Maze of Galious требовался пакет sdl-mixer. Или игрушке требуются пакеты архитектуры i686?

#328635
"redix" написал:
xxblx, установил два пакета alsa-oss и alsa-oss-libs, но звука нет

А запускал как, с aoss ./игра?

"redix" написал:
Или игрушке требуются пакеты архитектуры i686?
text
[xxblx@localhost JN2Lite]$ file Jardinains\ 2\!
Jardinains 2!: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, BuildID[sha1]=874dc1df0589454750ef718a25ef6ca29dcba5a3, stripped

Да, похоже что 32-битные компоненты нужны.

Еще можно вот что попробовать.

text
su
<root-пароль>
modprobe snd-pcm-oss
exit
./Jardinains\ 2\!
#328636

"xxblx⇓" написал:
А запускал как, с aoss ./игра?
Да пробовал запускать так, как и было написано.
./Jardinains\ 2\! эта команда запустила со звуком! Спасибо!
Нет. Всётаки звук запускает это:
text
sudo modprobe snd-pcm-oss

Остаётся вопрос, как эту команду прицепить к ярлыку запуска?

#328638
"redix" написал:
./Jardinains\ 2\! эта команда запустила со звуком! Спасибо!

Эта команда тоже самое, что './Jardinains 2', чтобы не использовать кавычки, можно ставить обратные слеши перед пробелами.

"redix" написал:
Нет. Всётаки звук запускает это:
sudo modprobe snd-pcm-oss

Именно так. Эта команда погружает модуль snd-pcm-oss.

"redix" написал:
Остаётся вопрос, как эту команду прицепить к ярлыку запуска?

Ну, если совсем "в лоб", то

text
#!/bin/sh

sudo modprobe snd-pcm-oss ./Jardinains\ 2\!

Но это, имхо, во-первых, извращение, во-вторых, профита не даст, т.к. скрипт из-за использования sudo один шиш придется запускать через терминал.

Возможные варианты:
1) Заменить в скрипте sudo на gksu/gksudo, kdesu/kdesudo или bessu в зависимости от того что есть в CentOS. Они пароль спрашивать будут во всплывающем окне, т.е. получится двойной клик по скрипту, ввод пароля в окошко, игра.
В таком случае, можно в конце, по завершению игры модуль выгружать.

text
#!/bin/sh

sudo modprobe snd-pcm-oss ./Jardinains\ 2\! sudo modprobe -r snd-pcm-oss

2). Добавить модуль snd-pcm-oss в автозагрузку.
Но куда именно в CentOS пишут список модулей для автозагрузки - не знаю.
В разных дистрибутивах по разному, насколько я помню. Где-то в /etc/modules, а где просто в rc.local пишут modprobe или insmod.

#328640

По модулям рыл уже, а через fakeroot нельзя это сделать?

#328641

redix, в CentOS есть /etc/modules ?
Попробуй может в него добавить модуль.

Что касается fakeroot, я ей никогда не пользовался и вообще смутно представляю как оно работает. Почитал на OpenNET, ради интереса решил проверить.

text
[xxblx@localhost JN2Lite]$ fakeroot modprobe snd-pcm-oss
modprobe: ERROR: could not insert 'snd_pcm_oss': Operation not permitted

Так что, по-видимому, нельзя.

#328642

"xxblx⇓" написал:
в CentOS есть /etc/modules ?
Нет.
#328643

Покажи

text
$ find /etc/sysconfig/modules
#328647
"redix" написал:
fakeroot

Зачем fakeroot, да и для другого оно предназначено. У вас должен быть каталог /etc/modprobe.d, там создайте файл snd-pcm.conf, в него впишите что-то вроде

text
install snd-pcm-oss

Возможно, уже где-то есть такая команда, но она закомментирована. Нужно найти тот конфиг и раскомментировать.

#328664
"xxblx⇓" написал:
Покажи
$ find /etc/sysconfig/modules

snd-pcm-oss.modules там есть, это я его туда поместил, но это не работает.
Решение найдено. Обобщаю:

text
sudo yum -y install alsa-oss alsa-oss-libs
sudo echo 'modprobe snd-pcm-oss' >> /etc/rc.modules
sudo chmod +x /etc/rc.modules

Теперь всё работает, всем спасибо.Решено.

Войдите или зарегистрируйтесь, чтобы ответить.