5. 故障排除

5.1. xvinfo 返回 "no adaptors present"(未找到适配器)
5.2. xvinfo 工作正常但 overlay 输出混乱
5.3. DMA 无法工作
5.4. 视频播放卡顿
5.5. 声音播放卡顿
5.6. 非区域光盘播放混乱
5.7. 非区域光盘播放时卡住

5.1. xvinfo 返回 "no adaptors present"(未找到适配器)

请确保您正在运行 XFree86 4.1 或更高版本。您可以通过在命令提示符下输入 X -version 来查看您的 XFree86 版本。

为您的显卡使用合适的驱动程序。一些 Linux 发行版默认使用通用的 XFree86 VESA 驱动程序,而不是您显卡的专用驱动程序。您需要使用特定于您硬件的显卡驱动程序才能获得硬件 overlay 支持。

5.2. xvinfo 工作正常但 overlay 输出混乱

overlay 输出混乱或丢失的问题通常意味着您的显存不足以同时容纳常规桌面显示和视频 overlay 显示。通常,在给定的视频分辨率下,您需要两倍于正常情况的显存才能使用硬件视频 overlay。在某些情况下,由于显卡内部缓冲,您甚至可能需要 3 到 5 倍的 RAM。

降低显存要求的唯一简单方法是在播放视频时切换到较低的视频分辨率。

5.3. DMA 无法工作

如果您在 DVD 驱动器上使用命令 hdparm -d1 后返回如下消息,则可以判断 DMA 是否已损坏
# hdparm -d1 /dev/hda
 
/dev/hda:
 setting using_dma to 1 (on)
 HDIO_SET_DMA failed: Operation not permitted
 using_dma    =  0 (off)

解决此问题的唯一方法是编译一个内核,其中包含对您特定芯片组的 DMA 支持。如何编译内核超出了本 HOWTO 的范围,但与 DMA 支持特别相关的步骤如下:

  1. 下载一个较新的内核,以便您有最大的可能在您的芯片组上获得 DMA 支持。

  2. 解压您的内核,并在内核构建目录中键入 make xconfig。在 "ATA/IDE/MFM/RLL support"(ATA/IDE/MFM/RLL 支持) 下,选择 "IDE, ATA, and ATAPI Block devices"(IDE、ATA 和 ATAPI 块设备) 并启用 "Generic PCI bus-master DMA support"(通用 PCI 总线主控 DMA 支持)"Use DMA by default when available"(在可用时默认使用 DMA)

  3. 在同一页面上,有几十个特定于芯片组的 DMA 驱动程序,这些驱动程序在向下延伸的几个屏幕中。找到并选择一个与您的芯片组相关的驱动程序(如果有)。例如,如果您使用的是基于 AMD Athlon 的 VIA 芯片组,请启用 "VIA82CXXX chipset support"(VIA82CXXX 芯片组支持) 项。

有关编译内核的更多信息,请参阅 Kernel HOWTO 以及 Linux Ultra-DMA Mini-Howto

5.4. 视频播放卡顿

在足够快的计算机上(例如,超过 1 GHz),视频播放卡顿通常意味着您的 overlay 支持或 DMA 支持配置错误。请参阅之前的故障排除项。

在非常慢的计算机上(例如,0-500 MHz),除了硬件升级之外,您无法做任何事情来使 DVD 播放良好运行。

对于性能介于两者之间的计算机(任何介于两者之间的计算机),通过从 kernel 2.2 升级到 kernel 2.4 并使用像 MPlayer 这样的 SSE 优化播放器程序,您可以获得适度的(约 10%)性能提升。

最后,如果所有其他方法都失败了,请使用 mplayer -framedrop 选项运行 MPlayer,以弥补视频播放中偶尔出现的故障。

5.5. 声音播放卡顿

声音播放问题最常见的原因是声卡不支持 48 kHz 音频播放。对于属于此类的人,我强烈建议您购买新的声卡。即使是一块廉价的 PCI 声卡,也可以为您带来音质的显著提升,而成本甚至低于两张 DVD。

如果这不起作用,您可以通过不使用声音守护程序(如 ESounD 或 aRts)并将 DVD 音频直接播放到 OSS 驱动程序来减轻声音播放系统的负担。要使用 MPlayer 执行此操作,请运行 mplayer -ao=oss 以及您通常使用的任何其他选项。

5.6. 非区域光盘播放混乱

过去,此处讨论的大多数程序的旧版本在解密非区域光盘时都遇到问题。解密失败的结果看起来就像您看到的彩色视频噪点。

升级到任何程序的最新可用版本应该可以解决此问题。

5.7. 非区域光盘播放时卡住

当程序卡住时,观察 DVD 驱动器的访问指示灯。指示灯是否仍在以访问模式闪烁?如果是(通常是这样),这意味着程序仍在解密光盘。

解密 DVD 涉及到进行相当大规模的计算工作以恢复密钥。计算机花费五甚至十分钟来解密单个 DVD 密钥并非不寻常。

区域内光盘永远不会有这个问题,因为 DVD 驱动器固件会自动解密与驱动器自身区域匹配的光盘。