by Haruka :: 2014/05/18 :: 4 min read
#ubuntu #nvidia #cli #tutoriels

Comment Nvidia Optimus a planté ma mise à jour d’Ubuntu 14.04 (MAJ)


MAJ 18/05/2014 : Grâce aux commentaires des lecteurs, j’ai testé une petite astuce qui permet de résoudre le problème plus facilement.


Après avoir fait la mise à jour sur mon PC de bureau, je la lance sur le portable. Je redémarre et à l’affichage de lightDM (l’écran d’ouverture de session), je me retrouve avec un bel écran noir, et une erreur m’indiquant un problème avec le driver graphique nouveau. Je comprend que c’est encore Nvidia Optimus qui me joue des tours…

J’évoquais déjà cette technologie dans d’autres articles et comment Bumblebee m’avait permis de faire fonctionner Ubuntu. Mais avec Ubuntu 14.04, de nouveau paquets dans les dépôts officiels, permettent de supporter Nvidia Optimus. Mais à priori, ce n’est pas encore pour moi.

En effet, avec la mise à jour vers Ubuntu 14.04, le paquet nvidia-prime, et ses dépendances ce sont installés. Ce paquet doit permettre d’assurer le support de Nvidia Optimus et de rendre Bumblebee inutile. Malheureusement, je comprend très vite que mon erreur au redémarrage est bien lié à nvidia-prime.

Je relance le PC en safemode, en spammant la touche “Echap” au démarrage. J’entre en mode console et tente un apt-get purge nvidia* bumblebee*. La commande m’affiche rapidement une erreur, un lock sur apt-get existe déjà. Malheureusement le safemode ne me permet pas d’aller le supprimer, car le système est monté en lecture seule…

J’ai plus qu’une solution, faire un chroot du système via un live CD.

MAJ : Il est possible de monter les partitions en écriture, via la commande : mount -o remount,rw / . Ainsi, il n’y aura pas  l’erreur décrite ci-dessus et le chroot n’est alors plus nécessaire.

Le principe est simple. Il faut commencer par démarrer le PC avec un live CD. Pour ma part, j’ai utilisé une Ubuntu 13.04, car elle n’inclut pas le fameux nvidia-prime. D’ailleurs, je ne peux plus démarrer mon PC portable sur une live 13.10 ou 14.04, à cause de ce même paquet… Une fois la live lancée, ouvrez un terminal. Il suffit de monter les partitions de votre disque dur. Pour cela passez root (sudo -i) et lancez les commandes ci-dessous.

Je possède deux partitions, /dev/sda1 pour le système et /dev/sda2 pour le /home.

mkdir /media/system

mount /dev/sda1 /media/system

mount /dev/sda2 /media/system/home

mount –bind /dev /media/system/dev

mount -t proc /proc /media/system/proc

mount –bind /run  /media/system/run

mount -t sysfs /sys /media/system/sys

Le système est monté, vous pouvez lancer le chroot :

chroot /media/system /bin/bash

Bon, je vais enfin pouvoir avancer. Je peux maintenant désinstaller nvidia et bumblebee pour repartir sur une base propre. Une fois nettoyés, je réinstalle bumblebee.

sudo apt-get purge nvidia* bumblebee*

sudo apt-get install bumblebee bumblebee-nvidia

On quitte le chroot avec la commande exit et on peut redémarrer sur le disque dur.

J’arrive enfin sur Ubuntu 14.04, sans problème…

Je note quand même les énormes efforts réalisés par Canonical, Nvidia et la communauté, pour pouvoir supporter Nvidia Optimus sous Linux, mais pour mon cas ça ne remplace pas encore Bumblebee. nvidia-prime fonctionne pourtant pour certains modèles de PC portable, mais je suis assez inquiet quant aux prochaines mises à jour, même si pour le moment, nvidia-prime n’est pas venu m’embêter. Mais ce qui est sûr, c’est qu’à la prochaine mise à jour d’Ubuntu, je risque de devoir recommencer tout le procéder que j’ai décrit, à moins que mon PC finisse par être correctement pris en charge par nvidia-prime.