I'm trying to create a proc entry. My init_module function is as below
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;
}
following is cleanup method
void cleanup_module()
{
printk(KERN_INFO "proc2:module unloaded");
remove_proc_entry(proc_name,proc_entry);
}
rest of program include variable definition and callback functions.
when i compile this program it compiles well.
when i use insmod
it doesn't reply me prompt.
lsmod
lists my module and shows used by one (don't know what).
dmesg
shows none of the above printk messages.
can you tell me what's wrong here?
Even after using
echo "7" > /proc/sys/kernel/printk
,printk
didn't worked for me.https://lwn.net/Articles/487437/ says about modified or more enhanced version of
printk
calledpr_**
api's (pr_info
,pr_emerg
).I used
pr_info
instead ofprintk
and it solved my problem.Try
echo "7" > /proc/sys/kernel/printk
to enable all console log levels.The numbers are corresponding to below:
The default number is 4, which allows console to show messages only at least in
KERN_WARNING
. That's why you cannot see log inKERN_INFO
level.