{"id":509,"date":"2025-04-21T09:13:28","date_gmt":"2025-04-21T09:13:28","guid":{"rendered":"https:\/\/blog.nibelheim.fr\/?p=509"},"modified":"2025-05-04T12:04:44","modified_gmt":"2025-05-04T12:04:44","slug":"linux-drivers-nvidia-et-secure-boot","status":"publish","type":"post","link":"https:\/\/blog.nibelheim.fr\/?p=509","title":{"rendered":"Linux, Drivers nVidia et Secure Boot"},"content":{"rendered":"\n<p>Gr\u00e2ce \u00e0 la magie de ChatGPT, qui elle-m\u00eame ne peut op\u00e9rer que gr\u00e2ce \u00e0 la magie de StackOverflow et autres sites avec de vrais gens dessus, je vous propose aujourd&#8217;hui de signer nos drivers nVidia.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le probl\u00e8me<\/h2>\n\n\n\n<p>Lorsque vous utilisez Secure Boot, les pilotes non sign\u00e9s num\u00e9riquement sont automatiquement bloqu\u00e9s par le syst\u00e8me.<br>Autant les pilotes nVidia en usage c\u00f4t\u00e9 Windows sont a priori sign\u00e9s, sinon nous n&#8217;avons tout simplement pas le souci, autant c\u00f4t\u00e9 Linux, c&#8217;est pas la m\u00eame limonade : peu importe ce que vous installez, les drivers officiels ne sont pas charg\u00e9s et vous vous retrouvez avec un bureau limite en 640&#215;480.<br>Et ceci, c&#8217;est inacceptab&#8217;.<br>Le signe que \u00e7a coince, c&#8217;est ceci :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo modprobe nvidia<\/pre>\n\n\n\n<p>Qui retourne :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">modprobe: ERROR: could not insert 'nvidia': Key was rejected by service<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">La (une?) solution<\/h2>\n\n\n\n<p>Gardez en t\u00eate que j&#8217;ai vaguement pig\u00e9 comment \u00e7a se passe, mais je ne ma\u00eetrise vraiment rien dans ce sujet.<br>De ce que j&#8217;en ai compris, Secure Boot doit enregistrer la cl\u00e9 li\u00e9e \u00e0 un pilote.<br>Soit cette cl\u00e9 est connue, auquel cas le pilote sera charg\u00e9, soit elle ne l&#8217;est pas <em>(inexistante ou inconnue)<\/em> et le pilote n&#8217;est pas charg\u00e9e.<\/p>\n\n\n\n<p>Nous allons donc signer nous-m\u00eames nos pilotes et enregistrer la cl\u00e9 dans Secure Boot <em>(enfin, dans la partie qui g\u00e8re les cl\u00e9s de Secure Boot)<\/em>.<\/p>\n\n\n\n<p>D\u00e9gainez le terminal, puis, dans l&#8217;ordre :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt update<br>sudo apt install mokutil openssl<\/pre>\n\n\n\n<p class=\"has-orange-color has-text-color has-link-color wp-elements-fb0afe4dbca46b52805ef6e7036d4074\">VERY IMPORTANT pour la suite : nous allons cr\u00e9er une paire de cl\u00e9s, que nous allons ensuite inscrire de mani\u00e8re \u00e0 ce qu&#8217;elles soient reconnues par Secure Boot.<br>Cette paire de cl\u00e9s sera prot\u00e9g\u00e9e par un mot de passe le temps de l&#8217;enregistrer dans Secure Boot.<br>Ce mot de passe ne sera demand\u00e9 qu&#8217;une seule fois.<br>MAIS!! Ce processus d&#8217;enregistrement se fait au boot de la machine. Votre clavier a de fortes chances de se retrouver en QWERTY (enfin, ce fut le cas du mien). Et donc, si ce mot de passe est sensible aux caract\u00e8res AZERTY\/QWERTY, attention, car aucun caract\u00e8re n&#8217;est inscrit \u00e0 l&#8217;\u00e9cran!<br>Pensez donc \u00e0 choisir un mot de passe, m\u00eame bidon, avec des caract\u00e8res insensibles \u00e0 la disposition du clavier, genre <strong><em>tyuiop<\/em><\/strong>, par exemple.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cd ~<br>mkdir -p ~\/secureboot-keys<br>cd ~\/secureboot-keys<br>openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj \"\/CN=NVIDIA Secure Boot\/\"<\/pre>\n\n\n\n<p>Choisissez votre mot de passe, comme \u00e9crit ci-dessus, puis :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo mokutil --import MOK.der<\/pre>\n\n\n\n<p>Ceci fait, rebootez, puis s\u00e9lectionnez dans le nouvel \u00e9cran qui s&#8217;affiche <strong>Enroll MOK <\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"570\" src=\"https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image.png\" alt=\"\" class=\"wp-image-511\" style=\"width:543px;height:auto\" srcset=\"https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image.png 800w, https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image-300x214.png 300w, https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image-768x547.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Puis <strong>Continue<\/strong> <em>(ou View Key, si vous voulez voir que la cl\u00e9 s&#8217;appelle bien &#8220;NVIDIA Secure Boot&#8221;&#8230;)<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"641\" height=\"449\" src=\"https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image-1.png\" alt=\"\" class=\"wp-image-512\" style=\"width:448px;height:auto\" srcset=\"https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image-1.png 641w, https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image-1-300x210.png 300w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><\/figure>\n\n\n\n<p>Entrez ensuite le fameux mot de passe :<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"570\" src=\"https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image-3.png\" alt=\"\" class=\"wp-image-514\" style=\"width:573px;height:auto\" srcset=\"https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image-3.png 800w, https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image-3-300x214.png 300w, https:\/\/blog.nibelheim.fr\/wp-content\/uploads\/2025\/04\/image-3-768x547.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Ceci fait, vous pouvez red\u00e9marrer et retourner sous Linux.<\/p>\n\n\n\n<p>Assurez-vous d&#8217;avoir install\u00e9 les drivers qui vous int\u00e9ressent <em>(il risque d&#8217;y avoir besoin de plusieurs essais, mais le plus dur est pass\u00e9)<\/em> :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo apt install nvidia-driver-<em>&lt;tab&gt;<\/em> # pour afficher toutes les versions disponibles<br># Puis une fois la version qui vous int\u00e9resse rep\u00e9r\u00e9e :<br>sudo apt install nvidia-driver-550 dkms -y<\/pre>\n\n\n\n<p>Red\u00e9marrez <em>(\u00e7a sera toujours moche, c&#8217;est normal)<\/em>.<br>Prochaine \u00e9tape, t\u00e9l\u00e9chargez le script suivant <em>(\u00e9videmment ChatGPT)<\/em> et adaptez le chemin de <strong>KEYS_DIR<\/strong> \u00e0 votre propre localisation des cl\u00e9s <em>.der<\/em> et <em>.priv<\/em> g\u00e9n\u00e9r\u00e9es tataleur.<\/p>\n\n\n\n\n\n<p>Bien s\u00fbr, n&#8217;oubliez pas de faire un <strong><em>chmod +x <\/em><\/strong>\u00e0 <strong>sign-nvidia.sh<\/strong> pour que le script s&#8217;ex\u00e9cute.<\/p>\n\n\n\n<p>Enfin,<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo .\/sign-nvidia.sh<\/pre>\n\n\n\n<p>pour que, si tout va bien, la magie s&#8217;op\u00e8re.<br>Red\u00e9marrez (on finit par s&#8217;y faire).<br>Et confirmez par :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo modprobe nvidia &amp;&amp; nvidia-smi<\/pre>\n\n\n\n<p>Qui cette fois devrait renvoyer un tableau au lieu de Key rejected!<\/p>\n\n\n\n<p>En esp\u00e9rant que cela vous ait aid\u00e9!<\/p>\n\n\n\n<p>UPDATE : je me suis rendu compte qu&#8217;apr\u00e8s une grosse mise \u00e0 jour, le script plantait puisque les cl\u00e9s ont a priori \u00e9t\u00e9 supprim\u00e9es de \/root\/secureboot-keys.<br>En mode barbare, j&#8217;ai donc rem\u00e9di\u00e9 \u00e0 cette situation comme ceci :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo mkdir -p \/root\/secureboot-keys &amp;&amp; sudo cp ~\/secureboot-keys\/* \/root\/secureboot-keys\/<\/pre>\n\n\n\n<p>Puis relanc\u00e9<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sudo .\/sign-nvidia.sh<\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gr\u00e2ce \u00e0 la magie de ChatGPT, qui elle-m\u00eame ne peut op\u00e9rer que gr\u00e2ce \u00e0 la magie de StackOverflow et autres sites avec de vrais gens dessus, je vous propose aujourd&#8217;hui de signer nos drivers nVidia. Le probl\u00e8me Lorsque vous utilisez Secure Boot, les pilotes non sign\u00e9s num\u00e9riquement sont automatiquement bloqu\u00e9s [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36,5],"tags":[],"class_list":["post-509","post","type-post","status-publish","format-standard","hentry","category-geekage","category-linux"],"_links":{"self":[{"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/posts\/509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=509"}],"version-history":[{"count":5,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/posts\/509\/revisions"}],"predecessor-version":[{"id":519,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=\/wp\/v2\/posts\/509\/revisions\/519"}],"wp:attachment":[{"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=509"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=509"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nibelheim.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}