web-dev-qa-db-fra.com

X ne commencera pas avec les cartes graphiques Intel intégrées + la carte nVIDIA

Je lance Kubuntu 16.04 (je viens de l’installer à partir de l’ISO). Mon ordinateur est équipé de graphiques Intel intégrés, ce que j'utilise pour l'affichage. J'ai aussi une carte GTX 650 Ti Boost que je ne souhaite pas utiliser pour l'affichage (uniquement pour le travail CUDA).

  • Lorsque le pilote nVIDIA 361.62 ou 367.35 (le plus récent) est installé, Xorg se charge sur un écran noir (mais lorsque j'exécute des fichiers binaires utilisant CUDA).
  • Lorsque le pilote nVIDIA n'est pas installé, Xorg se charge correctement. il charge les modules nouveau (même si je suppose qu'ils n'en ont pas besoin), mais les applications CUDA ne fonctionnent pas.

L'erreur Xorg avec le pilote nVIDIA installé est la suivante:

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

Si je désinstalle le pilote nVIDIA, X fonctionne à nouveau correctement (citera quelques messages de journal ici bientôt).

Comment puis-je faire fonctionner X et installer CUDA (pilotes installés et fonctionnels)?

Dû divulgation: J'avais posé la même question à propos de Debian Stretch sous unix.SX, mais je l'ai effacée depuis que je suis passé à Kubuntu.


Mise à jour:

J'ai donc complètement désinstallé Nouveau pour explorer davantage cette question. Lorsque je génère un xorg.conf, je reçois (lignes et sections de fichiers écrêtées liées au périphérique d'entrée et coupées):

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

(Notez que PCI 2: 0: 0 est la carte nVIDIA et 0: 2: 0 est le graphique intégré.)

Maintenant,

  • Si j'utilise cette configuration avec les pilotes nVDIAI - écran vide.
  • Si je commente les sections concernant la carte nVIDIA (carte 1, moniteur 1) et modifie la section ServerLayout - écran vide.
  • Si je désactive le chargement du (des) module (s) GLX, ce qui génère des erreurs dans l’écran de journal - vierge (le problème est lié au chargement du module)
  • Je suis même allé dans le /usr/lib/xorg/modules, en supprimant le fichier libglx.so de nvidia et/ou en restaurant le fichier non-nvidia libglx.so - toujours, un écran vide.

Je reçois cependant des messages d'erreur différents. Avec le sous-ensemble le plus étendu de ce qui précède, j'ai:

[  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
  • J'ai également essayé de forcer l'utilisation du pilote "intel". Cela fonctionne lorsque les pilotes nVIDIA ne sont pas installés, mais qu’ils ont toujours le même écran vierge.
2
einpoklum

Il est intéressant de noter que ce problème ne peut pas être résolu car ce n’est pas vraiment le problème: en fait, X n’est pas filtré à blanc; Par défaut, le gestionnaire d’affichage X Kubuntu est - sddm.

Si vous remplacez sddm par, par exemple, lxdm, vous verrez l'écran de connexion (du moins - en utilisant le pilote intel et le xorg.conf modifié; probablement même sans écran), et vous Serez capable de vous connecter.

Ce n'est pas la fin de vos problèmes, cependant. Si vous démarrez une session KDE, Plasma se plantera sans ménagement. La session fonctionnera toujours dans le sens où les applications restaurées apparaîtront et fonctionneront correctement, et Alt + F2 pour le lancement fonctionnera également.

Si, par contre, vous installez un autre environnement de bureau (par exemple, LXDE) et démarrez-le, cela devrait fonctionner.

Ennuyeux.

0
einpoklum

Je viens d'installer CUDA sur Ubuntu 16.04 avec succès, et en n'utilisant que skylake intel pour son affichage. L'installation officielle document est meilleure maintenant, vraiment utile. Vous devriez jeter un oeil à la configuration avancée et aux Faq. Cela règle mon problème. J'ai choisi l'installation de Runfile. (Section 4.2) Voici mes conseils:

  1. Retirez le pilote Noveou en premier; vérifier avec lsmod |grep noveou
  2. arrêtez X, lancez cuda-xx.run --no-opengl-libs
  3. copier la "vérification du noeud de périphérique" script et en faire un script de démarrage (je le copie dans /etc/rc*.d/, soin de la règle de nommage)
  4. source le script précédent, vérifiez avec ls /dev/nvidia*. Si tout va bien, cuda devrait fonctionner.
  5. maintenant, éditez xorg.conf, en retirant la carte vidéo nVIDIA.

si vous voyez que [drm] n'a pas réussi à ouvrir le périphérique drm pour null, vérifiez et corrigez-le à l'étape 4.

Depuis que j'utilise intel skylake, j'installe drm, guc firmware de 01.org. (vérifiez avec lsmod | grep intel) ou lspci -k | grep -A 2 VGA Dans xorg.conf,

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