我刚刚添加了第二台显示器,但遇到了更换显示器的典型问题。
显然,第二个监视器已被 X.org 标识为“监视器 0”,但根据 ATI 配置小程序,它是#2。(小程序从 1 开始为监视器编号,而不是 0。)也就是说,第二个监视器是小程序列出的第一个监视器。
这让我担心,因为我在 Windows 上遇到了双显示器在重新启动后随机交换的问题。移动 Gnome 面板很容易,即使不是很明显。但是,我想知道其他东西是否有可能使用“监视器 0”,在这种情况下,我希望它们使用“监视器 1”。
那么,我可以控制哪个监视器被视为主要监视器吗?
使用 ATI Catalyst Control Center (fglrx),我通过双头设置了两个桌面(多桌面选项)。现在我有两个鼠标和键盘 (USB) 连接,使用xinput可以放在两个单独的组中。我可以将每个组锁定到一个屏幕吗?以及如何永久地做到这一点?或者,也欢迎将这种“lite multiseat”配置转换为 multiseat 的说明。
这是由 Catalyst Center 设置的 xorg.conf:
Section "ServerLayout"
    Identifier     "amdcccle Layout"
    Screen      0  "amdcccle-Screen[1]-0" 0 0
    Screen         "amdcccle-Screen[1]-1" 1400 0
EndSection
Section "Module"
    Load  "glx"
EndSection
Section "Monitor"
    Identifier   "0-CRT1"
    Option      "VendorName" "ATI Proprietary Driver"
    Option      "ModelName" "Generic Autodetecting Monitor"
    Option      "DPMS" "true"
    Option      "PreferredMode" "1400x1050"
    Option      "TargetRefresh" "60"
    Option      "Position" "0 0"
    Option      "Rotate" "normal"
    Option      "Disable" "false"
EndSection
Section "Monitor"
    Identifier   "0-DFP1"
    Option      "VendorName" "ATI Proprietary …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 2 个不同的显卡驱动程序(i915 和 nvidia)进行双屏显示,但正如您所看到的,xrandr 仅列出了 nvidia 提供商。我正在使用 Arch Linux。我没有成功尝试找到xrandr获取提供者列表的位置。
[x@epoch ~]$ xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x279 cap: 0x1, Source Output crtcs: 4 outputs: 6 associated providers: 0 name:NVIDIA-0
[x@epoch /etc/X11]$ sudo lshw -numeric -c video
*-display               
       description: VGA compatible controller
       product: GK104 [GeForce GTX 770] [10DE:1184]
       vendor: NVIDIA Corporation [10DE]
       physical id: 0
       bus info: pci@0000:01:00.0
       version: a1
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
       configuration: …Run Code Online (Sandbox Code Playgroud) 我的笔记本电脑一直忘记连接到它的外接显示器的正确分辨率。如何使配置“坚持”?
我有一台运行 Linux Mint 的笔记本电脑连接到外部 ViewSonic 显示器。我将其设置为使用外接显示器作为第二个屏幕(即未镜像)。这工作了几个星期。
突然,笔记本电脑不再将其识别为 ViewSonic,此时它不知道其最佳分辨率 ( 1600 x 1200),只允许最大1028 x 768. 1这在我的有1920 x 1200分辨率的笔记本电脑上根本无法正常工作。
在经历了很多挫折之后,我找到了这个答案。它帮助我解决了这个问题,如下(cvt命令的输出是下一个命令中使用的模式行):
cvt 1600 1200
xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
xrandr --addmode VGA-1 1600x1200_60.00
Run Code Online (Sandbox Code Playgroud)
这正是我一直希望我能做到的,但不能通过 GUI 做到。(我仍然喜欢命令行是有原因的......)
这再次奏效了一段时间。但是,当我今天启动计算机并登录时,我收到了一个通知区域弹出窗口,其中包含有关无法正常工作的不同尝试模式的一系列错误,并且外部显示器已关闭。我重复了上面的命令,它又开始工作了。
我有一张 nVidia 卡。当事情开始出错时,我尝试安装专有驱动程序,但此时外部显示器根本不再被识别,所以我又回到了开源驱动程序。我没有Xorg.conf或Xorg.conf.d,只有xorg.conf.failsafe。
我不想每次启动机器时都重复这些命令。有什么办法可以把它保存到我的Xorg.conf或其他东西吗?我已经很多年没有用 X 做过很多事情了。有人能帮我吗?
1我一直无法确定为什么会发生这种情况。我最好的猜测是有问题的驱动程序更新。
这不是一个问题,而是我遇到的 Ubuntu 下问题的解决方法。
设置:
给定一个笔记本电脑屏幕(例如“LVDS-1-0”)和第二个屏幕(例如“DP-1”),其中第二个屏幕是您的主屏幕,而您的显示器位于主屏幕的右侧(或左)作为扩展名(见图)。尽管明确的 xrandr 指示不这样做,但第一个屏幕总是虚拟地扩展。输入这个时,我能够避免在主监视器上将鼠标光标向右移动时烦人的滚动。
xrandr --output LVDS-1-0 --off
xrandr --output DP-1 --mode 1920x1080 --primary --pos 0x0 --output LVDS-1-0 --mode 1920x1080 --pos 1920x0
Run Code Online (Sandbox Code Playgroud)
在此之后,它只是从一台显示器转到另一台显示器而无需滚动屏幕。
更新
切换到独立显卡(nvidia 是独立的,我的笔记本电脑集成了英特尔)后,需要更改输出顺序:
output_DP=$(xrandr | grep " connected" | grep DP | awk '{print $1}')
output_LVDS=$(xrandr | grep " connected" | grep LVDS | awk '{print $1}')
xrandr --output $output_LVDS --off
xrandr --output $output_LVDS --mode 1920x1080 --pos 1920x0 --output $output_DP --mode 1920x1080 --pos 0x0  --primary
Run Code Online (Sandbox Code Playgroud)
为了更方便,我使这些变量具有更大的灵活性,因为在独立显卡和集成显卡之间切换会更改输出设备的名称(例如,LVDS-1-0 与 LVDS-1)。
我最近买了一台笔记本电脑(Asus Zenbook Flip)并安装了 Linux Mint。现在我想连接两个外接显示器。通过 HDMI 端口连接第一个没有问题,但对于第二个,我购买了一个据称适用于 Linux 的集线器(CableMatters USB-C to HDMI)。
通过集线器连接以太网工作完美,但我尝试用 HDMI 电缆连接显示器(我尝试了另一个用 VGA 电缆)。他们不被认为是监视器;在我使用“检测显示”的显示设置中,它们不存在。
有谁知道这个问题的解决方案,有什么我可以尝试让它工作的吗?
但是,类似于https://devtalk.nvidia.com/default/topic/719768/linux/304-121-ubuntu-14-04-xrandr-1-4-multi-gpu-not-being-detected上的报告/当我运行 xrandr --listproviders 时,我只看到一个提供者——第一张卡。我有 xrandr 1.4,所以应该能够看到两者。如果我设置一个单独的 X 屏幕,然后执行 xrandr --listproviders --screen 1,我可以看到第二张卡片。但是,我不想要多个 X 屏幕;我希望能够在显示器之间无缝流动。
我不想运行 xinerama,因为设置起来很麻烦,应该被 xrandr 取代。
使用 nouveau 驱动程序,我可以完全按照自己的意愿使用所有三个屏幕,但性能不佳。
所以,我有几个问题:
1.) 这种行为是设计还是错误?我在http://uk.download.nvidia.com/XFree86/Linux-x86/319.12/README/randr14.html注意到该驱动程序仅支持源输出功能;这会阻止我在 xrandr 中看到两个不同的卡提供商吗?
2.) 如果前者是真的,有没有办法解决这个问题?
3.) 我试过各种 basemosaic 选项,但无济于事
我尝试的最后一个配置是:
Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0"
EndSection
Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown" …Run Code Online (Sandbox Code Playgroud) 当我启动或按下 时CtrlAltF*,我被带到一个物理终端/TTY。问题是 TTY 出现在我的 HDMI 显示器上,实际上它甚至和我不在同一个房间里。
是否可以将我的 PC 配置为在我的 DisplayPort 显示器上显示 TTY?澄清一下,当我按下 时CtrlAltF1,我希望 TTY 显示在我的 DisplayPort 显示器上,而不是我的 HDMI 显示器上。
编辑:经过更多的挖掘,看起来这里可能涉及引导加载程序,所以我应该指定我正在使用 GRUB 2.02~beta2-20
我有运行 NVIDIA 410 驱动程序的最新 PopOS。我设置了两个显示器:
第二台显示器是 2160p,而第一台显示器是 1080p。我只想缩放第二台显示器(150% 或 200%)。设置仅提供 200%。如果我将监视器 2 的缩放比例更改为 200%,第一个监视器也会缩放为 200%,这使其无法使用。我只想缩放第二个,保持 1080p 不变。更改下面的 HiDPI 守护程序设置并没有导致任何可用。
我也尝试使用 xrandr --scale 手动配置它,但它失败并出现错误。仅缩放字体是不够的,尤其是在内部使用 VM 时。
有什么建议吗?
编辑:
xrandr --output HDMI-0 --mode 1920x1080 --output DP-1 --primary  --mode 3840x2160 --transform "1,0,0,0,1,0,0,0,1" --left-of HDMI-0在 GUI 中使用或尝试某些 Nvidia 设置会导致桌面模糊。