Ubuntu 16.04
Sortie de uname -a
:
Linux Host 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Grade de bureau:
Ce que je veux:
Mon problème:
nvidia-smi
ni nvidia-settings
ne fonctionnent et je ne peux pas contrôler mon GPU nvidia (les erreurs sont citées plus bas)Mon histoire:
Après le bref résumé de mon problème, je veux plonger dans le sujet; Depuis la sortie de Ubuntu 16.04, je bricole et n'atteins pas les objectifs suivants:
Un bref résumé de mon état initial:
J'ai installé les pilotes propriétaires pour nvidia et intel (intel-microcode et nvidia-361.42) via apt-get et un démarrage sécurisé désactivé via mokutul --disable-validation.
Ensuite, j'ai configuré nvidia-prime pour utiliser la carte intel.
Ensuite, j'ai modifié mon fichier xorg.conf pour qu'il ne contienne qu'un seul écran avec Intel GPU et le pilote Intel. (demander des détails si nécessaire)
Lors du test du rendu du processeur graphique avec Blender, tout semblait aller pour le mieux, sauf que je ne pouvais obtenir aucune statistique sur mon gpu et que les paramètres nvidia semblaient vides.
Les erreurs:
Sudo nvidia-smi
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system:
Please also try adding directory that contains libnvidia-ml.so to your system PATH.
Ce que j’ai appris jusqu’à présent à travers tous mes essais et recherches depuis la publication (version courte, demandez des détails à tout moment):
Mes deux problèmes sont liés mais pas les mêmes:
Nvidia-settings Vide:
Nvidia-smi ne fonctionne pas:
/usr/lib/nvidia-361/ld.so.conf
(GPU nvidia sélectionné) ou /usr/lib/nvidia-361-prime/ld.so.conf
(intel GPU sélectionné)Mon assomption:
Mes Essais:
Mes questions:
1) Comment puis-je résoudre le problème nvidia-smi? Suis-je sur la bonne voie? Quelqu'un at-il des instructions pour que je puisse procéder?
2) Est-il possible d'activer le contrôle des ventilateurs et d'autres contrôles pour le gpu nvidia (coolbits dans xorg.conf) sans serveur X sur le gpu (sans écran pour le gpu dans xorg.conf)?
Un grand merci d'avance pour vos réponses. J'ai littéralement peigné le web, le peigne étant mon problème.
Si quelque chose d’important me manquait, dites-le-moi et n'hésitez pas à demander les fichiers de log, etc.
MERCI
La réponse acceptée utilise le serveur X pour activer les périphériques Nvidia. Ce n'est pas nécessaire et cela signifie que le serveur X utilisera une partie de la mémoire de la carte.
À la place, nvidia-modprobe
doit être installé comme décrit dans le pilote FAQ (vous pouvez le trouver à l’adresse suivante).
Donc, ma solution recommandée est de:
1) Installez le dernier pilote Nvidia via le fichier d’exécution à partir de ftp://download.nvidia.com/XFree86/Linux-x86_64/ avec l’indicateur --no-opengl-files
et --dkms
.
2) Installez la version nvidia-modprobe
correspondante via make all
et Sudo make install
à partir de ftp://download.nvidia.com/XFree86/nvidia-modprobe/
L’indicateur --dkms
permet de s’assurer que le module du noyau est recompilé lorsque vous mettez à niveau votre noyau.
J'ai (créateur de ce post) trouvé la solution dont j'ai besoin par moi-même!
Je vais maintenant expliquer la solution à quiconque se trouve dans une situation similaire et a besoin de cette aide!
SOLUTION:
INSTALLER LE PILOTE NVIDIA VIA LE RUNFILE FOURNI AT http://www.nvidia.com/object/unix.html AVEC FLAG "--no-opengl-files" !!
Cela empêche non seulement les fichiers opengl de nvidia de remplacer les fichiers mesa existants, mais installe également le pilote sans nvidia prime!
Ainsi, tous mes problèmes sont résolus, simplement en installant le pilote manuellement, au lieu de l'installer à partir des référentiels. Le paquet des référentiels est "Optimus-Friendly" et regroupe donc tous les fauteurs de troubles inutiles.
DEUXIÈMEMENT
le xorg.conf doit être étendu avec un autre écran pour le ou les GPU dédiés afin qu'il/ils aient/aient des entrées dans nvidia-settings.
le mien ressemble à ça
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "intel" 0 0
Screen 1 "nvidia550ti" 3000 0
EndSection
Section "Device"
Identifier "intel"
Driver "intel"
BusID "PCI:0@0:2:0"
EndSection
Section "Device"
Identifier "nvidia550ti"
Driver "nvidia"
BoardName "GeForce GTX 550ti"
BusID "PCI:2@0:0:0"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
Section "Screen"
Identifier "nvidia550ti"
Device "nvidia550ti"
Option "AllowEmptyInitialConfiguration" "on"
Option "Coolbits" "4"
Option "ConstrainCursor" "on"
EndSection
J'ai réinstallé les pilotes nvidia sans OpenGL comme mentionné dans les solutions ci-dessus, mais cela n'a pas fonctionné pour moi. De plus, ces solutions sont assez peu satisfaisantes, car elles impliquent de supprimer certaines capacités des pilotes (opengl).
J'ai trouvé une solution beaucoup plus simple, pour laquelle vous n'avez pas besoin de réinstaller le pilote:
export LD_LIBRARY_PATH=/usr/lib/nvidia-387:$LD_LIBRARY_PATH
Notez que, selon le pilote installé, vous devrez peut-être ajouter un autre dossier dans le chemin de votre bibliothèque, par exemple / usr/lib/nvidia-384.
Vous pouvez ajouter cette commande au fichier ~/.bashrc pour exporter automatiquement le chemin lors du chargement d'un nouveau bash.
J'ai obtenu la configuration que vous voulez (je le voulais aussi;)):
- le GPU intel doit exécuter le xserver et mon moniteur, qui est connecté au DP intégré
- le GPU nvidia ne doit être utilisé que pour le calcul spécifique à CUDA, etc.
- contrôle total sur le gpu de nvidia (temps réel, statistiques, vitesse des ventilateurs temporaires ...)
en utilisant bumblebee
name__.
Mais avant d'entrer dans certains détails, je dois vous avertir que lorsque vous modifiez la configuration de nvidia-settings ou de xorg.conf ou de nvidia prime, vous devez redémarrer votre système (vous le savez peut-être déjà). Ne pas redémarrer pourrait laisser le système dans un état incohérent.
Dans ma configuration, je n'ai pas touché xorg.conf
. Cela a toujours été source de douleur pour moi. S'il vous plaît laissez à l'état d'origine. Si vous ne souhaitez pas effectuer une nouvelle installation, vous pouvez trouver des sauvegardes dans /etc/X11/
(ls /etc/X11/xorg.conf*
).
La première étape consiste à essayer de faire fonctionner nvidia-settings
. Si vous y parvenez, vous pouvez utiliser nvidia PRIME pour basculer vers le processeur graphique intel, comme vous le dites déjà. Avoir le point principal nvidia sur le processeur graphique intel est nécessaire si vous souhaitez utiliser le processeur graphique NVIDIA uniquement pour les calculs CUDA (cela est particulièrement nécessaire si vous souhaitez utiliser le débogueur cuda cuda-gdb
).
Après cela, vous pouvez essayer d’installer bumblebee :
Sudo apt install bumblebee
Redémarrer. Vous pouvez surveiller l’état du bourdon en utilisant
Sudo service bumblebeed status
ou
bumblebeed -vv
Ce que bumblebee fait, c’est d’activer le GPU NVIDIA et d’essayer d’insérer le pilote nvidia dans le noyau uniquement lorsque cela est nécessaire. Vous pouvez utiliser bumblebee en utilisant optirun
en attente de la commande à exécuter.
Pour que bumblebee fonctionne, j'ai dû modifier manuellement /etc/bumblebee/bumblebee.conf
afin de définir correctement le nom et le chemin du pilote nvidia.
[...]
Driver=nvidia
[...]
KernelDriver=nvidia_361
[...]
LibraryPath=/usr/lib/nvidia-361:/usr/lib32/nvidia-361
Ensuite, après un Sudo service bumblebeed restart
, j'ai réussi à activer le système bumblebee.
En fait, nvidia-smi
renvoie
$ nvidia-smi
NVIDIA-SMI couldn't find libnvidia-ml.so library in your system. Please make sure that the NVIDIA Display Driver is properly installed and present in your system:
Please also try adding directory that contains libnvidia-ml.so to your system PATH.
mais optirun nvidia-smi
:
$ optirun nvidia-smi
Fri Jun 17 11:47:48 2016
+------------------------------------------------------+
| NVIDIA-SMI 361.42 Driver Version: 361.42 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 970M Off | 0000:01:00.0 Off | N/A |
| N/A 53C P1 18W / N/A | 18MiB / 3071MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 20678 G /usr/lib/xorg/Xorg 4MiB |
+-----------------------------------------------------------------------------+
J'espère que cela t'aides.
principalement pour me rappeler: dans Ubuntu 18.04, utiliser igpu pour le rendu et nvidia gpu pour cuda, installer les pilotes nvidia par défaut, ouvrir nvidia-settings et configurer Intel gpu. Après cela, liste noire les pilotes nouveau et une partie des pilotes nvidia:
ouvrez /etc/modprobe.d/blacklist-nvidia.conf et commentez les lignes de la manière suivante:
#blacklist nvidia
blacklist nvidia-drm
#blacklist nvidia-modeset
#alias nvidia off
alias nvidia-drm off
#alias nvidia-modeset off
après cela, ouvrez /etc/modprobe.d/blacklist-nvidia-nouveau.conf et ajoutez ces lignes:
blacklist nouveau
options nouveau modeset=0
pour être vraiment sûr que les nouveaux sont désactivés, vous pouvez également les ajouter à la liste noire dans /etc/modprobe.d/blacklist.conf: à la fin, ajoutez:
#Blacklist nouveau drivers
blacklist nouveau
blacklist lbm-nouveau
alias nouveau off
alias lbm-nouveau off
puis redémarrez.
tapez nvidia-smi
pour vérifier que nvidia est chargé et saisissez lspci -nnk | grep -iA2 3D
pour vérifier que le pilote utilisé est nvidia et non nouveau.