当前位置:Linux教程 - Linux - 实战Linux的双头显示

实战Linux的双头显示

实战Linux的双头显示
因为XFree86 4.02/4.03beta及以后版本开始引进了类似Windows98/2000的双头显示功能的公开源代码(Xinerama)支持,以及大大降低了厂商为显示卡撰写Linux驱动程序的难度,现在我们在免费的Linux中也可以享受到和Windows相似的双头显示了。
实战一:由于Matrox公司已经在最近为他们的G450、G400和 G200显卡开发了最新的1.3.0Beta驱动程序For Linux(2001年6月3日发布),而在该测试版驱动程序除了可以调整内部时钟频率,加速 XFree86 下 2D 和 3D 的性能之外,还包含了一些现有 XFree86 MGA 驱动程序所没有的新功能。新增的功能包括 DualHead(双头显示)、digital flat panel(数字平板显示器),和 G400 的 TV-out 支援,及 G200 多屏幕系列显示卡的多重显示功能,加上我用的正好是G400的双头显卡,因此我们就从Matrox的G400入手。 软硬件配置如下:
CPU:Pentium 200 MMX
内存:224M SDRAM
显卡:Matrox G400 DH 16M SGRAM AGP
声卡:ASUS PCI-AXP201 With ESS Maestro-1 Chip 2M SDRAM
两台17寸彩显:NEC FE700+ 和 Philips 107G
一台25寸彩电:KONKA 2591N (通过S端子与G400相连)
操作系统:Linux-Mandrake 8.0 with kernel 2.4.3-20MDK and XFree86 4.0.3
驱动程序版本:Matrox G400/450 Driver 1.3.0Beta for Linux(http://www.matrox.com/mga/support/drivers/files/linux_07.cfm)
辅助程序:Matrox PowerDesk for Linux 1_00-5beta (ftp://ftp.matrox.com/pub/mga/archive/linux/2001/powerdesk_1_3_0/mgapdesk-1_00-5beta.i386.rpm)
首先需要下载和安装Matrox的驱动程序。请到上述地点或离你最近的地方下载。
安装之前,请注意检查你Xfree86的版本,输入:
xdpyinfo | grep release
查看你Linux发行版中使用XFree86的版本号,请保证显示的数字为4002或以上。如果不是如此,请首先升级你的XFree86,你可以到http://www.xfree86.org/下载最新的4.1.0版本。
操作步骤如下:
1、关闭计算机,第一次是把两台17寸显示器同时连上G400,第二次是连上一台17寸显示器NEC FE700+和一台14寸显示器,第三次TV-OUT试验中是一台17寸显示器NEC FE700+和康佳25寸纯平彩电2591N。
2、启动Linux,以Root身份登录,或者在其他用户中使用su命令。
3、安装Matrox的Linux驱动程序:复制下载的驱动程序中的mga_drv.o和mga_hal_drv.o(G450不需要该库文件)到/usr/X11R6/lib/modules/drivers(或者你Linux中 X11R6 目录具体所在的地方),复制之前,建议你备份你原有的mga_drv.o文件,使用:mv mga_drv.o mga_drv.o_old,然后在安装时简单覆盖即可(一般来说,如果你的Linux发行版使用的是XFree86 4.0.3的话,你的G400或G450显卡会工作的很好(只是没有DualHead等),一旦出现问题,可以使用备份恢复)。
4、安装PowerDesk,rpm -ivh mgapdesk-1_00-5beta.i386.rpm,或者
tar xvzf .tgz
cd mgapdesk
./configure --prefix=/usr/X11R6
make
make install
5、软件安装完毕后,在终端中输入:mgapdesk,出现配置界面,如图1、2,设置很简单。请仔细记住Matrox为你备份的地点,很重要,这样你可以在万一的情况下恢复你原始的曾经工作良好的设定。我曾经忙得满头大汗,因为我把备份的地方记成了/usr/X11R6/lib/X11,而不是/etc/X11(两个地方都有XFConfig86-4文件),重新启动后,试验成功,见图3(Multidisplay模式)、4(Clone模式)。
问题:1、退出X窗口以后,第二个显示器不能够自动重新初始化,从而导致“''Out of Scan Range”等相似的错误。如果你不总是使用Linux图形界面,这让人头痛。
2、由于KDE并不支持Xinerama,它的双头显示功能有问题,它实际上仍然认为你使用的是一个显示器(它简单地把两个显示器当做一个大的显示器而已) ,因此导致了下面的错误:
最大化时,窗口实际上以整个桌面(两个显示器),而不是按照窗口所在的单个显示器最大化;
对话框被两台显示器一分为二;
两台显示器必须使用同样的分辨率,当两台显示器的分辨率不一致时,可能导致KDE死掉。
3、Matrox PowerDesk中出现Linux/Gnome中很少见的字体显示不全问题 ,后来查明跟gtk中gtkrc.zh_CN文件字体设置有关,使用Mandrake默认的helva或改为ar pl sungtil gb.ttf都不行,设置为simsun.ttf解决问题。
4、在KDE中使用G400的TV-OUT功能(G450暂时还无法使用该功能)时,通常的结果是导致KDE死掉,而在iceWm及Enlightenment中正常,在sawfish中鼠标有问题。
5、TV-OUT中没有我在windows中最喜欢的DVD Max功能选项。
建议:1、激活Xinerama功能,或者在.xserverrc文件中加入X +xinerama,或者让mgapdesk中选取automatic xinerama。
2、使用对Xinerama支持良好的Window Manager,比如Enlightenment 0.16.4-2或者Sawfish。
3、使用命令: xinit -- /usr/X11R6/bin/X -layout ""2 Monitors""来启动X窗口,这样可以startx时在双/单显示器中轻易转换。
实战二:然后,我们又在朋友的机器上试验。软硬件配置如下:
CPU:AMD ATHLON 850MHZ
内存:256M PC133 SDRAM
显卡:Matrox G450 32MDDR AGP
声卡:Creative SoundBlaster Live/Digital
操作系统:RedHat Linux 7.0 with kernel 2.2.17 and XFree86 4.0
Accelerate X 5.0(ftp://ftp.softhouse.com.cn/download2/13758ax50.iso),用以下的命令在Linux下来把该文件解开:
#mkdir /mnt/axiso
#mount -o loop ./ax50.iso /mnt/axiso
补丁:M5003.003.tar.gz
由于RedHat Linux 7.0的XFree86版本达不到Matrox的要求(XFree86的升级相当麻烦),我们干脆使用了Xi Graphics公司 (http://www.xig.com/)的Accelerated-X软件。因为XFree86的升级很麻烦,而且我们听说Accelerated-X的OpenGL性能更好,(为了让朋友尝尝Linux Quake3的味道)安装配置更方便,但是我们在网上找了很久,只找到了5.0版本的免费copy(带Serials),最新的6.0版本还是商业软件有时间限制,因此最终我们安装的是5.0.3的版本。
操作步骤如下:
1、关闭计算机,把两台17寸显示器分别连上G400和ASUS显卡,
3、重新启动,以root身份进入console(控制台)模式。如果你的Linux是以图形界面登录,你可以在LILO提示符中输入:linux 3,或者暂时修改你的/etc/inittab文件,将其中的id:5:initdefault改为id:3:initdefault,或者请参照你Linux发行版本手册,进入控制台模式。
4、安装Accelerate X。它的安装就比XFree86简单多了,看一下README,运行安装程序install,接下来输入serial就一路OK了,十分方便。Accelerate X的程序装在/usr/X11R6/lib/X11/AccleratedX 下面,显卡,显示器,键盘,鼠标几部分都模块化了,不象XFree86那样搞成一个大的ELF文件。另外它的两个可执行文件放在/usr/X11R6/bin/下面:Xaccel(Server)和Xsetup(配置程序)。它的config文件另放在/etc/Xaccel.ini中,只有很短的几行,比XF86Config清晰简单多了。
5、由于是上一版的5.0版本,我们需要安装针对G450显卡的补丁程序:M5003.003.tar.gz(ftp://ftp.xig.com/pub/updates/accelx/multihead/)
6、运行Xsetup(在命令行输入Xsetup即可)。加参数-text/graphics可分别进入文本/GUI配置环境, 不加参数为GUI配置环境。
7、配置完毕以后startx。试验OK。接下来我们试验Quake 3。下载安装并开始游戏,将显示模式改为OpenGL,之后退出。
编辑你的主目录中的.xsession文件,具体如下:
cd /usr/local/games/quake3
./quake3 -set in_dgamouse 0
以及~/q3a/目录中的q3config.cfg,修改如下:
seta r_customaspect ""1""
seta r_customheight ""768""
seta r_customwidth ""2048""
seta r_fullscreen ""1""
seta r_mode ""-1""
由于我们在Xsetup中把分辨率和色深设得比较大(1024*768,24bit),游戏速度还是比较慢。后来我们把/etc/Xaccel.ini-file这个文件中的分辨率改640*480,相应的在q3config.cfg中修改为seta r_customheight ""480""seta r_customwidth ""1280"",我们看到了一个几乎完美的两个头的怪物(在timedemo 2上可以超过60帧)。
问题:1、在KDE启动时,出现“Sorry, your X11 Server lacks DPMS Support”对话框。后来查明是因为没有打开“Energystar/ DPMS”(Display Power Management Services)所致。
2、两个显示器只能使用相同的分辨率和色深(Accelerated X本身的限制,但是根据Xi Graphics公司的说明6.0版本已经解决这个问题)。
3、Quake 3游戏中鼠标有时不够灵活,致命!但这是由Accelerated X本身引起的,也许最新的版本可以解决。
建议:1、在Xsetup时选择打开“Energystar/ DPMS”。
2、可以修改.xsession文件,加入
cd /usr/games/
./quake-gl -width 1280 -height 480 #假设你两台显示器的分辨率为640*480
这样X就会不通过windowmanager而直接运行全屏下的GL-Quake。启动X-Window,GL-Quake就会自动开始了。