Dkms

Salut à tous,

Comme vous le savez, sous Squeeze on a eu il y a quelques jours une MAJ, que je m’étais gardée en réserve, du noyau, des headers, de Linux-base et de la libc. Je viens de la faire, observant soigneusement sous Synaptic ce qui s’affichait dans la petite fenêtre : et là, pas de trace de recompilation du driver Nvidia ; quand au temps, difficile de se faire une idée, car de toutes manières ce n’est pas si long que cela. Dans la /lib/modules, le nvidia.ko a bien changé de date, mais pas de taille, et après tout cela ne prouve rien. Du côté des libs elles-mêmes (libGL.so.XXXX etc.), rien de bien probant non plus quant aux dates.

Bien entendu j’ai tout en place en permanence pour DKMS, y compris les sources Nvidia. J’ai rebooté sans autre forme de procès, full OK. Seulement, je reste méfiant quant à cette affaire de recompilation automatique DKMS. A votre avis, est-ce que cela peut signifier :

  • que quelque chose est vraqué dans mon bazar ?
  • que la recompilation s’est quand même effectuée mais que je suis toujours aussi bigleux ?
  • dernière hypothèse, qu’elle ne s’est pas effectuée mais pour une bonne raison, à savoir qu’elle ne le ferait que quand, justement, le module Nvidia (et, partant, la fraction correspondante des headers) du noyau change, ce qui visiblement n’était pas le cas ?

Thank’s !

A+

Sergio

Il y a deux sortes de mises à jour de noyau :

  1. tu installes carrément un nouveau noyau (nom de paquet différent, rajoute un répertoire dans /lib/modules/)
  2. tu remplaces le noyau existant par un autre équivalent (même nom de paquet, ne change pas le contenu de /lib/modules/)

Il me semble (qu’on me corrige si je dis des bêtises) que DKMS n’est pas déclenché dans le cas (2), ce qui me paraît logique : les API/ABI du noyau ne sont pas stables d’une version à l’autre (c’est pour ça qu’on doit recompiler les pilotes à chaque montée de version du noyau) mais lorsqu’on met simplement à jour un noyau existant ces API/ABI ne changent pas puisqu’il s’agit toujours de la même version du noyau avec juste quelques corrections, et donc on n’a pas besoin de recompiler.

La question est donc de savoir si tu te trouves dans le cas (1- nouveau paquet noyau installé) ou dans le cas (2- paquet noyau existant mis à jour).

Merci à toi : je suis bien dans le second cas, pas de nouveau noyau dans lib/modules/kernel. Cela m’expliquerait mes angoisses du passé, où je recompilais férocement comme un âne à chaque fois. Là j’ai effectivement tenté le coup de rebooter sans recompiler moi-même par apt-get ou même Synaptic. Me voilà tranquille pour un moment, en attendant la franche rigolade du passage en stable Wheezy…

dkms se déclenche dans une mise à jour de noyau (ça marche vraiment bien). Par contre, cette recompilation n’a lieu que si il y a un changement important, en clair si uname -rest modifié. Ça n’est pas toujours le cas, par exemple si seuls certains modules sont modifiés. Si ton uname -rn’a pas changé, alors il n’y a pas eu recompilation, sinon il y a eu recompilation.

Tu dis que nvidia.ko a changé de date, bon peut être qu’il a été recompilé et que le module obtenu est le même au nom du noyau associé près, dans ce cas la longueur est la même. Plus simplement, si ça marche c’est que ton module est correct. Dans la mesure où tu as redémarré, je ne vois pas le pbm.

Salut à toi,

  • “uname -r” inchangé ;
  • or donc ce nvidia.ko serait bien le fruit d’une recompilation… C’est ce qui me semblait, puisque le précédent, si je me souviens bien, avait à l’origine l’heure à laquelle je l’avais compilé (j’étais allé le chercher chez les backports).

Merci François, c’est largement plus précis que mes approximations. :slightly_smiling:

[quote=“Sergio”]Salut à toi,

  • “uname -r” inchangé ;
  • or donc ce nvidia.ko serait bien le fruit d’une recompilation… C’est ce qui me semblait, puisque le précédent, si je me souviens bien, avait à l’origine l’heure à laquelle je l’avais compilé (j’étais allé le chercher chez les backports).[/quote]
    Pas sûr, dkms peut se contenter d’appeler la compilation sur l’arborescence des sources du module, celle ci ne fait tien puisque rien n’a changé, le module .ko est recopié et la date est changée bien qu’il n’y ait pas eu de compilation.

Fort possible, voire probable, en effet.

A+

Sergio