** Note to Matrox video card owners ** If you have matroxfb compiled into the kernel, chances are that your MTRR's are already set up. You can probably just skip this section.
在某些情况下,设置 MTRR 可以显著提高视频性能,因此建议您进行此操作。首先,您需要通过输入以下命令来确保您的内核支持 MTRR:
# ls /proc/mtrr
如果提示您不存在 /proc/mtrr,则需要重新编译内核并启用 MTRR 支持(该选项位于 menuconfig 的 “处理器类型和特性” 下)。
一旦您确认 MTRR 工作正常,您需要知道显卡的基本内存地址以及显存大小。最简单的方法是查看 X 启动时的输出。由于输出通常会滚出屏幕,并在切换到不同的 tty 时丢失,因此您需要将 X 的输出重定向到一个文件 (xoutput),以便您可以返回查看并获取所需的值。这可以通过输入以下命令来完成:
# startx 2> xoutput
包含所需信息的行可能位于 xoutput 文件的中间位置附近,并且看起来应该类似于:
(--) SVGA: PCI: NVidia Riva TNT2 rev 17, Memory @ 0xee000000, 0xe2000000
找到该行后,记下最后一个内存地址,在本例中为 0xe2000000。根据您的硬件,您可能会看到或看不到多个内存地址,所以如果您的输出看起来略有不同,请不要担心。记录下这些信息后,您可以删除 xoutput 文件。
接下来,您需要创建一个新的 MTRR。为此,您需要知道显卡的显存在十六进制中的大小。以下是一些常见值:
4MB -- 0x400000 8MB -- 0x800000 16MB -- 0x1000000 32MB -- 0x2000000
要添加 MTRR,请输入
# echo "base=0xe2000000 size=0x2000000 type=write-combining" >| /proc/mtrr
将 “0xe2000000” 和 “0x2000000” 替换为您系统特定的基地址和显存大小。
现在您应该已经设置好 MTRR,为了确保一切正常,请输入
# cat /proc/mtrr
您应该会得到与以下内容大致相似的输出:
reg00: base=0x00000000 ( 0MB), size= 128MB: write-back, count=1 reg01: base=0xe2000000 (3616MB), size= 32MB: write-combining, count=1
同样,条目数量可能与这些示例不同,不必担心。