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

Avec la sortie d'Ubuntu 14.04 le 17 avril dernier, j'ai voulu mettre à jour mes ordinateurs qui tournaient sur Ubuntu 13.10. Aucun problème pour mon PC de bureau, mais sur le portable, ce ne fut pas une mince affaire. Je vous explique pourquoi et comment j'ai résolu le problème.

 


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.


Un article à retrouver sur P3ter.fr

Vus : 2083
Publié par P3ter : 34