Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

26.5. Définir les paramètres de module

Tout comme le noyau, les modules peuvent également prendre des paramètres qui changeront leur comportement. La plupart du temps, les paramètres par défaut fonctionnent correctement. Mais occasionnellement, il peut être nécessaire ou souhaitable de définir des paramètres personnalisés pour un module. Comme les paramètres ne peuvent pas être définis de manière dynamique pour un module déjà chargé dans un noyau en cours d'exécution, deux méthodes différentes de les définir s'offrent à vous.
  1. Vous pouvez décharger toutes les dépendances du module dont vous souhaitez définir les paramètres, déchargez le module en utilisant modprobe -r, puis chargez-le avec modprobe, ainsi qu'avec une liste de paramètres personnalisés. Cette méthode, couverte dans cette section, est souvent utilisée lorsque le module ne possède que peu de dépendances, ou pour tester différentes combinaisons de paramètres sans les rendre persistants.
  2. Alternativement, vous pouvez répertorier les nouveaux paramètres dans un fichier nouveau ou existant dans le répertoire /etc/modprobe.d/. Cette méthode rend les paramètres du module persistants en assurant qu'ils soient définis chaque fois que le module est chargé, comme après chaque redémarrage, ou après la commande modprobe. Même si les informations suivantes sont des conditions préalables, cette méthode est couverte dans la Section 26.6, « Chargement de modules persistants ».

Exemple 26.5. Fournir des paramètres optionnels lors du chargement d'un module de noyau

Vous pouvez utiliser modprobe pour charger un module de noyau avec des paramètres personnalisés en utilisant le format de ligne de commande suivant :
~]# modprobe module_name [parameter=value] 
Lors du chargement d'un module avec des paramètres personnalisés sur la ligne de commande, n'oubliez pas que :
  • Vous pouvez saisir plusieurs paramètres et valeurs en les séparant par des espaces.
  • Certains paramètres de module s'attendent à une liste de valeurs séparées par des virgules comme arguments. Lorsque la liste des valeurs est saisie, n'insérez pas d'espace après les virgules, ou modprobe n'interprétera pas correctement les valeurs qui suivent les espaces en tant que paramètres supplémentaires.
  • La commande modprobe fonctionne silencieusement avec un statut de sortie de 0 si :
    • le module est bien chargé, ou
    • le module est déjà chargé dans le noyau.
    Ainsi, vous devez vous assurer que le module n'est pas déjà chargé avant de tenter de le charger avec des paramètres personnalisés. La commande modprobe ne recharge pas automatiquement le module, ou ne vous alerte pas automatiquement qu'il est déjà chargé.
Voici les étapes recommandées pour définir des paramètres personnalisés, puis charger un module de noyau. Cette procédure illustre les étapes utilisant le module e1000e, qui est le pilote réseau des adaptateurs réseau Intel PRO/1000 :

Procédure 26.1. Charger un module de noyau avec des paramètres personnalisés

  1. Veuillez commencer par vous assurer que le module n'est pas chargé dans le noyau :
    ~]# lsmod |grep e1000e
    ~]# 
    La sortie indiquera que le module est déjà chargé dans le noyau, dans lequel cas vous devrez tout d'abord le décharger avant de continuer. Veuillez consulter la Section 26.4, « Décharger un module » pour obtenir des instructions sur la manière de le décharger en toute sécurité.
  2. Chargez le module et répertoriez tous les paramètres personnalisés après le nom du module. Par exemple, si vous souhaitez charger le pilote réseau Intel PRO/1000 avec un taux d'accélération d'interruptions défini sur 3000 interruptions par seconde pour la première, seconde et troisième instance du pilote, et activer le débogage, vous devrez exécuter en tant qu'utilisateur root :
    ~]# modprobe e1000e InterruptThrottleRate=3000,3000,3000 debug=1
    Cet exemple illustre le transfert de plusieurs valeurs sur un paramètre unique en les séparant avec des virgules et en omettant tout espace les séparant.