gratifiant > linux.debian.user.french

Olivier (20/09/2019, 14h20)
Bonjour,

Il y a quelques semaines, j'ai installé une nouvelle machine sous Debian
Stretch.
Cette machine utilisait une interface Ethernet Intel I219-V.

Cette interface est supportée dans Buster mais pas dans Stretch.

Pour pouvoir utiliser cette interface dans Stretch j'ai téléchargé les
sources du pilote avant de les compiler sur la machine cible (cf [1]).
L'opération m'a permis d'utiliser la carte réseau normalement.

Quelques jours plus tard, après un apt-get dist-upgrade, la carte a cessé
de fonctionner.
J'ai ré-installé les paquets nécessaires à la compilation (je les avais
enlevés), j'ai recompilé et ça a re-fonctionné.

Depuis, je me suis interdit de mettre à jour le noyau et me suis juré
d'éclaircir ce mystère.

1. Comment revenir de façon fiable au dernier état précédent une commande
"apt-get dist-upgrade" ?

2. Est-il possible d'automatiser la re-compilation d'un logiciel après
chaque mise-à-jour du noyau ?

3. Existe-t-il un dépôt Debian binaire suivant d'un peu plus près les
pilotes réseau d'Intel ?

4. Conseils ? Suggestions ?

Slts

[1]
Christophe (20/09/2019, 18h50)
Hello,

Le 20/09/2019 à 14:12, Olivier a écrit :
> J'ai ré-installé les paquets nécessaires à la compilation (je les avais
> enlevés), j'ai recompilé et ça a re-fonctionné.
> 2. Est-il possible d'automatiser la re-compilation d'un logiciel après
> chaque mise-à-jour du noyau ?


Ca s'appelle DKMS.
Un exemple (Ubuntu mais s'applique à Debian également) ici avec l'e1000e :


Bonne lecture,
Christophe.
Olivier (24/09/2019, 11h00)
Hello,

Le lien [2] donne des infos qui me semblent bien correspondre à ce queje
recherche.
Cela repose sur DKMS.

Je serai très curieux de recueillir ici des retours d'expérience sur
l'utilisation de DKMS en production.

[2]

Le ven. 20 sept. 2019 à 14:12, Olivier <oza.4h07> a écrit :
[..]
Étienne Mollier (24/09/2019, 20h30)
Olivier, au 2019-09-24 :
> Je serai très curieux de recueillir ici des retours
> d'expérience sur l'utilisation de DKMS en production.


Bonjour,

Je ne sais pas si ça compte comme un « usage en production »,
mais un certain nombre de paquets Debian fournissent des pilotes
tiers non disponibles directement dans Linux, mais qui
s'installent justement via DKMS. Ces paquets ont en général un
nom qui termine en "-dkms", quelques exemples au hasard tirés de
la commande "apt search '.*-dkms$'" :
- aufs-dkms,
- nvidia-kernel-dkms,
- virtualbox-dkms,
- zfs-dkms,
- etc.

Pour les configurations qui ne dévient pas de Debian, il n'y a
pas de problèmes particuliers à noter. Mais s'il y en a, alors
ça vaut le coup de les rapporter dans le système de suivi de
bogues.

Pour les configurations un peu plus sioux, ou de test et
développement, ou quand quelque chose plante lors d'une mise à
jour du pilote ou du noyau, le comportement de DKMS peut parfois
être assez opaque. Les journaux de compilation, nécessaires à
la phase de débogue, sont cachés au fin fond d'une arborescence
de fichiers qui, malgré la convention de nommage, peuvent être
écrasés par la compilation suivante, notamment en tentant de
construire un pilote donné sur plusieurs noyaux différents.

D'autre part, la commande "dkms status" a une sortie qui n'est
pas forcément très claire sur le statut des pilotes en fonction
des noyaux, pour indiquer les combinaisons qui marchent, et
celles qui ne marchent pas. De mémoire, il me semble que sont
indiqués: (1) les pilotes qui se sont proprement installés, et
(2) ceux qui ont été proprement compilés sans être installés.
Les pilotes qui n'ont pas passé l'étape de la compilation ne
sont pas indiqués, et les pilotes qui ne sont que compilés ne
sont pas pour autant utilisables: il faut parfois bricoler un
peu avec la commande "dkms install" pour pousser le tout.

Enfin, dernier point, le pilote doit supporter d'être installé
via DKMS, ce qui consiste à minima en un fichier dkms.conf avec
les méta-informations nécessaires à la compilation du paquets,
sa version, sa compatibilité avec les différents niveaux de
noyau, etc.

Pour mes machines personnelles, je n'ai pas eu besoin de pilotes
DKMS jusqu'à présent, du coup je suis un peu en mal d'êtreplus
précis ; mais c'est ce dont je me souviens de mes petits travaux
antérieurs.

L'outil n'a pas forcément très bonne réputation, mais c'est l'un
des seuls disponibles, avec "module-assistant" si j'en croie le
cahier des administrateurs Debian section 8.10.5 [1], pour
empaqueter les pilotes tiers. DKMS a le mérite d'exister donc.

[1]

La « bonne méthode » consisterait a porter le pilote directement
dans le code source du noyau (drivers/) afin qu'il puisse
bénéficier automatiquement des mises à jour rendues nécessaires
par la façon dont le code source de Linux lui-même évolue ; les
développeurs noyaux passent des scripts quand l'API change, ce
qui peut arriver à chaque nouvelle version stable.

Amicalement,
Discussions similaires