# Comment désactiver les messages ou la journalisation sur la console/les terminaux virtuels {{METATOC 4-5}} 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.