有很多驱动代码使用pr_debug/dev_dbg输出的日志信息。默认情况下,kernel不会将这些日志输出到控制台上,dmesg 命令是看不到这个这些消息的,比如dev_dbg定义如下: kernel-4.4/include/linux/printk.h /* pr_devel() should produce zero code unless DEBUG is defined */ 如果没有#define DEBUG #ifdef DEBUG #de...
cd ~/debug-linux-kernel-on-qemu/kernel_dev/linux make ARCH=arm64 defconfig make ARCH=arm64 menuconfig 这里的 menuconfig 会让console 变成可交互界面: 使用方向键进行移动 使用回车键进入子菜单,空格键选中/取消选中 这个make ARCH=arm64 menuconfig 的核心目的是帮你修改内核配置文件 .config 为了方便后续...
其实开启DEBUG宏的方法很简单,在需要pr_debug/dev_dbg输出的模块开头,直接#define DEBUG即可,kernel中有一个例子: /* init/main.c */ #define DEBUG /* Enable initcall_debug */ 不过这种方法有个缺点:我们必须准确的知道需要debug那个C文件,如果想大网撒鱼(例如,想debug为什么新修改的DTS文件没有起作用,而又...
CONFIG_DEBUG_KMEMLEAK_EARLY_LOG_SIZE=16000 CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y---关闭此选项,则不需要在命令行添加kmemleak=on 使用方法: 立即触发保存扫描结果 echo scan > /sys/kernel/debug/kmemleak 显示可能的内存泄漏的详细信息,需要先挂载debugfs文件系统: mount -t debugfs nodev /sys/kernel/debug...
//file:pr_debug.c#include<linux/init.h>#include<linux/module.h>#include<linux/kernel.h>#include<linux/printk.h>staticinttest_init(void){ pr_debug("test_init!\n");return0; }staticvoidtest_exit(void){ pr_debug("test_exit!\n"); ...
ls /sys/kernel/debug/modules 复制代码 查看特定内核模块的信息(将your_module_name替换为实际的模块名称): cat /sys/kernel/debug/modules/your_module_name 复制代码 查看特定内核模块的依赖关系: cat /sys/kernel/debug/modules/your_module_name/dependencies 复制代码 请注意,这些命令仅适用于已加载的内核模...
mount-tdebugfs none /sys/kernel/debug/ 1. 三、查看debug信息 所有debug信息都在/sys/kernel/debug/路径中。 比如查看当前gpio使用情况: 四、设置自动挂载点 修改/etc/fstab文件,添加debugfs挂载信息: 这样在系统启动之后就会自动挂载debugfs。
mount-tdebugfsnone/sys/kernel/debug 或者: mount-tdebugfsdebugfs/sys/kernel/debug/ 也可以在/etc/fstab文件中使用等效的语句: 默认情况下,在一些发行版的linux系统中,只有root用户可以访问debugfs根目录。 注意,在内核源码中,debugfs API仅以GPL方式导出到模块。
builtin Module.symvers samples sound usr vmlinux-gdb.py root@ubuntu:~/kernel/linux-5.6.14# root@ubuntu:~/kernel/linux-5.6.14# root@ubuntu:~/kernel/linux-5.6.14# sudo make modules_install INSTALL arch/x86/crypto/aesni-intel.ko INSTALL arch/x86/crypto/blowfish-x86_64.ko INSTALL arch/x86...