在 X 显示服务器上运行的系统的通用解决方案

在 X 显示服务器上运行的系统的通用解决方案

是否有一个命令可以列出连接到计算机的显示器?

具体来说,我想知道当我的外接显示器通过 HDMI 电缆连接时系统如何检测它,以及它的硬件地址(不确定这里的正确术语)是什么(例如“CRT-0”或“DFP-1”)。

这只是一个一般性的问题,但作为参考,我使用:

  • Asus UL30JT 笔记本电脑 - 运行 Ubuntu 12.04 beta 和 11.10
  • 华硕 PA238 23 英寸显示器
  • HDMI 1.4 电缆
  • Optimus 显卡 (Intel + nVidia GeForce 310M) - 运行熊蜂

答案1

尝试这个:

xrandr --query

这将列出显示器名称和检测到的可用分辨率。您还可以使用 xrandr 重新配置显示器。

请注意,如果您使用 NVidia 或 ATI 驱动程序,这可能不起作用;我不确定。

答案2

对于大多数加载了专有驱动程序的机器,它可以/usr/lib/nvidia-current/bin/nvidia-xconfig --query-gpu-info --nvidia-cfg-path=/usr/lib/nvidia-current工作。请注意,我说的是“加载专有驱动程序”。例如,如果卸载驱动程序或加载 nouveau,它就不起作用。因此,在使用 Bumblebee 时,请运行optirun /usr/lib/nvidia-current/bin/nvidia-xconfig --query-gpu-info--nvidia-cfg-path这里不需要该部分,因为optirun设置了正确的库路径。

另请参阅https://github.com/Bumblebee-Project/Bumblebee/issues/21

/var/log/Xorg.0.log(其中 0 是显示器编号)也可能包含有关可用屏幕的宝贵信息。对于 Optimus 笔记本电脑,此日志仅包含有关 Intel 屏幕的详细信息,因此请替换0为以8查找由 Bumblebee 启动的 X 服务器的日志。

答案3

所有其他答案仅在特定情况下有效。

@ams 的答案需要$DISPLAY设置环境变量,因此无法通过 SSH 工作。

@Lekensteyn 的答案显然只适用于 nvidia GPU。

在 X 显示服务器上运行的系统的通用解决方案

唯一可靠的解决方案是查看 X 服务器打开的显示 unix 套接字,即列出目录/tmp/.X11-unix/

前任:

root@host # ls /tmp/.X11-unix/
total 0
srwxrwxrwx 1 root root 0 Apr  2 01:06 X0
srwxrwxrwx 1 root root 0 Apr  2 01:06 X1

这意味着两个显示器(分别称为:0:1)连接到机器。

相关内容