User Tools

Site Tools


howto:desactitver-journalisation-sur-console

Comment désactiver les messages ou la journalisation sur la console/les terminaux virtuels

Table of Contents

Un pilote est bruyant. Il imprime des messages à la console toutes les 10 à 30 secondes. Donc, lorsqu'on travaille sur VT1 ou quelque chose du genre, on reçoit des messages qui défilent tout le temps. Existe-t-il un moyen de désactiver cette fonctionnalité ?.

printk

printk() est l'une des fonctions les plus connues du noyau Linux. C'est l'outil standard dont on dispose pour imprimer les messages et généralement le moyen le plus basique de traçage et de débogage.

Tous les messages printk() sont imprimés dans le tampon de journal du noyau, qui est un tampon en anneau exporté vers l'espace utilisateur via /dev/kmsg. La façon habituelle de le lire est d'utiliser dmesg.

printk permet de spécifier le type et l'importance du message envoyé. Ce spécificateur est appelé le niveau de journalisation.

Le niveau de journalisation spécifie l'importance d'un message. Le noyau décide s'il doit afficher le message immédiatement (en l'imprimant sur la console actuelle) en fonction de son niveau de journalisation et du niveau de journalisation_console actuel (une variable du noyau). Si la priorité du message est plus élevée (valeur de niveau de journalisation inférieure) que console_loglevel, le message sera imprimé sur la console.

0 KERN_EMERG Une condition d'urgence ; le système est probablement mort
1 KERN_ALERT Un problème qui nécessite une attention immédiate
2 KERN_CRIT Une condition critique
3 KERN_ERR Une erreur
4 KERN_WARNING Un avertissement
5 KERN_NOTICE Une condition normale, mais peut-être notable
6 KERN_INFO Un message d'information
7 KERN_DEBUG Un message de débogage, généralement superflu
KERN_DEFAULT
c KERN_CONT pr_cont()

Si le niveau de journal est omis, le message est imprimé avec le niveau KERN_DEFAULT.

On peut vérifier le niveau de console_log actuel avec :

cat /proc/sys/kernel/printk
4 4 1 7

Le résultat affiche les niveaux de journalisation actuels, par défaut, minimum et par défaut au démarrage.

Pour modifier le niveau de journalisation_console actuel, écrire simplement le niveau souhaité dans /proc/sys/kernel/printk. Par exemple, pour imprimer tous les messages sur la console :

echo 1 > /proc/sys/kernel/printk

dmesg

Une autre façon, en utilisant dmesg :

dmesg -n 1

Pour supprimer tous les messages du noyau (et de ses pilotes) à l'exception des messages de panique d'apparaître sur la console.

Pour corriger à chaque démarrage, il faut ajouter la commande à :

/etc/rc.local

dmesg est livré avec deux options pratiques pour cela :

  • -D, –console-off: désactive l'impression des messages sur la console
  • -E, –console-on: active l'impression des messages sur la console

dmesg -D n'est qu'un raccourci pour dmesg -n 1, sauf qu'il stocke le niveau de journalisation actuel, de sorte que vous pouvez facilement le restaurer avec dmesg -E. C'est donc un peu plus pratique que de changer le niveau de journalisation avec dmesg -n.

Dans Ubuntu dmesg -D et dmesg -E ont par la suite été brisés par des capacités (CAP_SYSLOG). Cependant, la définition de kernel.dmesg_restrict=0 n'active pas ces deux dmesgs.

howto/desactitver-journalisation-sur-console.txt · Last modified: 2025/02/19 10:59 by 127.0.0.1