Ich versuche, ein proc Eintrag zu erstellen. My init_module Funktion ist, wie untendmesg zeigt nicht printk Aussage
int init_module()
{
printk(KERN_INFO "proc2:Module Loaded\n");
proc_entry=proc_create_data(proc_name,0644,NULL,&fops,NULL);
if(proc_entry==NULL)
{
printk(KERN_INFO "proc2:Error registering proc entry");
}
else
{
printk(KERN_INFO "proc2:Proc Entry Created");
}
return 0;
}
finden Bereinigungsmethode
void cleanup_module()
{
printk(KERN_INFO "proc2:module unloaded");
remove_proc_entry(proc_name,proc_entry);
}
Rest Programmvariablen Definition und Rückruffunktionen umfassen.
wenn ich dieses Programm kompiliere kompiliert es gut. Wenn ich insmod
benutze antwortet es mir nicht prompt. lsmod
Listen mein Modul und von einem verwendeten zeigt (nicht wissen, was). dmesg
zeigt keine der oben genannten printk-Nachrichten.
Können Sie mir sagen, was hier nicht stimmt?
überraschenderweise nicht nur Nachricht KERN_INFO. aber ganzer Modul gestartet durch Arbeiten mit echo „7“>/proc/sys/kernel/printk –
Denn „7“ kann alle Arten von Log von KERN_DEBUG bis KERN_EMERG gezeigt, nicht nur KERN_INFO spezifisch. – Wayne
Ich möchte nur hinzufügen, dass es nur erfolgreich ist, wenn der Benutzer root ist. Die Umleitung würde sonst fehlschlagen. Die Umleitung kann durch ein '| ersetzt werden sudo tee', damit es funktioniert. – russoue