魔兽争霸Linux环境Thinkpad X61 4G内存Mtrr表错误

有空在Ubuntu
8.04下玩War3,没悟出在Ubuntu下嬉戏与xp上效益等同!收获多!下面是部分必要步骤!

在/var/log/Xorg.0.log中为盼有雷同的许样.

魔兽争霸 1

翻转/proc/mtrr

4:慢慢体验War3吧!

echo “disable=2” > $MTRR
echo “base=0x00000000 size=0x80000000 type=write-back” > $MTRR
echo “base=0x80000000 size=0x40000000 type=write-back” > $MTRR

Ubuntu源里有wine的,apt-get下就算实行了。

改后底脚本rc.mtrr(放在/etc/rc.d目录下, 在rc.local里面实践)如下:

2:打开War3的装目录,把中的Movies的公文夹重命为_Movies。

中最后诠释的相同尽就是显卡需要之同截地址, 因为X启动的时候会自行注册,
所以只要留出马上段就是实行了, 这行代码可以注释掉.

牢记要把Movies文件夹又命名吧_Movies,不然会黑屏的!

Thinkpad X61 加至4G内存之后, Linux下面发现显卡速度较慢, 性能明显下降.
最显著的是为此wine运行星际争霸或者魔兽争霸的时刻, 鼠标反应非常慢.

自然玩War3也是得虚拟xp的!本人用之是Wine!

#!/bin/bash

命令:sudo apt-get install wine

从而dmesg命令可以看到

3:打开终端,输入:wine 游戏安装路径/启动程序 -opengl。

echo “disable=0” > $MTRR
echo “disable=4” > $MTRR
echo “base=0xc0000000 size=0x20000000 type=uncachable” > $MTRR
#echo “base=0xe0000000 size=0x10000000 type=write-combining” >
$MTRR
echo “base=0xf0000000 size=0x10000000 type=uncachable” > $MTRR

一旦开行程序名字中闹空格用伪造号括住(见上例),没空格的语句虽直写及便OK了!

魔兽争霸 2

例如我之是:wine “/media/disk-1/war3/Warcraft III”.exe -opengl

reg00: base=0xc0000000 (3072MB), size= 512MB: uncachable, count=1
reg01: base=0x13c000000 (5056MB), size= 64MB: uncachable, count=1
reg02: base=0x00000000 ( 0MB), size=2048MB: write-back, count=1
reg03: base=0x100000000 (4096MB), size=1024MB: write-back, count=1
reg04: base=0xf0000000 (3840MB), size= 256MB: uncachable, count=1
reg05: base=0xbf800000 (3064MB), size= 8MB: uncachable, count=1
reg06: base=0x80000000 (2048MB), size=1024MB: write-back, count=1
reg07: base=0xe0000000 (3584MB), size= 256MB: write-combining, count=1

1:安装wine。

MTRR=/proc/mtrr

本人将下面论改了一晃, 符合本人的机的装置, 但是还有一个问题,
Mtrr表最多支持8单记录, 我只好删掉一个overlap的项(不知晓是不是有再次好之方法,
反正还尚未出现别的问题), 来支撑就段内存地址为write-combining模式.
运行fix脚本之后的mtrr:

reg00: base=0xc0000000 (3072MB), size=1024MB: uncachable, count=1
reg01: base=0x13c000000 (5056MB), size= 64MB: uncachable, count=1
reg02: base=0x00000000 ( 0MB), size=4096MB: write-back, count=1
reg03: base=0x100000000 (4096MB), size=1024MB: write-back, count=1
reg04: base=0xbf700000 (3063MB), size= 1MB: uncachable, count=1
reg05: base=0xbf800000 (3064MB), size= 8MB: uncachable, count=1

mtrr: type mismatch for e0000000,10000000
old: write-back new: write-combining

其中在运行X的时节,
显卡需要以mtrr表中注册e0000000,10000000(256M轻重)这段地址也write-combining,
这种模式会升级显卡速度2.5倍.但是及时段地址早就让注册也write-back模式,
所以造成此问题.

至于此bug, 见: https://bugs.launchpad.net/linux/+bug/210780

这个页面提供了一个剧本(http://launchpadlibrarian.net/13330029/fix-mtrrs.sh),
解决者问题.

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website