dev_info函数的打印会出现在dmesg日志中吗?
时间: 2023-02-11 18:16:48 浏览: 179
dev_info函数的打印信息不会出现在dmesg日志中。它通常用于在设备驱动程序中打印调试信息或提示性信息,并且这些信息通常会输出到核心消息缓冲区,而不是dmesg日志中。你可以使用printk函数或者pr_debug(),这样才会在dmesg里面看到输出。
相关问题
检测devmem_is_allowed 函数是否正常运行
`devmem_is_allowed` 函数是用来检测是否允许使用 `dev/mem` 设备进行直接内存访问。该函数通常在用户空间程序中被调用,在内核中实现。如果返回值为 0,则表示不允许直接内存访问,如果返回值为 1,则表示允许直接内存访问。
你可以使用以下命令来测试 `devmem_is_allowed` 函数是否正常运行:
```
sudo cat /proc/sys/kernel/dmesg_restrict
```
如果返回值为 1,则表示 `devmem_is_allowed` 函数未正常运行,因为 `dmesg_restrict` 的值为 1,表示不允许非特权用户访问内核日志。你可以使用以下命令来修改 `dmesg_restrict` 的值:
```
sudo sysctl -w kernel.dmesg_restrict=0
```
然后再次运行上述命令,如果返回值为 0,则表示 `devmem_is_allowed` 函数正常运行。
linux 内核打印函数
Linux内核中有多种打印函数可用于调试和日志记录。以下是一些常用的打印函数:
1. printk(): 最常用的打印函数,可以在内核中输出调试信息和日志。可以根据需要设置不同的打印级别,如KERN_DEBUG、KERN_INFO、KERN_WARNING等。
2. pr_debug()、pr_info()、pr_warn()、pr_err(): 这些宏是printk()函数的简化形式,用于输出不同级别的信息。pr_debug()用于调试信息,pr_info()用于一般信息,pr_warn()用于警告信息,pr_err()用于错误信息。
3. dev_dbg()、dev_info()、dev_warn()、dev_err(): 这些函数用于在设备驱动程序中输出调试信息和日志。与上述pr_系列函数类似,它们也有不同的级别。
4. trace_printk(): 这个函数是动态跟踪机制中使用的打印函数,可以在性能分析和调试时输出跟踪信息。
这些打印函数都可以通过在内核代码中调用来输出相应级别的信息。输出的内容可以通过系统日志(如dmesg命令)或者内核调试工具(如kdb、kgdb)来查看。
阅读全文
相关推荐














