linux 内核调试
一、linux MMC驱动pr_debug开启方法
linux的的mmc驱动在kerner/drivers/mmc 中,mmc驱动源码中有pr_debug打印信息,这个打印信息默认是不打印的,如果要打印则需要手动开启。pr_debug函数定义在kernel/include/linux/printk.h文件中如下所示:
pr_debug定义了三种情况,分别是dynamic_pr_debug动态打印,pringk打印和no_prink不打印。只要打开对应的宏,就能实现其中一种打印。默认情况下是不打印。下面说明如何在mmc驱动中开启pr_debug用pringk方式打印。要想让pr_debug用pringk方式打印,只要定义DEBUG即可。
1、配置内核,开启mmc debug功能:
-->Device Drives
-->MMC/SD/SDIO Card Surpport
-->MMC host drivers debuging (选择y)
2、在kernel/drivers/mmc/core/Makefile和kernel/drivers/mmc/host/Makefile中分别添加以下内容:
ifeq ($(CONFIG_MMC_DEBUG),y) EXTRA_CFLAGS += -DDEBUG endif
这样就能用第一步配置内核方式打开或关闭mmc的debug信息
3、重新编译内核
4、由于pr_debug的printk方式的打印等级是KERN_DEBUG(8),所以需要修改系统的prink显示等级
echo 8 4 1 7 > /proc/sys/kernel/printk