Hi Marisol! Nice to see a familiar name from my days at Newark. I'm
part of the BeagleBoard.org Foundation so happy to help where I can.
Based on am335x in the Subject, are you working with a BeagleBone Black?
I want to have more debug ouputs in the console window during the Linux kernel booting so that I can trace for example MMC driver loading process.
Added some printk() into the kernel, for example printk("this function is called \n"). After successful compiling and loading the kernel unfortunately I can't see the
expected output message "this function is called" in the console window.
It is generally easier to use the "pr_" helper functions:
pr_err() uses KERN_ERR level should always print regardless of the
printk log level. KERN_ERR is not a good practice for debug output,
but it does eliminate the chance that the log level is filtering out
your print statements.
Try adding this:
pr_err("DEBUG: start name_of_function()");
If you don't see that in dmesg, then it is likely that the function
you put that in is never actually called.
I also tried
echo 8 > /proc/sys/kernel/printk
after login but the same results.
Is there any configuration missing in .config file?
level 8 should be sufficient but it is easier if you just set the
level in the .config before you compile your kernel.
You probably also want to make sure dynamic debugging is enabled:
Dynamic debugging is a neat feature where you can chose to see more
debug information for a particular source code file:
Sometimes you don't even need to add in your own debug print
statements, you just need to enable the dynamic debug output that is
already built-in to a driver or subsystem.
I also see brcmf_dbg() in kernel files, how can I activate it?
Are you trying to debug a Broadcom wifi driver?
Taking a look at Elixir to search the kernel code:
It looks like CONFIG_BRCM_TRACING will enable debug output:
Try setting that in your .config:
While it is technically to enable function tracing for the driver, it
looks like it will cause brcmf_dbg() to be defined.
Now the individual invocations of brcmf_dbg() will have a log level
associated with them. It appears that level can be set as kernel
This forum post has more information:
It indicates this can be set while the module is loaded via:
echo 6 > /sys/module/brcmfmac/parameters/debug
Let me me now how it goes.