Skip to contentSkip to conversation

Displaying debug level printk messages in systemd

DISCUSSION Orion Agali 2 participants 3 messages Jul 11, 2015

lore
Share & tools
lore
#0 lore raw

I'm using Arch and I cannot figure out how to get printk debug messages to display in journalctl.

I tried the following:
* Set LogLevel=debug in /etc/systemd/systemd.conf
* Add kernel parameter 'debug' on boot
* Setting loglevel=8 in /proc/sys/kernel/printk
* dmsg -n 8

Consider the following module:
Konsole output

----------
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static int __init task1_init(void)

{
    pr_notice("I am at level notice");
    pr_debug("I am at level debug.");
    return 0;
}

static void __exit task1_exit(void){}
module_init(task1_init);
module_exit(task1_exit);
------------

The notice level is printed but the debug level is not. The debug message is not in dmesg or /dev/kmsg either

The answer is probably straight forward, but I've hit a wall so I'm hoping
somebody here will be able to point me in the right direction
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150711/c34b4ecd/attachment.html

#1 lore raw
Quoted 26 lines · Orion Agali

I'm using Arch and I cannot figure out how to get printk debug messages to display in journalctl.

I tried the following:
? * Set LogLevel=debug in /etc/systemd/systemd.conf ? * Add kernel parameter 'debug' on boot
? * Setting loglevel=8 in /proc/sys/kernel/printk ? * dmsg -n 8

Consider the following module:

----------
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static int __init task1_init(void)
{
??? pr_notice("I am at level notice");
??? pr_debug("I am at level debug.");
??? return 0;
}
static void __exit task1_exit(void){}
module_init(task1_init);
module_exit(task1_exit);
------------

Quoted 5 lines

The notice level is printed but the debug level is not. The debug message is not in dmesg or /dev/kmsg either

The answer is probably straight forward, but I've hit a wall so I'm hoping somebody here will be able to point me in the right direction

Take a look at Documentation/dynamic-debug-howto.txt for how to get pr_debug() working properly for your module.

#2 lore raw
Quoted 27 lines · Greg KH
Quoted 26 lines · Orion Agali

I'm using Arch and I cannot figure out how to get printk debug messages to display in journalctl.

I tried the following:
* Set LogLevel=debug in /etc/systemd/systemd.conf
* Add kernel parameter 'debug' on boot
* Setting loglevel=8 in /proc/sys/kernel/printk
* dmsg -n 8

Consider the following module:

----------
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static int __init task1_init(void)

{
    pr_notice("I am at level notice");
    pr_debug("I am at level debug.");
    return 0;
}

static void __exit task1_exit(void){}
module_init(task1_init);
module_exit(task1_exit);
------------

Quoted 8 lines
Quoted 5 lines

The notice level is printed but the debug level is not. The debug message is not in dmesg or /dev/kmsg either

The answer is probably straight forward, but I've hit a wall so I'm hoping somebody here will be able to point me in the right direction

Take a look at Documentation/dynamic-debug-howto.txt for how to get pr_debug() working properly for your module.

Great reference!

After reading and testing I realize I can
* activate at compile time using -DDEBUG
* use dyndbg in the module paramaters
* add queries to <debugfs>/dynamic_debug/control
* use dyndbg in the boot string

Thank you.