web-dev-qa-db-fra.com

Comment installer les pilotes Nvidia sur un ordinateur portable Dell Latitude - Ubuntu 16.04

Après la mise à niveau d'Ubuntu 15.10 à 16.04.1, les deux 64 bits, je me suis retrouvé coincé dans une boucle de connexion infinie - chaque fois que je me connectais sur lightdm, après la connexion, l'écran devenait noir, puis revenait à la connexion. écran. La connexion sur tty0 a bien fonctionné. J'ai un ordinateur portable Del Latitude 3350 avec un Core i5 5200U et un Nvidia GeForce 830M. La mise à niveau a décidé que j'avais besoin des pilotes nvidia-361 avant d'utiliser nvidia-352. La plupart des instructions que j'ai rencontrées au début mentionnaient le démarrage sécurisé dans mon BIOS UEFI, mais cela était déjà désactivé (je ne me souviens pas si je l'ai éteint dès que j'ai eu l'ordinateur portable ou s'il a été livré de cette manière par Dell). . Réinstaller et/ou reconfigurer lightdm n'a pas aidé. Ils m'ont au moins orienté vers la désinstallation des pilotes Nvidia, mais ce n'est qu'une solution partielle. Ce n'est pas une copie des autres questions que j'ai vues sur askubuntu, car les étapes qui ont fonctionné pour les autres n'ont pas fonctionné pour moi. Le guide le plus proche est probablement Comment installer des pilotes graphiques sains pour le matériel Nvidia Optimus sur * Ubuntu 16.04? . Cependant, cela ne rend pas le GPU Nvidia utilisable pour moi, j'ai dû installer Bumblebee. Ce guide contient également des liens vers [Bumblebee sur un Lenovo T440p [NVidia GT 730M] avec XUbuntu/Ubuntu 16.04 LTS] { http://lenovolinux.blogspot.co.za/05/05/bumblebee-on-lenovo -t440p-nvidia-gt.html? m = 1 } sauf que le fait de suivre ces instructions m'a en fait laissé sans bourdon en état de fonctionnement.

Après beaucoup de recherches sur Google, j'ai découvert que la solution partielle consistait à désinstaller les pilotes Nvidia. J'ai finalement trouvé ces instructions qui m'ont amené au point de pouvoir me connecter.

Remarque importante avant de continuer, il semble que vous ayez besoin d'installer les pilotes intel-microcode à l'aide de l'onglet Pilotes supplémentaires dans les Paramètres système. Je les avais déjà installés (probablement depuis Ubuntu 15.10 jours), donc je n'ai jamais testé ce qui se passe s'ils ne sont pas installés.

J'ai utilisé les commandes suivantes pour supprimer Bumblebee et les pilotes Nvidia, puis j'ai réinstallé les pilotes Nvidia. Notez que vous devez ajouter le référentiel de pilotes graphiques pour obtenir les derniers pilotes Nvidia:

Sudo apt-get purge .*nvidia.* bumblebee.* .*primus.*
Sudo apt-get --purge autoremove
Sudo add-apt-repository ppa:graphics-drivers/ppa
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get dist-upgrade
Sudo apt install nvidia-367 nvidia-prime nvidia-settings

Cela a entraîné l'installation des packages suivants:

bbswitch-dkms libcuda1-367 libjansson4 nvidia-367 nvidia-opencl-icd-367 nvidia-prime nvidia-settings screen-resolution-extra

Puis j'ai fait rm .nvidia-settings-rc.

À ce stade, les instructions indiquent d’exécuter certains programmes utilisant le processeur graphique. Si je lance clinfo (j'utilise le GPU pour le développement OpenCL), tout fonctionne correctement. Les autres programmes OpenCL fonctionnent également bien. Cependant, si j’exécute glxinfo j’obtiens le résultat suivant:

name of display: :0
Error: couldn't find RGB GLX visual or fbconfig

J'ai continué avec les instructions pour pouvoir faire fonctionner Bumblebee. Sudo prime-select intel était nécessaire car sinon, après le redémarrage, je reviens à la boucle de connexion infinie. Après le redémarrage, j’ai fait Sudo apt install bumblebee suivi de l’édition de /etc/bumblebee/bumblebee.conf pour changer toutes les occurrences de nvidia-current en nvidia-367. J'ai également édité /etc/modprobe.d/bumblebee.conf pour inclure la ligne blacklist nvidia-367. Puisqu'il n'y a pas de paquets nvidia-367-updates ou nvidia-experimental-367 à installer, je ne les ai pas mis en liste noire.

Après le redémarrage, je peux exécuter primusrun clinfo et il affiche la plate-forme Nvidia. L'exécution de programmes OpenCL sur le processeur graphique Nvidia fonctionne également avec primusrun. Cependant, primusrun glxinfo me donne une erreur:

primus: fatal: Bumblebee daemon reported: error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

Utiliser optirun pour quelque chose me donne une erreur similaire, par exemple. optirun clinfo et optirun glxinfo donnent tous les deux:

[  462.796690] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

[  462.796725] [ERROR]Aborting because fallback start is disabled.

J'ai essayé de changer la ligne Bridge= en Bridge=primus et la ligne PMMethod=auto en PMMethod=bbswitch dans /etc/bumblebee/bumblebee.conf. Cela n'a pas aidé.

Comment puis-je obtenir les pilotes de Bumblebee et Nvidia qui fonctionnent ici, il semble qu'aucune série d'instructions ne fonctionne? Bonus: Comment faire fonctionner pleinement les pilotes Nvidia avec prime-select nvidia au lieu de Bumblebee?

1
chippies

Les solutions que j'ai trouvées jusqu'à présent permettent à Bumblebee de fonctionner (principalement) et constituent un moyen de désactiver manuellement le GPU Nvidia lorsqu'il n'est pas utilisé. Je n'ai pas encore obtenu que glxinfo fonctionne avec prime-select nvidia au lieu de optirun.

J'ai commencé à suivre les instructions celles-ci . J'ai ajouté i915 et bbswitch à /etc/modules. J'ai exécuté Sudo gpasswd -a $USER bumblebee et Sudo systemctl enable bumblebeed. Ces deux commandes semblent avoir fini avec succès. Après le redémarrage, le problème reste le même. Si je fais Sudo prime-select nvidia suivi de glxinfo j'obtiens toujours l'erreur couldn't find RGB GLS visual or fbconfig.

À ce stade, j'ai décidé d'installer bumblebee-nvidia - les instructions que j'ai liées à ma question disaient non, le lien ci-dessus l'a toutefois inclus. Étonnamment, cela a résolu mes problèmes principalement. Maintenant, faire optirun glxinfo ou primusrun glxinfo imprime les informations du GPU Nvidia. optirun glxgears et optirun glxheads (ainsi que primusrun) fonctionnent bien. Attention, lors d'une itération précédente en essayant de résoudre ce problème, l'installation de bumblebee-nvidia cassé optirun/primusrun.

La seule chose qui ne fonctionne pas est prime-select nvidia suivi de glxinfo. Ensuite, j'obtiens toujours l'erreur de ne pas pouvoir charger le module "souris". De plus, si je lance cat /proc/acpi/bbswitch je continue d’obtenir 0000:04:00.0 ON, ce qui indique que mon GPU Nvidia est toujours allumé. Lancer lspci | grep NVIDIA renvoie 04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 830M] (rev a2) qui confirme l'adresse PCIe de mon GPU Nvidia.

Le problème d'alimentation, basé sur dmesg | grep bbswitch, était que le module nvidia empêchait le GPU de s'éteindre. Il est possible d'éteindre manuellement le GPU Nvidia en exécutant Sudo rmmod nvidia_drm, Sudo rmmod nvidia_uvm, Sudo rmmod nvidia_modeset et Sudo rmmod nvidia, suivi de Sudo tee /proc/acpi/bbswitch <<<OFF. Pas génial, alors je suis allé à la recherche d’une méthode automatique pour que cela fonctionne.

Pour régler Bumblebee sans éteindre mon GPU Nvidia, j’ai essayé les instructions du projet bumblebee mais sans succès. Plus précisément, mon /etc/modprobe.d/bbswitch.conf contient options bbswitch load_state=0 et j'ai ajouté bbswitch load_state=0 à la fin de /etc/modules. J'ai exécuté Sudo update-initramfs -u, suivi d'un redémarrage, mais cat /proc/acpi/bbswitch indique toujours que le processeur graphique est activé. Pour le moment, je travaille autour de cela en utilisant un script avec les commandes rmmod pour désactiver le GPU Nvidia. L'exécution de tout programme avec optirun ou primusrun recharge automatiquement ces pilotes.

1
chippies