Juste une petite question sur la fonction printk () au niveau du noyau, si j'appelle cela, où le message sera-t-il imprimé? (J'utilise Ubuntu sur i386 Arch avec le dernier téléchargement du noyau)
ne le trouve nulle part,
Si quelqu'un pouvait aussi m'orienter dans la bonne direction pour une sorte de manuel pour la fonction printk (), ce serait génial!
dmesg
devrait afficher les messages printk
.
printk
les messages vont dans le tampon de messages du journal du noyau, qui peut être exposé de différentes manières selon la configuration du système. La commande Shell dmesg
les affichera et ils devraient également être copiés dans des fichiers dans /var/log
par le démon syslog
. Il est possible de les connecter à une console série ou à un terminal virtuel en mode texte, mais je ne me souviens pas à quel point.
Si vous avez mis des instructions printk()
dans le module noyau pour déboguer et essayer de capturer les sorties au fur et à mesure qu'elles sont imprimées, ce que vous recherchez est klogd
. Effectuez un man klogd
pour plus d'arrêts et d'options.
Voici un script d'encapsulation pour klogd
que j'ai codé il y a quelque temps pour soulager la douleur de débogage rapide:
#!/bin/bash
function bashtrap()
{
echo
echo -n "[+] stopping klogd ... "
pids=`ps aux | grep klogd | awk '{print $2}'`
for pid in $pids
do
kill SIGTERM $pid 2> /dev/null
done
echo "done"
if [ $1 ]
then
exit;
fi
}
sync
bashtrap
klogd -x -f - -n -c 8 2>&1 1 | tee klog.txt & klog_pid=$!;
echo "[+] klogd started"
echo "[+] press ctrl+c to exit ... $klog_pid"
sync
trap "bashtrap 1" SIGINT
while [ 1 ]
do
sleep 3
echo -n "."
done
ps aux | grep klogd
La page de manuel printk(9)
contient très un petit peu d'informations. En bref, il est envoyé au tampon de journal, où un démon syslog peut le récupérer et le gérer. Il est également envoyé à la console si son niveau de journalisation est suffisamment élevé (voir dmesg(1)
pour ce bit).
Chercher /dev/kmsg
sur votre système.