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

 

posted @ 2022-02-17 16:35  YYFaGe  阅读(1139)  评论(0编辑  收藏  举报