X不会以英特尔板载显卡+ nVIDIA显卡开始

我运行Kubuntu 16.04(刚刚从ISO安装)。 我的电脑有片上英特尔显卡,这是我用于显示器的。 我还有一张GTX 650 Ti Boost卡,我不想用它来显示(仅适用于CUDA工作)。

  • 当安装了nVIDIA驱动程序361.62或367.35(最新版本)时,Xorg加载到黑屏(但是当我运行使用CUDA的二进制文件运行正常时)。
  • 当没有安装nVIDIA驱动程序时,Xorg加载正常; 它加载了nouveau模块(尽管据说我不需要它们) – 但CUDA应用程序不运行。

安装了nVIDIA驱动程序的Xorg错误是:

(EE) NOUVEAU(G0): [XvMC] Failed to initialize extension. ... (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found) 

如果我卸载nVIDIA驱动程序,X再次正常工作(将在这里引用一些日志消息)。

如何安装X工作和CUDA(即安装和运行驱动程序)?

适当的披露:我在unix.SX上询问过关于Debian Stretch的相同问题,但是因为我刚刚切换到Kubuntu而删除了它。


更新:

所以我完全卸载了Nouveau来进一步探索这个问题。 当我生成一个xorg.conf时,我得到(剪切输入设备相关的文件行和部分):

 Section "ServerLayout" Identifier "X.org Configured" Screen 0 "Screen0" 0 0 Screen 1 "Screen1" RightOf "Screen0" EndSection Section "Module" Load "glx" EndSection section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" EndSection Section "Monitor" Identifier "Monitor1" VendorName "Monitor Vendor" ModelName "Monitor Model" EndSection Section "Device" Identifier "Card0" Driver "fbdev" BusID "PCI:0:2:0" EndSection Section "Device" Identifier "Card1" Driver "fbdev" BusID "PCI:2:0:0" EndSection Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection Section "Screen" Identifier "Screen1" Device "Card1" Monitor "Monitor1" SubSection "Display" Viewport 0 0 Depth 24 EndSubSection EndSection 

(请注意,PCI 2:0:0是nVIDIA卡,0:2:0是片上图形。)

现在,

  • 如果我将此配置与nVDIAI驱动程序一起使用 – 空白屏幕。
  • 如果我注释掉有关nVIDIA卡(卡1,监视器1)的部分并更改ServerLayout部分 – 空白屏幕。
  • 如果我禁用加载GLX模块,这会在日志 – 空白屏幕中产生错误(并且不清楚模块加载是否是问题)
  • 我甚至进入了/usr/lib/xorg/modules ,删除了nvidia的libglx.so和/或恢复了非nvidia libglx.so – 仍然是空白屏幕。

我确实得到了不同的错误消息。 有了以上最广泛的子集,我有:

 [ 1952.022] (==) Log file: "/var/log/Xorg.0.log", Time: Wed Aug 10 10:07:20 2016 [ 1952.022] (==) Using config file: "/etc/X11/xorg.conf" [ 1952.022] (==) Using system config directory "/usr/share/X11/xorg.conf.d" [ 1952.022] (==) ServerLayout "X.org Configured" [ 1952.022] (**) |-->Screen "Screen0" (0) [ 1952.022] (**) | |-->Monitor "Monitor0" [ 1952.022] (**) | |-->Device "Card0" [ 1952.022] (**) |-->Input Device "Mouse0" [ 1952.022] (**) |-->Input Device "Keyboard0" [ 1952.022] (==) Automatically adding devices [ 1952.022] (==) Automatically enabling devices [ 1952.022] (==) Automatically adding GPU devices ... 1952.024] (II) xfree86: Adding drm device (/dev/dri/card1) [ 1952.024] (II) xfree86: Adding drm device (/dev/dri/card0) [ 1952.026] (--) PCI:*(0:0:2:0) 8086:0162:1565:110f rev 9, Mem @ 0xf7400000/4194304, 0xd0000000/268435456, I/O @ 0x0000f000/64 [ 1952.026] (--) PCI: (0:2:0:0) 10de:11c2:19da:1281 rev 161, Mem @ 0xf6000000/16777216, 0xe0000000/134217728, 0xe8000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288 [ 1952.026] (II) LoadModule: "glx" [ 1952.026] (II) Loading /usr/lib/xorg/modules/extensions-nvidia-leave-me-alone/libglx.so [ 1952.026] (II) Module glx: vendor="X.Org Foundation" [ 1952.026] compiled for 1.18.3, module version = 1.0.0 [ 1952.026] ABI class: X.Org Server Extension, version 9.0 [ 1952.026] (==) AIGLX enabled [ 1952.026] (II) LoadModule: "fbdev" [ 1952.027] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so [ 1952.027] (II) Module fbdev: vendor="X.Org Foundation" [ 1952.027] compiled for 1.18.1, module version = 0.4.4 [ 1952.027] Module class: X.Org Video Driver [ 1952.027] ABI class: X.Org Video Driver, version 20.0 [ 1952.027] (II) FBDEV: driver for framebuffer: fbdev [ 1952.033] (II) Loading sub module "fbdevhw" [ 1952.033] (II) LoadModule: "fbdevhw" [ 1952.033] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so [ 1952.033] (II) Module fbdevhw: vendor="X.Org Foundation" [ 1952.033] compiled for 1.18.3, module version = 0.0.2 [ 1952.033] ABI class: X.Org Video Driver, version 20.0 [ 1952.033] (**) FBDEV(0): claimed PCI slot 0@0:2:0 [ 1952.033] (II) FBDEV(0): using default device [ 1952.033] (==) FBDEV(0): Depth 24, (==) framebuffer bpp 32 [ 1952.033] (==) FBDEV(0): RGB weight 888 [ 1952.033] (==) FBDEV(0): Default visual is TrueColor [ 1952.033] (==) FBDEV(0): Using gamma correction (1.0, 1.0, 1.0) [ 1952.033] (II) FBDEV(0): hardware: inteldrmfb (video memory: 8100kB) [ 1952.033] (II) FBDEV(0): checking modes against framebuffer device... [ 1952.033] (II) FBDEV(0): checking modes against monitor... [ 1952.033] (--) FBDEV(0): Virtual size is 1920x1080 (pitch 1920) [ 1952.033] (**) FBDEV(0): Built-in mode "current" [ 1952.033] (==) FBDEV(0): DPI set to (96, 96) [ 1952.033] (II) Loading sub module "fb" [ 1952.033] (II) LoadModule: "fb" [ 1952.033] (II) Loading /usr/lib/xorg/modules/libfb.so [ 1952.034] (II) Module fb: vendor="X.Org Foundation" [ 1952.034] compiled for 1.18.3, module version = 1.0.0 [ 1952.034] ABI class: X.Org ANSI C Emulation, version 0.4 [ 1952.034] (**) FBDEV(0): using shadow framebuffer [ 1952.034] (II) Loading sub module "shadow" [ 1952.034] (II) LoadModule: "shadow" [ 1952.034] (II) Loading /usr/lib/xorg/modules/libshadow.so [ 1952.034] (II) Module shadow: vendor="X.Org Foundation" [ 1952.034] compiled for 1.18.3, module version = 1.1.0 [ 1952.034] ABI class: X.Org ANSI C Emulation, version 0.4 [ 1952.034] (==) Depth 24 pixmap format is 32 bpp [ 1952.079] (==) FBDEV(0): Backing store enabled [ 1952.080] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument ... repeated many times [ 1952.082] (==) FBDEV(0): DPMS enabled [ 1952.082] (==) RandR enabled [ 1952.087] (II) SELinux: Disabled on system [ 1952.087] (II) AIGLX: Screen 0 is not DRI2 capable [ 1952.087] (EE) AIGLX: reverting to software rendering [ 1952.101] (EE) AIGLX error: dlopen of /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so failed (/usr/lib/x86_64-linux-gnu/dri/swrast_dri.so: undefined symbol: _glapi_tls_Dispatch) [ 1952.101] (EE) GLX: could not load software renderer [ 1952.101] (II) GLX: no usable GL providers found for screen 0 ... [ 2201.199] (II) config/udev: removing GPU device /sys/devices/pci0000:00/0000:00:01.1/0000:02:00.0/drm/card1 /dev/dri/card1 [ 2201.199] xf86: remove device 0 /sys/devices/pci0000:00/0000:00:01.1/0000:02:00.0/drm/card1 
  • 我也尝试过使用“intel”驱动程序。 这在没有安装nVIDIA驱动程序时有效,但它们是相同的旧空白屏幕。

有趣的是,这个问题是不可解决的,因为它不是真正的问题:实际上,X不是空白筛选; 它是X显示管理器Kubuntu默认为 – sddm

如果用lxdm替换sddm ,你会看到登录界面(至少 – 使用intel驱动程序和编辑过的xorg.conf ;甚至可能没有它),你就可以登录了。

不过,这不是你烦恼的结束。 如果您启动KDE会话,Plasma将毫不客气地崩溃。 在恢复的应用程序出现并正常运行的意义上,会话仍将“正常工作”,并且启动的Alt + F2也将起作用。

但是,如果您安装了另一个桌面环境(例如LXDE)并启动它 – 它应该可以工作。

烦人。

我刚刚在Ubuntu 16.04上成功安装了CUDA,并且只使用了intel skylake gpu进行显示。 官方安装文件现在更好,非常有帮助。 你可以看一下高级设置和常见问题解答。 这解决了我的问题。 我选择了Runfile安装。(第4.2节)以下是我的提示:

  1. 首先删除noveou驱动程序; 用lsmod |grep noveou检查lsmod |grep noveou
  2. 停止X,运行cuda-xx.run --no-opengl-libs
  3. 复制“设备节点validation” 脚本并使其成为启动脚本(我将其复制到/etc/rc*.d/ ,关注命名规则)
  4. 获取上一个脚本,请使用ls /dev/nvidia* 。 如果一切顺利,cuda应该可行。
  5. 现在编辑xorg.conf ,删除nVIDIAvideo卡。

如果你看到[drm]无法打开drm设备为null,请检查并修复第4步。

由于我使用intel skylake,我从01.org安装了drm,guc 固件 。 (请查看lsmod | grep intel )或lspci -k | grep -A 2 VGA lspci -k | grep -A 2 VGAxorg.conf

 Section "Device" Identifier "Card0" Driver "intel" BusID "PCI:0:2:0" EndSection