Ale*_*lex 7 nvidia xorg multiple-monitors intel
我们想用板载英特尔图形适配器和 nvidia 卡设置 3 个屏幕。
两张卡都在 lspci 中被识别
01:00.0 VGA 兼容控制器:NVIDIA Corporation GT218 [GeForce 210] (rev a2) 00:02.0 显示控制器:英特尔公司第二代核心处理器家族集成图形控制器(修订版 09)
基本工作:如果我切换到控制台,我会在 Intel 卡上看到输出,X 仅在 Nvidia 卡上运行。
但是当我输入时,xrandr | grep conn
我只有一个连接的端口:
DVI-I-0 断线(正常左倒右 x 轴 y 轴) VGA-0 断线(正常左倒右 x 轴 y 轴) DVI-I-1 连接 1920x1200+0+0(正常左倒右 x 轴 y 轴) 518mm x 324mm HDMI-0 断开(正常左倒右 x 轴 y 轴)
我在 Ubuntu 12.10(和 XFCE)上安装了专有的 nvidia 驱动程序。
我假设 X 在自动检测两张卡时可能有问题,所以我认为以下内容xorg.conf
可能会有所帮助:
“服务器布局”部分 标识符“布局0” 屏幕 0“屏幕 0” 屏幕 1 “屏幕 1” 输入设备“键盘0”“核心键盘” 输入设备“鼠标0”“核心指针” 结束部分 “文件”部分 结束部分 “输入设备”部分 # 默认生成 标识符“Mouse0” 司机“老鼠” 选项“协议”“自动” 选项“设备”“/dev/psaux” 选项“Emulate3Buttons”“否” 选项“ZAxisMapping”“4 5” 结束部分 “输入设备”部分 # 默认生成 标识符“键盘0” 驱动程序“kbd” 结束部分 “监视器”部分 标识符“Monitor0” 供应商名称“未知” 型号名称“未知” 水平同步 28.0 - 33.0 垂直刷新 43.0 - 72.0 选项“DPMS” 结束部分 “设备”部分 标识符“设备0” 驱动程序“英伟达” 供应商名称“NVIDIA Corporation” BoardName "GeForce 210" 结束部分 “屏幕”部分 标识符“Screen0” 设备“设备0” 监视器“监视器0” 默认深度 24 “显示”小节 深度 24 结束小节 结束部分 “监视器”部分 标识符“Monitor1” 供应商名称“未知” 型号名称“未知” 水平同步 28.0 - 33.0 垂直刷新 43.0 - 72.0 选项“DPMS” 结束部分 “设备”部分 标识符“设备 1” 驱动程序“英特尔” 供应商名称“英特尔” BoardName "内部英特尔显卡" 结束部分 “屏幕”部分 标识符“屏幕1” 设备“设备 1” 监视器“监视器 1” 默认深度 24 “显示”小节 深度 24 结束小节 结束部分
但它仍然无法正常工作。
xorg.conf
手动创建?(因为 Ubuntu 12.10 通常没有xorg.conf
)xorg.conf
吗?小智 8
是的,X 可以使用多个驱动程序。您的设置与我的设置非常相似。我有一个 NVIDIA 9800 GT,连接了两个显示器,第二代英特尔卡和一个显示器。
我没有看到您的xorg.conf
. 我怀疑您需要创建一个xorg.conf
if 来告诉 X 使用 nvidia 和 intel 驱动程序。我的xorg.conf
看起来很像你的;我有三个显示器和屏幕部分,因为 nvidia 卡有两个显示器,但我很确定 X 忽略了这些部分。
首先,您需要确保 xinerama 在xorg.conf
(可能没有必要)中被禁用。
xorg.conf
:
Section "ServerFlags"
Option "xinerama" "off"
EndSection
Run Code Online (Sandbox Code Playgroud)
当你做 a 时,xrandr --listproviders
你应该看到两张牌。
cody@IRIS> xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x290 cap: 0x1, Source Output crtcs: 2 outputs: 5 associated providers: 1 name:NVIDIA-0
Provider 1: id: 0x48 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 6 associated providers: 1 name:Intel
Run Code Online (Sandbox Code Playgroud)
如果您没有看到两张卡,则您可能缺少驱动程序。(但 OP 说控制台正在使用一个,而 X 正在使用另一个,所以它们可能都有效)
您应该能够使用xrandr --setprovideroutputsource
将英特尔端口添加到您显示的列表中xrandr | grep conn
在我的情况下,我使用以下名称--listproviders
:
xrandr --setprovideroutputsource Intel NVIDIA-0
Run Code Online (Sandbox Code Playgroud)
如果那没有添加 Intel 端口,则它可能已经以您看不到的方式连接。断开它与:
xrandr --setprovideroutputsource Intel 0x0
Run Code Online (Sandbox Code Playgroud)
然后再次尝试连接:
xrandr --setprovideroutputsource Intel NVIDIA-0
Run Code Online (Sandbox Code Playgroud)
现在应该显示所有输出端口。并且您应该能够使用 gnome 显示设置或xrandr
.
所以当我终于让我的英特尔显示器工作时,当我试图将鼠标移动到第三个显示器时,nvidia 显示器决定它们需要平移。现在它将在第三个和第二个监视器上显示第三个监视器的内容。第二个的原始内容滑到第一个显示器上,第一个的内容在屏幕外。如果我再次尝试将光标移到第一台显示器上,它将恢复正常。
我终于通过另一个xrandr
电话解决了这个问题:
xrandr --output DVI-I-2 --panning 3840x1200+1680+0/1920x1200+1680+0/0/0/0/0
Run Code Online (Sandbox Code Playgroud)
此调用需要物理屏幕几何结构和逻辑布局的知识。我有一个 1680x1050 的显示器、一个 1920x1200 和一个 1920x1080。它们按从左到右的顺序排列。最右边的是连接到英特尔卡。
此调用正在中间监视器上设置平移区域。 --output DVI-I-2
恰好是连接到我中间显示器的端口。
前四个数字将平移区域设置为中间和右侧屏幕的总和。3840x1200 作为宽度和高度,+1680+0 偏移区域以从中间显示器的左上角开始。(显然 [0,0] 在左监视器的左上角)
接下来的 4 个数字是光标跟踪区域。我将其设置为仅跟踪中间屏幕上的光标。这样当光标离开此屏幕时,它不会尝试移动图像以跟随光标。
最后 4 个数字定义了平移区域周围的边界。我只是在这里使用默认值。
我使用的相关软件版本:
xorg-server-1.17.4
gnome-3.18.0
xrandr-1.4.3
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2730 次 |
最近记录: |