Linux设备驱动程序——驱动调试printk()

本文介绍了Linux设备驱动程序中printk()函数的使用,它类似于printf(),但运行在内核态。文章讲解了通过dmesg、/var/log/messages和/proc/kmsg查看printk输出的方法,并详细阐述了不同日志级别的含义。同时,讨论了如何通过/proc/sys/kernel/printk文件调整控制台日志级别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         前一段时间学了一下,printk()打印语句,现在用起来又忘了,看了一下前一段时间做的笔记,不是很详细,所以决定再写一下和printk相关的调试的东西。算是复习一下吧。

          首先,先熟悉一下printk函数,这个函数和printf函数很类似。只不过一个运行在用户态,一个运行在内核态。此外还是要熟悉一下终端,和控制台等几个概念

         首先需要说的是可以通过以下几种途径查看printk()函数的打印信息

          1、直接在终端中使用dmesg命令来查看   这个我自己试了一下这个里面所有级别消息的都能看见

           2、查看/var/log/messages   这个里面除了最后一个级别的其他级别的都能看见,7应该就是控制台级别。

   3、查看/proc/kmsg  这个试了一下,打不开呀,不知道为什么

1、printk及控制台的日志级别

Printk是在内核中运行的像控制台输出显示的函数。内核会先在内核空间中分配一静态缓冲区,作为显示用的空间,然后调用sprintf,格式换显示字符串,最后调用tty_write函数向终端打印信息。

#define KERN_EMERG 0/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/

#define KERN_ALERT 1/*报告消息,表示必须立即采取措施*/

#define KERN_CRIT 2/*临界条件,通常涉及严重的硬件或软件操作失败*/

#define KERN_ERR 3/*错误条件,驱动程序常用KERN_ERR来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值