LINUX.ORG.RU

OpenGL vs UT2004


0

0

Пытаюсь тут ut2004 завести.
Распоковал ut2004-lnxpatch3339 в /opt/ut2004, скопировал ресурсы игры из установленной виндовой версии.
Запускаю ./ut2004-bin:

-*-*-*-
./ut2004-bin: error while loading shared libraries: ./libSDL-1.2.so.0: cannot op en shared object file: No such file or directory
bash-2.05b# ./ut2004-bin
Could not load OpenGL library

History:

Exiting due to error
-*-*-*-

Копирую из /usr/lib необходимый файл, снова запускаю - появляется splashimage фирменный, но через 15 секунд игра вылетает не переключившись в графический режим.

-*-*-*-
Could not load OpenGL library

History:

Exiting due to error
-*-*-*-

Пропустил бинарник через strace, вот что надыбал:

-*-*-*-
open("./tls/i686/sse2/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or direct ory)
open("./tls/i686/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("./tls/sse2/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("./tls/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("./i686/sse2/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("./i686/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("./sse2/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("./libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 226
fstat64(226, {st_mode=S_IFREG|0644, st_size=63261, ...}) = 0
old_mmap(NULL, 63261, PROT_READ, MAP_PRIVATE, 226, 0) = 0x451cf000
close(226) = 0
open("/usr/lib/libGL.so.1", O_RDONLY) = 226
read(226, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260K\2"..., 512) = 51 2
fstat64(226, {st_mode=S_IFREG|0755, st_size=485260, ...}) = 0
old_mmap(NULL, 490944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 226, 0) = 0x451df000
old_mmap(0x4523f000, 94208, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXE D|MAP_DENYWRITE, 226, 0x5f000) = 0x4523f000
old_mmap(0x45256000, 3520, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED |MAP_ANONYMOUS, -1, 0) = 0x45256000
close(226) = 0
open("./tls/i686/sse2/libGLcore.so.1", O_RDONLY) = -1 ENOENT (No such file or di rectory)
open("./tls/i686/libGLcore.so.1", O_RDONLY) = -1 ENOENT (No such file or directo ry)
open("./tls/sse2/libGLcore.so.1", O_RDONLY) = -1 ENOENT (No such file or directo ry)
open("./tls/libGLcore.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("./i686/sse2/libGLcore.so.1", O_RDONLY) = -1 ENOENT (No such file or direct ory)
open("./i686/libGLcore.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("./sse2/libGLcore.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("./libGLcore.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/libGLcore.so.1", O_RDONLY) = 226
read(226, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300H\v"..., 512) = 51 2
fstat64(226, {st_mode=S_IFREG|0755, st_size=7626156, ...}) = 0
old_mmap(NULL, 7670696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 226, 0) = 0x45257000
old_mmap(0x45978000, 114688, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DEN YWRITE, 226, 0x720000) = 0x45978000
old_mmap(0x45994000, 80808, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANON YMOUS, -1, 0) = 0x45994000
close(226) = 0
open("./tls/i686/sse2/libnvidia-tls.so.1", O_RDONLY) = -1 ENOENT (No such file o r directory)
open("./tls/i686/libnvidia-tls.so.1", O_RDONLY) = -1 ENOENT (No such file or dir ectory)
open("./tls/sse2/libnvidia-tls.so.1", O_RDONLY) = -1 ENOENT (No such file or dir ectory)
open("./tls/libnvidia-tls.so.1", O_RDONLY) = -1 ENOENT (No such file or director y)
open("./i686/sse2/libnvidia-tls.so.1", O_RDONLY) = -1 ENOENT (No such file or di rectory)
open("./i686/libnvidia-tls.so.1", O_RDONLY) = -1 ENOENT (No such file or directo ry)
open("./sse2/libnvidia-tls.so.1", O_RDONLY) = -1 ENOENT (No such file or directo ry)
open("./libnvidia-tls.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/tls/libnvidia-tls.so.1", O_RDONLY) = 226
-*-*-*-


То есть в конце концов эти файлы обнаруживаются. А вот и участок, на котором плющит:

-*-*-*-
lseek(226, 980, SEEK_SET) = 980
read(226, "\4\0\0\0\20\0\0\0\1\0\0\0GNU\0\0\0\0\0\2\0\0\0\3\0\0\0"..., 32) = 32
fstat64(226, {st_mode=S_IFREG|0755, st_size=2004, ...}) = 0
close(226) = 0
munmap(0x451cf000, 63261) = 0
munmap(0x451df000, 490944) = 0
munmap(0x45257000, 7670696) = 0
write(4, "_\1\2\0\v\0\0\1+@\1\0", 12) = 12
read(4, "\1\0X\0\0\0\0\0\3\0\0\1\0\0\0\0\0\0\0\0\24\0\0\0\350\213"..., 32) = 32
write(5, "+\3\1\0", 4) = 4
read(5, "\1\0\17\0\0\0\0\0\3\0\0\1\0\0\0\0\1\0\0\0\26\0\0\0\10\r"..., 32) = 32
write(4, "\222\2\2\0\17\0\0\1+@\1\0", 12) = 12
read(4, 0xbfff9cd0, 32) = -1 EAGAIN (Resource temporarily unavai lable)
select(5, [4], NULL, NULL, NULL) = 1 (in [4])
read(4, "\1\0Z\0\0\0\0\0\3\0\0\1\0\0\0\0\0\0\0\0\24\0\0\0\350\213"..., 32) = 32
shmdt(0x404d8000) = 0
write(4, "\n\2\2\0\3\0\0\1\4@\2\0\r\0\0\1<\0\2\0\16\0\0\1O\0\2\0"..., 44) = 44
read(4, 0xbfff9cd0, 32) = -1 EAGAIN (Resource temporarily unavai lable)
select(5, [4], NULL, NULL, NULL) = 1 (in [4])
read(4, "\22\0[\0\3\0\0\1\3\0\0\1\0\236\230\10\3\0\0\1\0\0\0\0\310"..., 32) = 32
read(4, "\n\3[\0\3\0\0\1\0\0\0\0\5\0\0\0pjn\10\0\0\0\0\220\33<\10"..., 32) = 32
read(4, "\10\0[\0\233\224X\3\326\0\0\0\r\0\0\1\0\0\0\0\f\2\242\1"..., 32) = 32
read(4, "\1\0`\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\24\0\0\0\350\213"..., 32) = 32
write(5, "<\3\2\0\0\0@\1+\0\1\0", 12) = 12
read(5, 0xbfff9cd0, 32) = -1 EAGAIN (Resource temporarily unavai lable)
select(6, [5], NULL, NULL, NULL) = 1 (in [5])
read(5, "\1\0\21\0\0\0\0\0\r\0`\0\0\0\0\0\0\0\0\0\26\0\0\0\10\r"..., 32) = 32
shutdown(5, 2 /* send and receive */) = 0
close(5) = 0
write(4, "<\2\2\0\0\0\0\1+@\1\0", 12) = 12
read(4, "\25\0`\0\3\0\0\1\3\0\0\1\326\0\0\0\0\1\251\0\0lY\10\310"..., 32) = 32
read(4, "\34\0`\0\3\0\0\1\v\1\0\0\237\224X\3\1lY\10\3\0\0\1\1\0"..., 32) = 32
read(4, "\34\207`\0\3\0\0\1\'\1\0\0\237\224X\3\1\0\0\0\237\224X"..., 32) = 32
read(4, "\34\207`\0\3\0\0\1r\0\0\0\237\224X\3\1\0\0\0\237\224X\3"..., 32) = 32
read(4, 0xbfff9cd0, 32) = -1 EAGAIN (Resource temporarily unavai lable)
select(5, [4], NULL, NULL, NULL) = 1 (in [4])
read(4, "\1\2b\0\0\0\0\0\16\0 \1\0\0\0\0\0\0\0\0\24\0\0\0\350\213"..., 32) = 32
shutdown(4, 2 /* send and receive */) = 0
close(4) = 0
rt_sigaction(SIGSEGV, NULL, {0x4003abd0, [], SA_ONESHOT}, 8) = 0
rt_sigaction(SIGBUS, NULL, {0x4003abd0, [], 0}, 8) = 0
rt_sigaction(SIGFPE, NULL, {0x4003abd0, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, NULL, {0x4003abd0, [], 0}, 8) = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0 x404d8000
write(1, "Could not load OpenGL library\r\n", 31Could not load OpenGL library
) = 31
write(1, "\r\n", 2
) = 2
write(1, "History: \n\nExiting due to error\n", 32History:

Exiting due to error
-*-*-*-

Я ничего такого найти не смог.
В rtcw, enemy-territory и bzflag играю нормально. openal-20040817 установлен.
Еще проблемы с квакой третьей непонятные:

-*-*-*-
PIXELFORMAT: color(24-bits) Z(24-bit) stencil(0-bits)
MODE: 3, 640 x 480 fullscreen hz:N/A
GAMMA: hardware w/ 0 overbright bits
CPU:
rendering primitives: single glDrawElements
texturemode: GL_LINEAR_MIPMAP_NEAREST
picmip: 1
texture bits: 0
multitexture: enabled
compiled vertex arrays: enabled
texenv add: disabled
compressed textures: disabled
Initializing Shaders
^3WARNING: no shader files found
Received signal 11, exiting...
-*-*-*-

Но в нее я и не играю особо. ut2004 уж больно хочется.
Драйвера NVIDIA-Linux-x86-1.0-7174 устанавливал ручками - в портежах их не было тогда (вроде бы).

PS Может дадите комманду, которая выдает список модулей, используемых бинарником - может что накопаю.

burzum
() автор топика
Ответ на: комментарий от grob

Сделал я это - не помогло.
Все тоже самое.

burzum
() автор топика

Проверьте, dri работает? Строчка Load "glx" в xorg.conf есть? Попробуйте запустить ut2004 с ключом --software.

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

С этим разобрался. Теперь все файлы на месте.
При запуске с параметром software игра запускается.
А opengl так и не пашет.

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

На всякий случай проверьте glxinfo | grep direct, то есть работает ли dri. Попробуйте переставить видео драйвера.

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

Хорошо, попробуй тогда перед запуском игры в той же консоли выполнить export LD_PRELOAD=libGL.so.1 . Иногда это помогает.

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