是否有一个命令可以列出连接到计算机的显示器?
具体来说,我想知道当我的外接显示器通过 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
)连接到机器。