D'où la sortie d'impression dans le noyau aller?
Je suis le débogage d'un pilote pour linux (plus précisément ubuntu server 9.04), et il y a plusieurs printf énoncés dans le code.
Où puis-je voir le résultat de ces instructions?
EDIT1: Ce que j'essaie de faire est d'écrire à noyau à l'aide de la proc de système de fichiers.
L'impression de code est
static int proc_fractel_config_write(struct file *file, const char *argbuf, unsigned long count, void *data)
{
printk(KERN_DEBUG "writing fractel config\n");
...
De kern.journal, je vois le message suivant lorsque j'essaie de remplacer le fichier /proc/net/madwifi/ath1/fractel_config (avec des variations de temps de parcours).
[ 8671.924873] proc write
[ 8671.924919]
Toutes les explications?
Vous devez vous connecter pour publier un commentaire.
Il dépend de la distribution, mais l'utilisation de nombreux
klogd(8)
pour obtenir les messages du noyau et les enregistre dans un fichier (parfois/var/log/dmesg
ou/var/log/kernel
) ou dans le journal système viasyslog(3)
. Dans le dernier cas, où les entrées de journal de fin dépendra de la configuration desyslogd(8)
.Une remarque à propos de l'
dmesg
commande: Noyau messages sont stockés dans une mémoire tampon circulaire, de sorte que de grandes quantités de sortie sera écrasé.De nombreuses fois
KERN_DEBUG
niveau des messages sont filtrés et vous devez explicitement d'augmenter le niveau d'enregistrement. Vous pouvez voir ce que les valeurs par défaut du système sont en examinant/proc/sys/kernel/printk
. Par exemple, sur mon système:le premier nombre indique le journal de la console de niveau est
KERN_WARNING
(voir proc(5) pages de manuel pour plus d'informations). Cela signifieKERN_NOTICE
,KERN_INFO
, etKERN_DEBUG
les messages sont filtrés à partir de la console. Pour augmenter le niveau d'enregistrement ou de verbosité, utilisezdmesg
Ici, le réglage du niveau 7 (
KERN_DEBUG
) permettra à tous les niveaux de l'apparition de messages sur la console. Pour automatiser cela, ajoutezloglevel=
N les paramètres d'amorçage du noyau où N est le niveau de journal que vous voulez aller à la console ouignore_loglevel
pour imprimer tous les messages du noyau de la console.Vous aurez le résultat avec la commande
dmesg
dmesg sorties tous les messages du noyau. Trouver vos messages souhaités serait difficile. Mieux utiliser dmesg et grep combinaison et l'utilisation d'un pilote spécifique de l'étiquette dans toutes vos
printk
messages. Qui sera facilité en éliminant tous les messages indésirables.J'ai eu ce problème sur Ubuntu 11.10 et 10.04 LTS, sur l'ancien j'ai édité le fichier /etc/rsyslog.d/50-par défaut.conf, puis redémarré rsyslog à l'aide de "sudo service rsyslog redémarrer" pour redémarrer rsyslogd. Puis il a travaillé.
Noter que Ubuntu utilise *r*syslogd, pas de syslogd.
Vous essayez peut-être d'un niveau plus élevé que KERN_DEBUG, par exemple KERN_INFO. En fonction de votre configuration de la priorité la plus faible des messages peuvent pas être affichés.
Dans centos (au Moins dans centos 6.6) la sortie sera dans /var/log/messages