printk(KERN_XXX "message"); Notar a falta de vírgula. A macro expande para , onde X é um número. Isso é interpretado por klogd (ou libc - man klogctl). Da mesma manpage, também em include/linux/kernel.h: #define KERN_EMERG "<0>" /* system is unusable */ #define KERN_ALERT "<1>" /* action must be taken immediately */ #define KERN_CRIT "<2>" /* critical conditions */ #define KERN_ERR "<3>" /* error conditions */ #define KERN_WARNING "<4>" /* warning conditions */ #define KERN_NOTICE "<5>" /* normal but significant condition */ #define KERN_INFO "<6>" /* informational */ #define KERN_DEBUG "<7>" /* debug-level messages */ printk_once - macro que imprime apenas uma vez printk_ratelimit - if (printk_ratelimit()) { } - limite por função imprime no máximo 10 vezes em 5 segundos, parâmetros configuráveis /proc/sys/kernel/printk_ratelimit{,_burst} printk_ratelimited(fmt, ...) - valores padrões apenas -- Ainda em include/linux/kernel.h pr_emerg pr_alert pr_crit pr_err pr_warning pr_notice pr_info pr_devel -- apenas se macro DEBUG definida pr_debug -- apenas se macro DEBUG definida, ou com dynamic_debug -- #include dev_printk(level, device, fmt, ...); dev_emerg(device, fmt, ...); dev_alert dev_crit dev_err dev_warn dev_notice dev_info dev_dbg -- apenas se macro DEBUG definida, ou com dynamic_debug -- dynamic_debug - precisa de DEBUG_FS ver em lib/Kconfig.debug e Documentation/dynamic-debug-howto.txt -- Definição de DEBUG condicionada ao Kconfig. drivers/usb/core/Kconfig drivers/usb/core/Makefile ifeq ($(CONFIG_USB_DEBUG),y) EXTRA_CFLAGS += -DDEBUG endif Se aplica apenas ao makefile em que é definido.