通常可以在BIOS中设置主视频卡(选项“主VGA卡”),它将是系统使用的第一张卡。

我的问题是如何以编程方式识别(最好使用Shell脚本和实用程序)我的两个视频卡中的哪一个是主卡?

编辑:我希望我不必详述为什么需要它,因为它有点复杂,但是我将在下面解释问题。

我有一个配置向导,该向导允许在LiveCD中动态配置多座系统,并带有两个独立的显示器,键盘和鼠标,我的向导按以下方式工作:

  • 每个视频卡启动一个Xorg服务器(在生成具有正确PCI总线ID的xorg.conf之后)。
  • 在每个Xorg中启动一个带有配置消息的ui(按键并按鼠标)。每次可以配置一个座位。
  • 配置第一个座位后,向导将关闭第一个Xorg,并在桌面环境(已使用正确的键盘和鼠标设置)下在该座位中启动确定的Xorg。
  • 现在可以配置第二个座位(按下键和鼠标),此过程之后,对第二个座位重复 3

  • 问题是:如果我启动主视频卡中的第一个Xorg,一切正常,但是如果我启动辅助视频卡中的第一个Xorg,则会发生以下情况:

    通行证1、2和3有效,但是在通行证3结束时,当第一个座位的Xorg关闭时,第二个座位的Xorg闪烁并且不返回,只显示一个带有的空白屏幕_ 光标位于顶部,第一个座位的桌面已加载,但是我看不到第二个座位的向导屏幕,如果我执行kill -HUP,第一个Xorg会回来,并且我需要从以下位置启动ui再来一次。

    因此,这就是为什么我需要在启动Xorg之前识别主视频卡的原因(对不起,我之前没有提到这一点)。我在不同的计算机,不同的视频卡上测试了该系统,并且行为相同。我还在Ubuntu 12.04中测试了内核和Xorg的最新软件包(raring版本的软件包)。

    最佳答案

    假设X11正在运行,您可以假设Xorg使用的是主卡...那么您可以尝试

     ls -l /proc/$(pidof X)/fd |grep /dev/dri
    

    在装有Linux 3.12内核的系统Debian/Sid/x86-64上(在Intel3770K上有Nvidia卡,也有VGA),我得到了/dev/dri/card0等。

    但是您应该真正解释为什么要问以及您想解决什么问题...。为什么这对您很重要?

    我完全不确定Linux是否具有BIOS所知道的主图形卡的概念。

    可能hwinfo告诉您有关图形卡的所有信息。

    关于linux - 如何以编程方式识别Linux上的主视频卡?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19985131/

    10-11 16:39