Choong Ng 作
Lunix 譯
前段時間,Matrox 顯示卡為高端用戶在游戲或兼容圖形工作站中提供高質量的圖形圖象。雖然G系列在3D顯示卡市場大戰中有些落後而使Matrox 在游戲市場中失去了一部分用戶,但Matrox 在顯示卡市場中仍有相當高的聲譽,同時G系列的顯示卡其兼容性、穩定行、高畫質輸出和優秀的Linux驅動都是有目共睹的。我測試過Matrox G450 雙頭顯示卡如何有效的提供高性能的雙顯示器支持,所用的平台是P III 560MHz,440BX芯片組的主機板、384M的RAM,Linux平台為Mandrake 8.0 (kernel 2.4.4 and XFree86 4.0.3),我用的顯示卡當然幾是Matrox咯,一個RAMDAC 360MHz,一個RAMDAC 230MHz、32MB的DDR RAM及雙頭輸出。
如果你還在使用以前的XFree86版本的話,先下一個新的版本過來,這會讓你的工作變得更簡單。我很驚訝地發現Mandrake自帶的XFree86驅動我的顯示卡時只有一個小錯誤,她把我的G450認成了G400,當然,它們兩者在結構上是非常相似的。在我把G450接到我的主機板後,我到Matrox的站點上逛了逛,下載了一個Matrox專用的顯示驅動(close-source binary version),安裝在/usr/X11/lib/modules/drivers下。然後修改X的配置文件,我認為也是很簡單的。
首先,加進去一個或兩個顯示器(Monitor)條目(當然,你要有才行,而且應該仔細查看顯示器的說明),格式如下:
Section "Monitor"
Identifier "monitor"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 31.5-57.0
VertRefresh 50-90
EndSection
再來為每個輸出端口加進去兩個G450設備(Device)條目
Section "Device"
Identifier "G450_1"
VendorName ""
BoardName ""
Driver "mga"
# Clock lines
# Uncomment following option if you see a big white block
# instead of the cursor!
# Option "sw_cursor"
Option "DPMS"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "G450_2"
VendorName ""
BoardName ""
Driver "mga"
# Clock lines
# Uncomment following option if you see a big white block
# instead of the cursor!
# Option "sw_cursor"
Option "DPMS"
BusID "PCI:1:0:0"
Screen 1
EndSection
然後就輪到為顯示屏(Screen)輸出端加進去兩個條目
Section "Screen"
Identifier "screen1"
Device "G450_1"
Monitor "GenericHigh Frequency SVGA, 1024x768 at 70 Hz"
DefaultColorDepth 24
Subsection "Display"
Depth 8
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 15
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 32
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
Section "Screen"
Identifier "screen2"
Device "G450_2"
Monitor "GenericHigh Frequency SVGA, 1024x768 at 70 Hz"
DefaultColorDepth 24
Subsection "Display"
Depth 8
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 15
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 16
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 24
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
Subsection "Display"
Depth 32
Modes "1024x768" "800x600" "640x480"
ViewPort 0 0
EndSubsection
EndSection
最後,告訴X你如何去組織這些條目為你提供顯示服務(ServerLayout)。很多人可能希望擁有一個整體水平的版面顯示,那你就告訴X如何把兩台顯示器顯示輸出一個整體的虛擬桌面來。我的方案是提供一個2048x768 pixels的整體虛擬桌面。如下:
Section "ServerLayout"
Identifier "layout1"
Screen "screen1" LeftOf "screen2"
Screen "screen2"
#This is fairly self-eXPlanatory. Matrox's
#documentation explains how to do more
#complicated layouts should you need to.
Option "Xinerama"
#Xinerama mode joins the screens into one
#desktop.
InputDevice "Mouse1" "CorePointer"
InputDevice "Mouse2" "SendCoreEvents"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection
好啦,把配置文件寫到您的磁盤上就是了。重新開啟X你會發現你成功了。
下面是我的XF86Config,大家可以參考一下。
# File generated by XFdrake.
# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.
# **********************************************************************
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
# Multiple FontPath entries are allowed (they are concatenated together)
# By default, Mandrake 6.0 and later now use a font server independent
# of
# the X server to render fonts.
FontPath "unix/:-1"
EndSection
# **********************************************************************
# Server flags section.
# **********************************************************************
Section "ServerFlags"
# Uncomment this to cause a core dump at the spot where a signal is
# received. This may leave the console in an unusable state, but
# may
# provide a better stack trace in the core dump to aid in debugging
#NoTrapSignals
# Uncomment this to disable the server abort
# sequence
# This allows clients to receive this key event.
#DontZap
# Uncomment this to disable the / mode
# switching
# sequences. This allows clients to receive these key events.
#DontZoom
# This allows the server to start up even if the
# mouse device can't be opened/initialised.
AllowMouseOpenFail
EndSection
# **********************************************************************
# Input devices
# **********************************************************************
# **********************************************************************
# Keyboard section
# **********************************************************************
Section "InputDevice"
Identifier "Keyboard1"
Driver "Keyboard"
Option "AutoRepeat" "250 30"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
# **********************************************************************
# Pointer section
# **********************************************************************
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/usbmouse"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"
# ChordMiddle is an option for some 3-button Logitech mice
# Option "ChordMiddle"
EndSection
Section "InputDevice"
Identifier "Mouse2"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "
Driver "Keyboard"
Option "AutoRepeat" "250 30"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
# **********************************************************************
# Pointer section
# **********************************************************************
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/usbmouse"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "50"
# ChordMiddle is an option for some 3-button Logitech mice
# Option "ChordMiddle"
EndSection
Section "InputDevice"
Identifier "Mouse2"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "
# ChordMiddle is an option for some 3-button Logitech mice
# Option "ChordMiddle"
EndSection
Section "InputDevice"
Identifier "Mouse2"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons"
Option "Emulate3Timeout" "