我怎样才能强制 X 服务器使用我的 nvidia 卡?

我怎样才能强制 X 服务器使用我的 nvidia 卡?

我有 2 个外接显示器连接到扩展坞。但我只能让其中 1 个工作。

我很确定要驱动第二台显示器我需要使用 NVidia 适配器。

当我使用专有 nvidia 驱动程序时,它曾经工作正常。不得不切换 no nouveau(Xephyr 不支持使用专有驱动程序的 OpenGL)。

我可以在 Xorg.0.log 中看到:

[     4.367] (--) PCI:*(0:0:2:0) 8086:0416:1028:05cc rev 6, Mem @ 0xf5400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64
[     4.367] (--) PCI: (0:1:0:0) 10de:0ff6:1028:15cc rev 161, Mem @ 0xf4000000/16777216, 0xe0000000/268435456, 0xf0000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288

Xorg 看到 nvidia 适配器 (PC: 1:0:0),但未加载 nouveau 驱动程序。我该如何强制它这样做?

注意:返回专有驱动程序不是一个选项。

硬件:戴尔 M4800 笔记本电脑,带扩展坞

$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107GLM [Quadro K1100M] (rev a1)

dmesg:http://pastebin.com/9J0pq6tn

Xorg.0.日志:http://pastebin.com/NWj5tsS6

xrandr 命令用于对齐 2 个工作监视器:

xrandr \
  --output HDMI1 --off \
  --output VIRTUAL1 --off \
  --output DP1 --mode 1920x1080 --pos 1920x0 --rotate left 
  --output eDP1 --mode 1920x1080 --pos 0x760 --rotate normal --dpi 150/eDP1\
  --output VGA1 --off

(eDP1 为内置显示器,DP1 为外接显示器)

xrandr 命令用于与专有驱动程序配合使用:

xrandr \
  --output VIRTUAL1 --off \
  --output DP1 --off \
  --output eDP1 --mode 1920x1080 --pos 0x840 --rotate normal \
  --output HDMI1 --off \
  --output VGA1 --off \
  --output DP-5 --off \
  --output DP-4 --off \
  --output DP-3 --mode 1920x1080 --pos 1920x0 --rotate left \
  --output DP-2 --mode 1920x1080 --pos 3000x552 --rotate normal \
  --output DP-1 --off \
  --output DP-0 --off

专有驱动程序的端口 DP-3 现在名为 DP1(可能是由英特尔驱动程序?

我想要使​​用专有驱动程序的 DP-2 端口

$ xrandr -q
Screen 0: minimum 8 x 8, current 3000 x 1920, maximum 32767 x 32767
eDP1 connected 1920x1080+0+760 (normal left inverted right x axis y axis) 344mm x 194mm
   1920x1080     60.04*+  40.03    59.93  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1600x900      60.00  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1368x768      60.00  
   1360x768      59.80    59.96  
   1152x864      60.00  
   1280x720      60.00  
   1024x768      60.00  
   1024x576      60.00  
   960x540       60.00  
   800x600       60.32    56.25  
   864x486       60.00  
   640x480       59.94  
   720x405       60.00  
   640x360       60.00  
DP1 connected 1080x1920+1920+0 left (normal left inverted right x axis y axis) 509mm x 286mm
   1920x1080     60.00*+
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1152x864      75.00  
   1024x768      75.08    60.00  
   800x600       75.00    60.32  
   640x480       75.00    60.00  
   720x400       70.08  
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

HDMI1 和 VGA1 无法使用(被基座阻挡)

试图摆脱扩展坞,但遇到了同样的问题——单靠英特尔驱动程序无法驱动 3 个视频输出。

操作系统是 Lubuntu 16.04(从 15.10 升级)

答案1

我不能 100% 确定这能解决你的问题,但你应该查看这个 ubuntu 文档关于混合图形以及如何使用 switcheroo 来激活不同的卡。

它解决了我在尝试使用混合 ATI 索尼笔记本电脑时出现的问题,该笔记本电脑不断丢失英特尔驱动程序而不是 ATI 驱动程序。

希望能帮助到你!

答案2

找到罪魁祸首了。有以下 2 个文件:

/etc/modprobe.d/nvidia-352_hybrid.conf
/etc/modprobe.d/nvidia-346_hybrid.conf

它们两者都有blacklist nouveau,并且alias nouveau off阻止了 nouveau 驱动程序的加载。

移除这两个后,我就能看到所有输出并配置所有 3 个监视器。

相关内容