Sto provando a creare una voce proc. mia funzione init_module è come sottodmesg non mostra l'istruzione 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;
}
seguente è il metodo di pulitura
void cleanup_module()
{
printk(KERN_INFO "proc2:module unloaded");
remove_proc_entry(proc_name,proc_entry);
}
resto del programma comprendono funzioni di definizione e di callback variabili.
quando compilo questo programma lo compila bene. quando uso insmod
non mi risponde prompt. lsmod
elenca il mio modulo e gli spettacoli usati da uno (non so cosa). dmesg
non mostra nessuno dei messaggi di stampa precedenti.
puoi dirmi cosa c'è che non va qui?
sorprendentemente non solo il messaggio KERN_INFO. ma l'intero modulo ha iniziato a funzionare usando echo "7">/proc/sys/kernel/printk –
Poiché "7" consente di visualizzare tutti i tipi di log da KERN_DEBUG a KERN_EMERG, non solo KERN_INFO specifico. – Wayne
Voglio solo aggiungere che ha successo solo se l'utente è root. Il reindirizzamento fallirebbe altrimenti. Il reindirizzamento può essere sostituito con un '| sudo tee' per farlo funzionare. – russoue