<div dir="ltr">Hello Martin and Dennis,<div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Apr 16, 2014 at 5:27 PM, Martin Kepplinger <span dir="ltr">&lt;<a href="mailto:martink@posteo.de" target="_blank">martink@posteo.de</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Am 16.04.2014 13:43 schrieb Denis Pithon:<br>
<div class="">&gt; Martin,<br>
&gt;<br>
&gt; I&#39;m not sure did you enable DDEBUG when compiling your module ?<br>
&gt; pr_debug() macro is discarded if you omit DEBUG in compile time<br>
&gt;<br>
&gt; A sample Makefile which enable pr_debug() :<br>
&gt;<br>
&gt; obj-m += my_modue.o<br>
&gt;<br>
&gt; KDIR ?= /lib/modules/`uname -r`/build<br>
&gt; CFLAGS_my_module.o := -DDEBUG<br>
&gt;<br>
&gt; all:<br>
&gt;  make -C $(KDIR) M=$(PWD) modules<br>
&gt;<br>
&gt; clean:<br>
&gt;  make -C $(KDIR) M=$(PWD) clean<br>
&gt;<br>
&gt; Let me know ...<br>
&gt; regards<br>
<br>
</div>Thanks,<br>
<br>
I did not, but now added -DDEBUG. The exact line is:<br>
CFLAGS_my_module.o := -DDEBUG<br>
when &quot;my_module.o&quot; is my object file. Did I get that right?<br>
<br>
That doesn&#39;t change anything unfortunately. I can not read pr_debug()<br>
unless I<br>
explicitely activate it in /sys/kernel/debug/dynamic_debug/control<br>
*after* insmod.<br></blockquote><div><br></div><div>Adding -DDEBUG will not change anything if CONFIG_DYNAMIC_DEBUG is defined in your .config</div><div><br></div><div>The reason is because CONFIG_DYNAMIC_DEBUG  has priority over DEBUG.</div>

<div><br></div><div>File:include/linux/printk.h</div><div>--------------------------stripped-------------------------------</div><div>#if defined(CONFIG_DYNAMIC_DEBUG)</div><div>/* dynamic_pr_debug() uses pr_fmt() internally so we don&#39;t need it here */</div>

<div>#define pr_debug(fmt, ...) \</div><div>        dynamic_pr_debug(fmt, ##__VA_ARGS__)</div><div>#elif defined(DEBUG)</div><div>#define pr_debug(fmt, ...) \</div><div>        printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)</div>

<div>#else</div><div>#define pr_debug(fmt, ...) \</div><div>        no_printk(KERN_DEBUG pr_fmt(fmt), ##__VA_ARGS__)</div><div>#endif</div><div>--------------------------stripped-------------------------------<br></div><div>

<br></div><div>So the quick way is to disable CONFIG_DYNAMIC_DEBUG and add -DDEBUG in your makefile.</div><div><br></div><div>Thanks,</div><div>Arun</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<br>
I&#39;d like to just read all pr_debug() messages like pr_info().<br>
<br>
thanks for your time!<br>
<div class=""><div class="h5"><br>
&gt;<br>
&gt; On Wed, Apr 16, 2014 at 1:11 PM, Martin Kepplinger &lt;<a href="mailto:martink@posteo.de">martink@posteo.de</a>&gt;<br>
&gt; wrote:<br>
&gt;<br>
&gt;&gt; Am 16.04.2014 11:58 schrieb Arun KS:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Hi Martin,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Wed, Apr 16, 2014 at 2:46 PM, Martin Kepplinger<br>
&gt;&gt;&gt; &lt;<a href="mailto:martink@posteo.de">martink@posteo.de</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; Am 2014-04-16 11:00, schrieb Arun KS:<br>
&gt;&gt;&gt;&gt;&gt; Hi Martin,<br>
&gt;&gt;&gt;  &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; On Wed, Apr 16, 2014 at 2:13 PM, Martin Kepplinger<br>
&gt;&gt;&gt;&gt;&gt; &lt;<a href="mailto:martink@posteo.de">martink@posteo.de</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;&gt; I&#39;m on Debian here and I don&#39;t really get pr_debug and<br>
&gt;&gt;&gt;&gt;&gt;&gt; printk(KERN_DEBUG<br>
&gt;&gt;&gt;  &gt;&gt;&gt; ...). Let&#39;s stick to pr_debug.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; I have DYNAMIC_DEBUG enabled and<br>
&gt;&gt;&gt;&gt;&gt;&gt; root@laptop:/proc/sys/kernel# cat /proc/sys/kernel/printk<br>
&gt;&gt;&gt;&gt;&gt;&gt; 7       7       1       7<br>
&gt;&gt;&gt;  &gt;&gt; This shows the console log level.<br>
&gt;&gt;&gt;&gt;&gt; This file controls the traffic to console. But all the log<br>
&gt;&gt;&gt;&gt;&gt; messages<br>
&gt;&gt;&gt;&gt;&gt; will be present in logbuf.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; How do I view debug messages from logbuf?<br>
&gt;&gt;&gt;  &gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; I write a module with pr_debug&#39;s. I load the module and I *don&#39;t*<br>
&gt;&gt;&gt;&gt;&gt;&gt; see<br>
&gt;&gt;&gt;&gt;&gt;&gt; anything in /var/log/messages (or anywhere in /var/log/* ).<br>
&gt;&gt;&gt;&gt;&gt;&gt; Adding<br>
&gt;&gt;&gt;&gt;&gt;&gt; #define DEBUG doesn&#39;t help.<br>
&gt;&gt;&gt;  &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; /sys/kernel/debug/dynamic_debug/control has the pr_debug entries<br>
&gt;&gt;&gt;&gt;&gt;&gt; I<br>
&gt;&gt;&gt;&gt;&gt;&gt; use<br>
&gt;&gt;&gt;&gt;&gt;&gt; in my loaded module.<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; In short: How do I see debug log messages? Using pr_info() works<br>
&gt;&gt;&gt;&gt;&gt;&gt; as<br>
&gt;&gt;&gt;  &gt;&gt;&gt; expected. What am I missing? Do I need to edit my Makefile?<br>
&gt;&gt;&gt;&gt;&gt; Did you enable dynamic printing for your file?<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Below command enables dynamic printing for file sdhci.c.<br>
&gt;&gt;&gt;&gt;&gt; echo &#39;file sdhci.c +p&#39; &gt; /sys/kernel/debug/dynamic_debug/control<br>
&gt;&gt;&gt;  &gt;<br>
&gt;&gt;&gt;&gt; well. I tried that. The thing is, the pr_debug() symbols are in<br>
&gt;&gt;&gt;&gt; &quot;control&quot; only after &quot;insmod my_module&quot;. Then I can echo -n &#39;file<br>
&gt;&gt;&gt;&gt; my_mobule.c +p&#39; &gt; control<br>
&gt;&gt;&gt;&gt; But my pr_debug() messages get printed directly after insmod,<br>
&gt;&gt;&gt;&gt; basically<br>
&gt;&gt;&gt;  &gt; in my module_init function. Enabling my file doesn&#39;t output<br>
&gt;&gt;&gt; anything in<br>
&gt;&gt;&gt;&gt; /var/log/*<br>
&gt;&gt;&gt; So now you know why your pr_debug is absent in logbuf.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; You can make your module as a built in and use bootargs.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; eg:<br>
&gt;&gt;&gt; dyndbg=&quot;file your_filename.c +p&quot;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt; Arun<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; So it&#39;s *not* possible at all to get pr_debug() messages just like<br>
&gt;&gt; pr_info() messages?<br>
&gt;&gt; Of what I&#39;ve read, I assumed pr_debug() is just loglevel 7.<br>
&gt;&gt;<br>
&gt;&gt; thanks for your help!<br>
&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Thanks,<br>
&gt;&gt;&gt;&gt;&gt; Arun<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; thanks!<br>
&gt;&gt;&gt;&gt;&gt;&gt;                      martin<br>
&gt;&gt;&gt;  &gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt;&gt;&gt; Martin Kepplinger<br>
&gt;&gt;&gt;&gt;&gt;&gt; e-mail        martink AT posteo DOT at<br>
&gt;&gt;&gt;&gt;&gt;&gt; chat (XMPP)   martink AT jabber DOT at<br>
&gt;&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;  &gt;&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt;&gt;&gt;&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a> [1]<br>
&gt;&gt;&gt;&gt;&gt;&gt; [1]<br>
&gt;&gt;<br>
&gt;&gt;&gt;  &gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt;&gt;&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt;&gt;&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a> [1]<br>
&gt;&gt;&gt;&gt;&gt; [1]<br>
&gt;&gt;<br>
&gt;&gt;&gt;  &gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt;&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt;&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a> [1]<br>
</div></div><div class=""><div class="h5">&gt;&gt;&gt;&gt; [1]<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Links:<br>
&gt;&gt;&gt; ------<br>
&gt;&gt;&gt; [1] <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;&gt;&gt; [1]<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a> [1]<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; Kernelnewbies mailing list<br>
&gt;&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt;&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a> [1]<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; Links:<br>
&gt; ------<br>
&gt; [1] <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Kernelnewbies mailing list<br>
&gt; <a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
&gt; <a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
<br>
_______________________________________________<br>
Kernelnewbies mailing list<br>
<a href="mailto:Kernelnewbies@kernelnewbies.org">Kernelnewbies@kernelnewbies.org</a><br>
<a href="http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies" target="_blank">http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies</a><br>
</div></div></blockquote></div><br></div></div>