6. Problemas con las tarjetas aceleradoras.
Hay una página con una faq muy completa sobre las 3dfx en
www.voodooextreme.com/3Fingers.
Tambien hay un programa llamado GlideControl disponible en
http://www.ling.ed.ac.uk/~oliphant/gc muy útil para configurar los
parámetros de las 3dfx.
Los problemas más comunes suelen ser:
- Los usuarios no pueden usar la tarjeta aceleradora: Esto se puede
solucionar instalando el Device3Dfx, que es un paquete que nos crea un
dispositivo
/dev/3dfxy mediante la inserción de un módulo en el kernel (3dfx) permite que los usuarios puedan acceder a la tarjeta aceleradora. Asegurese si lo instala de que los permisos de/dev/3dfxestán correctamente puestos ( ejecutechmod 666 /dev/3dfx). Este paquete se puede encontrar en http://glide.xxedgexx.com/3DfxRPMS. - Cuando ejecuto el glquake me da un core dump:. El quake2 y el
glqwcl están disponibles para glibc, sin embargo el glquake no, esto crea
bastantes problemas a la hora de hacerlo funcionar. Si tiene una voodoo2 en
principio no debería tener problemas porque el propio paquete del Glide_V2
trae además de las versiones de las librerías para glibc las de libc5 (que se
instalan en
/usr/i486-linux-libc5/lib), sin embargo el paquete de la voodoo 1 no las trae, con lo que puede que tenga que bajarse la versión para libc5, extraer las librerías (si está en rpm con elmces muy sencillo hacerlo, sino tendrá que usar elrpm2cpioo elrpmgetya que si lo instala directamente con elrpmsobrescribirá las de la versión para glibc) e instalarlas (en/usr/i486-linux-libc5/lib). Además asegurese de que en el fichero/etc/ld.so.confaparece el directorio/usr/i486-linux-libc5/liby de que tiene instalado el paquete de compatibilidad con la libc5 (libc-5.3.X-Y en redhat).
Otra posible causa de error es que falte alguna librería en la ruta de búsqueda del ejecutable, esto se puede comprobar mediante el comandoasegurese si se baja este paquete de que lo está cogiendo de una versión de RedHat 5.X o del directorio /libc6 en caso de que lo esté cogiendo del contrib de RedHat, sino le sobreescribirá las antiguas librerías y no funcionará el sistema!
ldd fichero. Si por ejemplo al hacerldd glquakele sale alguna librería seguida de la linea Not Found ahí estará el problema, asegurese de que tiene esa librería instalada y que el directorio en el que está dicha librería aparece en el fichero/etc/ld.so.conf, si no lo está añada el directorio y ejecute luego como rootldconfig. - Cuando ejecuto el glquake me da el error
glquake: can't resolve symbol '__register_frame_info'. El glquake necesita lasMesaGL-2.6, si no las tenía (vienen con el ejecutable del quake2) consulte la dirección de las librerias en Software, instalelas y ejecute ldconfig. - El glquake/glqwcl/quake2 se ve muy oscuro. Ajuste el contraste de la
tarjeta, esto se hace mediante la variable de entorno
SST_GAMMAen una voodoo 1 ySSTV2_GAMMAen las voodoo 2, por ejemplo poniendo :
Otra opción es bajarse el programa[unscared][~]$ export SSTV2_GAMMA=1.70
GlideControlmencionado anteriormente con el que puede cambiar la gamma de la tarjeta además de otros parámetros. - Al jugar en linux obtengo menos fps que en windows: Bueno, las Mesa no
están todavía lo suficientemente optimizadas, y en procesadores lentos no
dan un buen rendimiento. Una opción es probar el port de opengl que han
incluido los autores del quake como opción a las librerías Mesa (se llama
lib3dfxgl.so). Para usarlo creese un fichero llamado glquake.3dfxgl y meta en él lo siguiente:
Para el quake world puede usar el#!/bin/sh LD_PRELOAD=./lib3dfxgl.so ./glquake $*
glqwcl.3dfxglque viene con elglqwcly en el quake2 puede especificar el miniport en las opciones de video. Otra opción es asegurarse de que lalibMesaGL.so.2es un enlace a lalibMesaGL.so.3. La versión 3 está bastante más optimizada que la 2.6 y el rendimiento aumenta bastante, el problema es que el glquake necesita la versión 2.6. Una solución chapucera es hacer lo siguiente; lo primero vemos donde están las librerías y los ejecutables:
ahora hacemos un script que borre el enlace de la libMesaGl.so.2,que añada en el[root@unsCAred][/usr/local/games/quake2]# ls -la libMesaGL.so* lrwxrwxrwx 1 root root 14 ene 18 19:30 libMesaGL.so -> libMesaGL.so.2 lrwxrwxrwx 1 root root 16 ene 18 19:30 libMesaGL.so.2 -> libMesaGL.so.2.6 -rwxr-xr-x 1 root root 897135 dic 26 14:43 libMesaGL.so.2.6 [root@unsCAred][~]# ls -la /usr/lib/libMesaGL.so.2 lrwxrwxrwx 1 root root 12 ene 13 20:01 /usr/lib/libMesaGL.so.2 -> libMesaGL.so [root@unsCAred][~]# ls /usr/local/games/quake/glquake* /usr/local/games/quake/glquake /usr/local/games/quake/glquake.mesa /usr/local/games/quake/glquake.3dfxgl
pathde búsqueda el directorio /usr/local/games/quake2, que ejecute el glquake y que deje todo como estaba. Para usar las MesaGL:
Para el miniport de 3dfx:[root@unsCAred][~]# cat /usr/local/games/quake/glquake.mesa #!/bin/sh # Movemos la libreria para que no la carge: mv /usr/lib/libMesaGL.so.2 /usr/lib/libMesaGL.so.2.tmp # Añadimos el directorio del quake2 a la ruta de búsqueda LD_LIBRARY_PATH_OLD = $LD_LIBRARY_PATH LD_LIBRARY_PATH=/usr/local/games/quake2 # Ejecutamos el glquake ./glquake $* # Dejamos todo como estaba. mv /usr/lib/libMesaGL.so.2.tmp /usr/lib/libMesaGL.so.2 LD_LIBRARY_PATH= $LS_LIBRARY_PATH_OLD
El problema de hacer esto es que el script se tiene que ejecutar como root. Una opción para hacer lo mismo pero sin necesidad de ser root es eliminar la[root@unsCAred][~]# cat /usr/local/games/quake/glquake.3dfxgl #!/bin/sh # This script preloads the lib3dfxgl.so library which overrides the functions # present in libMesaGL.so. This allows glquake to run using 3DFX's miniport # and without Mesa 3-D. Glide and X11 libraries have to be installed tho, # even tho GLQuake doesn't use X11, it's linked against it because Mesa 3-D # requires them. mv /usr/lib/libMesaGL.so.2 /usr/lib/libMesaGL.so.2.tmp LD_LIBRARY_PATH_OLD= $LS_LIBRARY_PATH LD_LIBRARY_PATH=/usr/local/games/quake2 LD_PRELOAD=./lib3dfxgl.so ./glquake $* mv /usr/lib/libMesaGL.so.2.tmp /usr/lib/libMesaGL.so.2 LD_LIBRARY_PATH= $LS_LIBRARY_PATH_OLD
libMesaGL.so.2de la ruta de búsqueda del ldconfig y ponerla en otro directorio (por ejemplo en/usr/local/lib/MesaGL). Para que nos funcionen los programas que necesitan las Mesa lo único que tenemos que hacer es añadir la lineaexport LD_LIBRARY_PATH=/usr/local/lib/MesaGLen el fichero~/.bashrcsi usamos el bash como shell o la lineasetenv LD_LIBRARY_PATH /usr/local/lib/MesaGLen el .cshrc/.tcsh si usamos csh/tcsh. Haciendo esto tendríamos lo siguiente:
Ahora ya podemos eliminar las lineas que llevan un mv de los scripts[root@unsCAred][~]# cd /usr/local/lib/MesaGL/ [root@unsCAred][/usr/local/lib/MesaGL]# ls -la libMesaGL.so.2 lrwxrwxrwx 1 root root 23 ene 22 21:19 libMesaGL.so.2 -> /usr/lib/libMesaGL.so.3
glquake.mesayglquake.3dfxcon lo que ya no es necesario ser root para que funcione. - No me funciona el ratón: Las
3dfxy elgpmno se llevan bien , en el README viene bastante claro que para que funcione el ratón con las tarjetas aceleradoras hay que matár el gpm antes. Para hacerlo solo que ejecutar unkillall gpmcomo root (o ungpm -k>. Tambien se puede hacer mediante la orden/etc/rc.d/init.d/gpm stopy reiniciarlo con/etc/rc.d/inid.d/gpm start(esto para redhat, en otras distribuciones puede variar ligeramente el directoriostat.d); Este sistema es el más recomendable.
Anterior Siguiente Índice