G450 雙頭Linux驅動支援解決方案(轉)

ba發表於2007-08-12
G450 雙頭Linux驅動支援解決方案(轉)[@more@]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 "Generic|High 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 "Generic|High 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" "50"

# ChordMiddle is an option for some 3-button Logitech mice

# Option "ChordMiddle"

EndSection



Section "Module"

# This loads the DBE extension module.

Load "dbe"


# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.

SubSection "extmod"
#Option "omit xfree86-dga"
EndSubSection

# This loads the Type1 and FreeType font modules

Load "type1"
Load "freetype"
EndSection

# **********************************************************************
# Monitor section
# **********************************************************************

# Any number of monitor sections may be present

Section "Monitor"
Identifier "Generic|High Frequency SVGA, 1024x768 at 70 Hz"
VendorName "Unknown"
ModelName "Unknown"

# HorizSync is in kHz unless units are specified.
# HorizSync may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
HorizSync 31.5-57.0


# VertRefresh is in Hz unless units are specified.
# VertRefresh may be a comma separated list of discrete values, or a
# comma separated list of ranges of values.
# NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S
# USER MANUAL FOR THE CORRECT NUMBERS.
VertRefresh 50-90


EndSection

# **********************************************************************
# Graphics device section
# **********************************************************************

Section "Device"
Identifier "Generic VGA"
Driver "vga"
EndSection


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 sections
# **********************************************************************



Section "Screen"
Identifier "screen1"
Device "G450_1"
Monitor "Generic|High 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 "Generic|High 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 "ServerLayout"
Identifier "layout1"
Screen "screen1" LeftOf "screen2"
Screen "screen2"

Option "Xinerama"

InputDevice "Mouse1" "CorePointer"

InputDevice "Mouse2" "SendCoreEvents"

InputDevice "Keyboard1" "CoreKeyboard"
EndSection

另外再還提供一個Matrox的技術文件及相關驅動

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-949864/,如需轉載,請註明出處,否則將追究法律責任。

相關文章