其他故障排除资源可以在以下位置找到:Linux 游戏玩家 FAQ、J�rgen 的 GLQuake 站点,以及本 HOWTO 的旧版本。
通常,使用替代游戏引擎(如 QuakeSpasm 或 Darkplaces)将解决鼠标和声音相关的问题。
"bash: ./glquake.glx: 权限被拒绝"
"bash: glquake.glx: 命令未找到"
情况不妙,但可以尝试一些简单的选项:
Linux Quake 要求(大多数)文件名均为小写。如果您收到类似于“Error: W_LoadWadFile: couldn't load gfx.wad”的错误,则表示游戏找不到数据文件,可能是因为它们并非全部小写。
缺少库:“error while loading shared libraries: libGL.so.1: cannot open shared object file”
这样的消息表示程序无法运行,因为它找不到所需的系统文件。也许
动态库(或 Windows 用户所知的 DLL)可能非常复杂。有关更多信息,请尝试 ldd 和 ldconfig 手册页。
“Memory overwrite in Sys_Printf”
GCC 4 的问题
大多数 Quake 游戏都依赖 OpenGL (libGL.so) 来实现其图形功能。设置 OpenGL 超出了本文档的范围。非常慢的性能意味着您可能正在使用 Mesa GL 而不是正确的硬件 GL 加速。
还可以通过禁用花哨的效果(如光晕)以及通过使用控制台命令“_snd_mixahead .4”来减慢声音混合来提高性能。
使用 Nvidia 硬件时,轻微的游戏减速也可能归因于使用冲突的 AGP 驱动程序。有关此方面的更多信息,请参阅Nvidia AGP 问题
有关更多信息,请参阅驱动程序部分。
诸如“/dev/dsp: Device or resource busy”之类的错误表示某些程序已在使用您的声卡,您将必须停止该程序才能获得 Quake 音效。
“Quake 引擎游戏退出,并且我看到有关 mmap 的错误!”
声音断断续续或音质不佳。
SDL 提供了一种使用 SDL_AUDIODRIVER 环境变量更改声音驱动程序的简单方法。使用如下命令行运行游戏
SDL_AUDIODRIVER=xxx darkplaces-sdl
Linux 上的有效值包括:dsp(使用 OSS)、alsa(使用 ALSA)、esd(使用 ESD 守护进程),以及可能的 arts(使用 aRTs 守护进程)
GNU/Linux 的动态特性意味着编译旧软件通常很困难,即使是对于没有 C 编程经验的人来说,小障碍也可能是无法逾越的。以下是一些相关问题。
GNU C 编译器最近进行了重大修订,并且大多数现代发行版现在都包含 GCC-4.1。(要查找您正在使用的版本,请键入 gcc --version)。作者通常使用 GCC-3.2.2,并且使用 GCC-4.x 的人们在编译程序时可能会发现更多问题
GCC-4.x 发出的编译警告比 3.x 多得多。这些是通常可以忽略的小错误,但是当编译器被赋予“-Werror”标志时,警告将使一切停止。要解决此问题,您可以安全地从程序的 Makefile 中删除“-Werror”。
又一个声音问题。通过如下更改 snd_mix.c 来解决此常见问题
- snd_scaletable[i][j] = ((signed char)j) * i * 8; + snd_scaletable[i][j] = ((j < 128) ? j : j - 0xff) * i * 8;
GCC-4.0 特别是在“-O”标志破坏某些变量类型转换方面存在问题。如果您能够编译程序,但它发生段错误,请尝试通过从任何 makefile 中删除“-O”选项来禁用这些优化。
如果您在 GCC-4 下编译遇到以前不存在的问题,则可以并行安装 GCC-3.x 和 4.x。大多数人会希望从他们的 Linux 发行版中查找预编译的软件包。
一旦安装了 GCC-3.x,就必须告诉程序使用此版本而不是默认的 4.x 版本进行编译。附带配置脚本的项目通常具有用于定义要使用哪个编译器的选项(键入 ./configure --help 并查找提示),有时您可以使用 export CC=gcc32 或编辑 Makefile 并手动将“gcc”替换为“gcc32”(或“gcc-3.2.2”等)。
这些旧程序中的大多数可能无法作为 64 位二进制文件运行。QuakeSpasm 是一个例外。
但是,仍然可以在 64 位操作系统上编译 32 位二进制文件。为此,请编辑 Makefile 并在加载和编译标志(LDFLAGS、CFLAGS)中添加“-m32”。这告诉 GCC 构建和链接 32 位程序(如果也安装了 32 位 SDL 和 OpenGL 库)。您可能还必须禁用 x86 汇编的使用。
如果您在运行 32 位应用程序时遇到问题,请尝试使用 linux32 命令。例如:linux32 tyr-glquake。
如果更改选项菜单中的亮度设置不起作用,您可以使用 xgamma 程序来调亮整个显示器。
“这个游戏不让我正确环顾四周。%$!$@”
尝试以下操作 -
如果您以普通用户身份运行 Quake 并遇到这些问题,则可能是由于您没有足够的权限写入游戏目录。解决方案包括
Quake 使用令人困惑的方法来保存和恢复游戏选项,尤其是在玩附加组件时,有时即使文件权限不是问题,也必须重新初始化游戏选项。在这种情况下,作者无法提供简单的建议 %-/。
Quake 的某些任务包/Mod 可能会导致现有的玩家/怪物模型被线条覆盖。要解决此问题,请删除目录“quake/id1/glquake”。下次运行游戏时,它将重建此目录,一切都应该正常。
3Dfx 卡的常见问题是屏幕上闪烁的线条。
一些 Quake 引擎使用称为多重纹理的 OpenGL 加速功能。这通常可以正常工作,但是如果您遇到故障,可以使用 -nomtex 选项禁用此功能。
较旧的显卡有时可能会以白色绘制单个模型。有关微调性能的 ingame GL 变量,请参阅 PlanetQuake 命令列表。
一些 Linux 软件以带有“.run”后缀的 Loki Installer shell 存档形式提供。以下提示来自 Icculus Gamers Faq
Q: I'm using {random loki_setup based installer}, and it's telling me the "installation doesn't support glibc-2.1" or something A: Just type the following before running setup.sh [or the installer]: export SETUP_LIBC=glibc-2.1.
Linux 主要有两种声音系统 - 开放声音系统和 ALSA。如果您遇到声音问题,并且故障排除部分没有帮助,您可以考虑更改声音驱动程序。这可能很困难,仅适用于经验丰富的用户。
要确定您当前正在使用的驱动程序,请键入 lsmod 以列出当前加载的内核模块。ALSA 声音模块具有以“snd_”开头的详细名称,而 OSS 模块具有更简洁的名称。例如,ALSA Sound Blaster Live 模块是“snd_emu10k1”,而 OSS 模块是“emu10k1”。自 Linux 内核 2.6 以来,ALSA 一直是标准声音系统,而 2.4 及更早版本更有可能附带 OSS 声音。
有关 ALSA 的信息,请访问 Alsa 首页 和 Linux Journal 的 ALSA 指南。
对于已经使用 ALSA 并希望尝试 OSS 模块的用户,可能需要内核重新编译。