Próbuję utworzyć wpis proc. Moja init_module funkcja jest poniżejdmesg nie wyświetla oświadczenia printk
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;
}
następującym jest metoda oczyszczania
void cleanup_module()
{
printk(KERN_INFO "proc2:module unloaded");
remove_proc_entry(proc_name,proc_entry);
}
reszta programu obejmują zmienne funkcje rozdzielczości i zwrotnych.
podczas kompilacji tego programu kompiluje się dobrze. po użyciu insmod
nie odpowiada mi monitować. lsmod
zawiera listę mojego modułu i programów używanych przez jednego (nie wiem co). dmesg
nie wyświetla żadnego z powyższych komunikatów.
czy możesz mi powiedzieć, co jest nie tak?
zaskakująco nie tylko wiadomość KERN_INFO. ale cały moduł zaczął działać, używając echo "7">/proc/sys/kernel/printk –
Ponieważ "7" pozwala na pokazanie wszystkich rodzajów logów od KERN_DEBUG do KERN_EMERG, nie tylko specyficznego dla KERN_INFO. – Wayne
Chcę tylko dodać, że odnosi sukces tylko wtedy, gdy użytkownik jest rootem. Przekierowanie zawiodłoby inaczej. Przekierowanie może być zastąpione przez '| sudo tee', aby działało. – russoue