如何在Linux上使用多个视频卡?


14

我安装了fedora 12。

我有2个ATI卡,我以前在Windows上使用它们来运行4个监视器。一个经常出现的问题是在Linux中检测到它们。只有我的辅助卡被Linux接走。当我管理显示器时,它将检测到连接该卡的2台显示器。

我应该采取什么具体步骤来检测第二张卡?据说有一个工具system-config-xfree。我没有它,百胜找不到。

我也听说它与编辑某些xorg.conf文件有关。我完全不知道如何查找卡的“总线ID”,或如何查找水平刷新率等。

如果我知道找到这些值的好方法,那么遵循文档和编辑文件可能不会有问题。

有人还建议两次安装Linux,并保存每次生成的xorg.conf(每次使用不同的卡),然后手动将两者合并。不过,这就像用锤子杀死苍蝇一样,将来当我一次又一次地这样做时,不必花两倍的时间就好了。

谢谢


所以3年后,我全职使用linux。我现在使用ubuntu,它可以自动检测我的所有监视器,并使其易于通过GUI进行管理。不知道最近三年是否进展顺利,或者我现在是否正在使用更好的发行版。
JoshRibs

“有人还建议两次安装linux” -不要听他们的话,这听起来像一个可怕的主意。如果硬件相同,为什么第二次还是会有什么不同
Xen2050

Answers:


13

查找卡的“总线ID”很容易,只需运行:

lspci | grep VGA

结果将是这样的:

01:08.0 VGA compatible controller: Number 9 Computer Company Revolution 4 (rev 02)

然后,“ 01:08.0”是您的公交车ID。如果您有两张牌,您将有两条这样的线。

然后/etc/X11/xorg.conf使用文本编辑器作为根打开文件。编辑它以包含两个Device部分。设备部分的示例:

Section "Device"
        Identifier  "My video card 1"
        Driver      "ati"
        BusID       "PCI:1:8:0"
EndSection

标识符是您想用来识别视频卡的任何文本-在xorg.conf文件的后面部分中将需要它。驱动程序是以下之一:

apm, ati, chips, cirrus, cyrix, fbdev, glide, glint, i128, i740, imstt, intel, mga, neomagic, nv, openchrome, r128, radeon, rendition, savage,  s3virge,  siliconmotion, sis, sisusb, sunbw2, suncg14, suncg3, suncg6, sunffb, sunleo, suntcx, tdfx, trident, tseng, vesa, vmware, voodoo, wsfb, xgi, xgixp

选择其中一种看起来像您视频卡中芯片组的类型(中的字符串lspci | grep VGA将很有用)。还有您已经知道的BusID。创建两个这样的部分。

我将说明如何使用两个视频卡配置两个监视器,一旦您了解了配置文件的工作原理,便应该能够将其扩展到四个监视器。

然后创建两个“监视器”部分。这样的话就足够了:

Section "Monitor"
   Identifier  "My monitor 1"
   HorizSync   30-94
   VertRefresh 48-85
EndSection

标识符仍然是您选择的任何内容,您应该在显示器说明手册中检查水平同步和垂直刷新率,以找出其他两个必需参数。

然后创建两个“屏幕”部分,如下所示:

Section "Screen"
   Identifier  "My screen 1"
   Device      "My video card 1"
   Monitor     "My monitor 1"
   DefaultDepth    24
   SubSection "Display"
       Depth       24
       Modes       "1600x1200"
   EndSubSection
EndSection

使用上一部分中组成的标识符的位置,而24是所需的色深,而在Modes中,则将所需的分辨率放在该显示器上。

您需要做的最后一件事是编辑ServerLayout部分,使其看起来像这样:

Section "ServerLayout"
    Identifier  "Default Layout"
    Screen  0   "My screen 1"
    Screen  1   "My screen 2" RightOf "My screen 1"
    InputDevice "My keyboard"
    InputDevice "Configured Mouse"
EndSection

大多数内容已经存在,您需要添加的内容是这一行:

Screen  1   "My screen 2" RightOf "My screen 1"

放置先前定义的屏幕的标识符的位置。

然后重新启动X服务器,它应该可以工作。如果没有查找/var/log/Xorg.0.log或类似的日志文件中有错误。如果您想阅读如何创建此类文件,则应在手册中:

man xorg.conf

如果您的系统上没有,则在Google搜索“ man xorg.conf”时将显示许多资源。

对于您来说,这也应该很有趣:http : //www.ghacks.net/2009/02/04/get-to-know-linux-understanding-xorgconf/

这是针对Gentoo的,但显示了许多有关如何编写xorg.conf文件的有用示例:http : //en.gentoo-wiki.com/wiki/X.Org/Dual_Monitors/ATI


感谢您的回复。“您应该在显示器说明手册中检查水平同步和垂直刷新率,以找出其他两个必需的参数。” 我的监视器之一来自“引擎盖”,没有说明。剩下的我一拿到就扔掉了。是否有适用于所有显示器的默认值?在输入正确的值之前,它是否会提供次优的图形?还是根本看不到?
JoshRibs

如果监视器不是石头时代的,则X服务器应该能够以正确的速率对其进行探测。因此,请尝试忽略这些参数,然后看看会发生什么。您可能会在这里查看:cat /var/log/Xorg.0.log | grep Hz | 更少您也可以使用Google搜索显示器类型,并且可能会找到手册和/或参数。如果没有任何效果,请尝试:HorizSync 30-80 VertRefresh 48-85如果您在Windows上使用了显示器,则在此页的末尾,有一些Windows程序会向您显示这些值:en.wikipedia.org/wiki/Extended_display_identification_data
miernik
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.