Pages - Menu

Saturday, November 7, 2015

Unknown symbol __dynamic_pr_debug

I was working with the default x86_64 + kvm kernel config and a kernel module which uses the pr_debug() printk logging method.

On load, modprobe prints:

FATAL: Error inserting modulename: Unknown symbol in module, or unknown parameter (see dmesg)

And dmesg contains:

Unknown symbol __dynamic_pr_debug

I do have the CONFIG_DYNAMIC_DEBUG=y parameter set in my .config.

I found reference to this upstream at: https://lkml.org/lkml/2012/8/30/378 where Jim Crombie said "Ok, transient error, went away with a clean build".

I'd done a make; make modules_install; make install and reboot but that didn't work for me.

Like Jim found, a make clean then recompile worked for me.

You need to mount debugfs to use pr_debug(), see dynamic-debug-howto.txt in the kernel Documentation directory.