Lorsque mon noyau démarre, en dehors des informations importantes utiles, il affiche de nombreuses informations de débogage, telles que
....
kernel: [0.00000] BIOS-e820: [mem 0x0000000000000000-0x000000000009d3ff] usable
kernel: [0.00000] BIOS-e820: [mem 0x000000000009d400-0x000000000009ffff] reserved
kernel: [0.00000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
...
kernel: [0.00000] MTRR variable ranges enabled:
kernel: [0.00000] 0 base 0000000000 mask 7E00000000 write-back
...
kernel: [0.00000] init_memory_mapping: [mem 0x00100000-0xcf414fff]
kernel: [0.00000] [mem 0x00100000-0x001fffff] page 4k
kernel: [0.00000] [mem 0x00200000-0xcf3fffff] page 2M
kernel: [0.00000] [mem 0xcf400000-0xcf414fff] page 4k
....
kernel: [0.00000] ACPI: XSDT 0xD8FEB088 0008C (v01 DELL CBX3 01072009 AMI 10013)
kernel: [0.00000] ACPI: FACP 0xD8FFC9F8 0010C (v05 DELL CBX3 01072009 AMI 10013)
....
kernel: [0.00000] Early memory node ranges
kernel: [0.00000] node 0: [mem 0x00001000-0x0009cfff]
kernel: [0.00000] node 0: [mem 0x00100000-0xcf414fff]
kernel: [0.00000] node 0: [mem 0xcf41c000-0xcfdfcfff]
....
kernel: [0.00000] ACPI: Local APIC address 0xfee00000
kernel: [0.00000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
kernel: [0.00000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
et bien plus encore.
Je ne vois pas comment cela peut être utile à quelqu'un d'autre qu'un développeur / débogueur de noyau.
J'ai trouvé que je peux m'en débarrasser en utilisant loglevel=5
comme paramètre de démarrage. Les journaux de débogage ne sont plus imprimés sur le terminal, mais ils sont toujours dedans dmesg
et dedans syslog
.
Est-il possible de diminuer la verbosité du journal de démarrage globalement, afin que dmesg
et syslog
ne soient pas inondés par ces informations inutiles?
J'utilise un noyau auto-compilé 3.18
SOLUTION ACCEPTÉE
Il s'avère que les lignes suivantes ont /etc/rsyslog.conf
résolu le problème pour moi:
kern.debug /dev/null
& ~
syslog
etdmesg
sont inondés de journaux de débogage inutiles, ce qui rend les avertissements et les erreurs plus faciles à ignorer. En outre,dmesg
etsyslog
doit être lu par les humains (c'est-à-dire l'administrateur). C'est tout leur objectif.Réponses:
Pour syslog Vous pouvez ajouter la ligne suivante à
/etc/syslog.conf
:Il supprimera les messages .info et .debug du noyau (qui sont supprimés avec loglevel = 5)
En outre,
dmesg
peut être utilisé avec option-n
pour afficher les messages avec certains loglevel.la source
Certains journaux sont imprimés par printk () que vous ne pouvez pas désactiver. Et certains sont imprimés par pr_debug () qui peut être désactivé selon la configuration du noyau. Le comportement de pr_debug () est contrôlé par la fonction de débogage dynamique. Si CONFIG_DYNAMIC_DEBUG est défini, tous les appels pr_debug () peuvent être activés / désactivés dynamiquement par site d'appel. Le détail du débogage dynamique est ici . Si CONFIG_DYNAMIC_DEBUG n'est pas défini, mais DEBUG est défini dans le fichier source, pr_debug () fonctionne comme printk () . Si les deux ne sont pas définis, pr_debug ne fera rien.
Voici la définition dans le noyau:
Vérifiez donc la configuration de votre noyau et découvrez d'où viennent ces journaux. Vous saurez alors comment le désactiver.
la source
echo 8 > /proc/sys/kernel/printk
: stackoverflow.com/questions/28936199/…Outre la configuration
loglevel
de la KCL, vous pouvez également modifier lekernel.printk
sysctl afin que le niveau maximum reflète ce que vous voulez et persiste au démarrage.Concernant cette précision supplémentaire dans le commentaire:
Je voudrais simplement utiliser
logrotate
dans un travail cron pour déplacer les fichiers après le redémarrage :Ensuite, vous commencez frais, pour ainsi dire, avec un vidage limité des données de débogage dans les journaux.
la source
logrotate
complètement faux. Mon problème n'est pas que mes fichiers journaux sont trop volumineux et que je manque d'espace disque. Au lieu de cela, le problème est que les informations de débogage dans ces fichiers journaux rendent les informations utiles moins accessibles.