Compilation de module noyau IGB avec DKMS

Il arrive parfois que le module noyau pour un périphérique n’est pas encore intégré au noyau de notre distribution. Il est donc nécessaire de compiler le driver du périphérique en tant que module noyau. Mais à chaque installation d’un nouveau noyau, il faut recompiler ce module noyau… Pour remédier à cela, on va utiliser DKMS. Il va nous permettre de recompiler automatiquement les sources d’un module noyau lors de la mise à jour du noyau.

Driver réseau compilé par DKMS

Dans mon cas, un problème de carte réseau non reconnue est apparue avec le matériel. Pourtant c’est une carte réseau Intel… Et Intel est très libre avec ces drivers habituellement. Cette carte réseau doit utiliser le driver IGB qui doit être compilé à la main au moment où j’en ai eu besoin. Actuellement, depuis Debian Wheezy 7.5 le driver a été intégré au noyau. Mais cet exemple est bon pour montrer l’utilisation de DKMS.

Installation manuelle du driver IGB

Installation des paquets de base :

Prendre les paquets suivants à la main dans mon cas vu que je n’ai pas de carte réseau :

  • cpp4.6
  • cpp4.7
  • make

Faire un lien de gcc pour utiliser la version 4.6 et pas 4.7 :

Compiler le module noyau :

Supprimer le lien créé plus haut après que la compilation ait réussie.

Redémarrer !

Ensuite installation de gcc-4.7 :

Gérer les modules noyau compilés via DKMS

Cela permet de compiler automatique les sources de modules noyau nouvellement installés. Cela réduit le risque d’erreur en cas de mise à jour noyau et lors de la compilation de ses modules. Le module réseau IGB devant être compilé à chaque nouvelle mise à jour du noyau, il est préférable de gérer la compilation par DKMS.

Création du fichier « dkms.conf » dans ce répertoire /usr/src/igb-5.0.6 :

Les lignes à modifier sont :

  • BUILD_MODULE_NAME[0] : le nom du module
  • PACKAGE_NAME : le même nom
  • PACKAGE_VERSION : la version du module
  • DEST_MODULE_NAME[0] : le nom du module qui sera placé dans /lib/modules/$(uname -r)
  • DEST_MODULE_LOCATION[0] : le sous répertoire approprié pour le module

On ajoute ce module dans DKMS pour le gérer :

Ensuite un build et install :

Voilà c’est tout. A la prochaine mise à jour du noyau, les sources du noyau seront automatiquement recompilés.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Apprenez comment les données de vos commentaires sont utilisées.

En continuant à utiliser le site, vous acceptez l’utilisation des cookies. Plus d’informations

Les paramètres des cookies sur ce site sont définis sur « accepter les cookies » pour vous offrir la meilleure expérience de navigation possible. Si vous continuez à utiliser ce site sans changer vos paramètres de cookies ou si vous cliquez sur "Accepter" ci-dessous, vous consentez à cela.

Fermer