Linux Mint et les pilotes propriétaires...
Je n'ai pas souvent l'occasion de toucher à un Linux Mint, mais j'ai dû aider une personne avec son PC portable. Petit contexte : cette personne passe de Win 11 à Linux Mint, son PC dispose d'un GPU Nvidia 1050.
Contexte et premiers conseils
On migre tout ce qu'on peut sur des services cloud (kDrive, Nextcloud...), on vérifie que les logiciels qu'il utilise sont possibles sur Linux.
On passe sur une nouvelle installation mais par sécurité, on change physiquement de disque NVMe. Il range son disque Windows 11 dans une boîte et il le remplace par un nouveau disque NVMe, acheté pour la migration, pour installer Linux Mint. Ça permet de garder les données et une roue de secours au cas où, et ça rassure !
Installation
Après avoir confectionné la clé USB d'installation de Linux Mint sous Windows (héhé). On éteint le PC, débranche la batterie, ouvre le PC, enlève la batterie, on remplace le disque par le neuf, on rebranche, revisse le tout et on allume !
On sélectionne la clé USB pour le démarrage, et on installe Linux Mint ! On connecte les services cloud (kDrive, Nextcloud...), on se connecte aux service de Firefox pour retrouver mots de passe et marque-pages...
Bref, tout fonctionne bien !
Premiers soucis
Deux choses ne fonctionnent pas dès la remise en route : La souris Razer et l'affichage de son second écran externe sur le port HDMI.
Razer et OpenRazer
On se concentre sur la souris (pas cool au quotidien), on installe OpenRazer, on regarde comment ça fonctionne. On n'y arrive pas, mais on voit bien qu'il peut y avoir un soucis avec SecureBoot. Par soucis de “pouvoir retrouver Windows 11 un jour”, on ne le désactive pas et on passe notre chemin ! (même si on aurait dû creuser le truc...). Parce que, notamment pour la personne, ce n'est pas son soucis le plus bloquant pour son activité.
Écran externe
Là, on rentre dans le dur du sujet. Premier soucis, les pilotes Nvidia : ils sont installés mais ne semblent pas fonctionnels. Pire, on ne les retrouve pas dans les pilotes utilisés alors qu'ils sont bien installés dans la logithèque, qu'on a bien nvidia-settings d'installé...
Réinstallation des pilotes, redémarrage... rien n'y fait ! Quelque soit le pilote installé, on ne voit pas les settings complets dans nvidia-settings (un signe qu'il y a un soucis) et bien entendu, l'écran externe, branché en HDMI, ne fonctionne pas.
Nomodeset
Je me rappelle de mes anciennes expériences avec les pilotes Nvidia, notamment sur ma GTX970, il fallait utiliser le nomodeset=1
dans les paramètres de démarrage du noyau...
sudo nano /etc/default/grub
Puis ajouter le paramètre nomodeset=1
à la fin de la ligne (avant les “) :
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
–> non, ce n'est pas ça... :(
Bug avec le noyau 6.8
Linux Mint 22 est livré avec la série 6.8 des noyaux Linux. Apparemment, un bug affecte le noyau 6.8 et les pilotes propriétaires Nvidia...
Ce bug cause des problèmes sur l'application d'affichage et peut-être également à d'autres endroits. C'est un problème d'Ubuntu en amont. Jusqu'à la publication d'un correctif, voici la solution de contournement.
Ajouter la ligne :
ACTION=="add", SUBSYSTEM=="module", KERNEL=="nvidia_drm", TEST=="/sys/devices/platform/simple-framebuffer.0/drm/card0", RUN+="/bin/rm /dev/dri/card0"
Au fichier suivant :
/lib/udev/rules.d/71-u-d-c-gpu-detection.rules
–> toujours pas :(
Résolution !
Retour sur SecureBoot
Dans les années 2010, les bootkits (pour “boot rootkit”) sont des menaces informatiques dangereuses. Ce sont des logiciels malveillants capables de corrompre le démarrage du système d’exploitation pour se charger très tôt et avoir des privilèges d’exécution très bas. Ils peuvent donc prendre la main sur un système informatique bien avant les antivirus pour contrôler entièrement le système. Ainsi, les attaquants gagnent en persistance sur l’appareil.
Pour se protéger des bootkits, l’UEFI apporte entre autre le mécanisme de SecureBoot (démarrage sécurisé). SecureBoot est un mécanisme de vérification pour garantir que le code lancé par le firmware est fiable avec des clés de chiffrement.
Et donc la solution ! SecureBoot qui ne permet pas de lancer les pilotes tiers non singés ! Tiens ! Sans désactiver SecureBoot (ce qui permet de repasser sous Win 11 si nécessaire)... il est possible d'utiliser des pilotes propriétaires sur Linux, en recréant les clés de sécurité ! C'est la même solution qu'on aurait dû essayer depuis le début ! Comme quoi, il fallait creuser le truc !
Je vous donne la solution !
Vérifier si SecureBoot est présent :
mokutil --sb-state
Recréer les clé SecureBoot :
sudo update-secureboot-policy --enroll-key
(si cela ne fonctionne pas faire :
sudo update-secureboot-policy --new-key
)
Entrer un mot de passe temporaire
Redémarrer le PC
Au démarrage, il vous propose cet écran,
choisissez le second choix Enroll MOK
.
Entrer le mot de passe temporaire, le PC va redémarrer...
Et l'écran sera reconnu ! (le souris aussi au passage ;) )
#Nvidia #Mint #SecureBoot #Razer #Linux