J'ai eu deux upgrades de kernel coup sur coup sur ma Debian 13 : passage en 6.12.101-rt puis 6.12.105-rt. Aucun des deux ne bootait, obligé de retomber à chaque fois sur le 6.12.41 qui, lui, fonctionnait très bien. Écran noir, juste un curseur qui clignote en haut à gauche.
Le symptome fais miroir avec nomodeset
Premier réflexe : enlever quiet splash dans GRUB pour voir défiler les logs, et tester nomodeset pour vérifier si le souci venait de l'affichage plutôt que d'un plantage du système entier. Ça a confirmé la piste graphique. Sur ce genre de panne, journalctl -b -1 -k (les logs kernel du boot précédent, une fois revenu sur un système qui démarre) est le réflexe à avoir avant de partir dans tous les sens.
Mais le vrai indice était ailleurs :
root@deb13:~$ dkms status
nvidia/590.48.01, 6.12.41+deb13-amd64, x86_64: installed
Une seule ligne. Le module propriétaire Nvidia n'avait jamais été compilé pour les deux nouveaux kernels. Logique, sans driver graphique chargé, pas d'affichage.
Pourquoi DKMS n'a pas suivi tout seul
DKMS est censé rebuild automatiquement à chaque nouveau kernel installé, via un hook postinst. Ici, le rebuild n'a jamais eu lieu, parce que les headers correspondants n'étaient pas installés. Et la première tentative pour les installer a échoué :
Erreur : Impossible de trouver le paquet linux-headers-6.12.101-rt-amd64
Le nom de paquet supposé était presque bon, il manquait juste le +deb13 que Debian glisse dans ses noms de version. Un coup de apt-cache search linux-headers | grep rt a suffit à retrouver le nom exact : linux-headers-6.12.101+deb13-rt-amd64.
La correction
sudo apt install linux-headers-6.12.101+deb13-rt-amd64 linux-headers-6.12.105+deb13-rt-amd64
sudo dkms install -m nvidia -v 590.48.01 -k 6.12.101+deb13-rt-amd64
sudo dkms install -m nvidia -v 590.48.01 -k 6.12.105+deb13-rt-amd64
Compilation propre sur les deux, dkms status affiche bien les trois lignes installed, et les deux kernels bootent normalement à partir de là.
Un détail important : PREEMPT_RT
Ce n'est pas anodin que ce soit arrivé sur des kernels -rt. PREEMPT_RT change suffisamment l'intérieur du kernel (spinlocks préemptibles, IRQ threadées) pour que les modules propriétaires comme celui de Nvidia nécessitent un build à part, distinct du kernel standard. Sur un kernel classique, DKMS aurait probablement suivi sans accroc dès l'installation des headers standards. C'est bon à savoir avant de basculer sur du RT sans raison précise : ça ajoute un point de friction supplémentaire à chaque upgrade.
Au final, rien d'exotique là-dedans, juste un nom de paquet Debian mal deviné qui a bloqué toute la chaîne. Le réflexe à garder : quand un kernel neuf ne boote plus en affichage mais que le système répond ailleurs (TTY, SSH), dkms status avant toute autre piste.