1、dmesg指令是通过读/proc/kmsg来获取打印信息,也可以通过cat /proc/kmsg打印;

  说明:kmsg是环形缓存区,只能读一次

2、内核中fs/proc目录下有相关文件,比如proc_misc.c,在入口函数中可以看到(4.3.2内核改到kmsg.c文件中)

  #ifdef  CINFIG_PRINTK

  entry = create_proc_entry("kmsg"--------);//在proc下创建kmsg文件

  entry ->proc_fops = &proc_kmsg_operations;//proc_kmsg_operations是个file_operation结构体,提供对文件的读写函数

3、模仿printk制作myprintk函数,数据写到mylog_buf,读/proc/mymsg获得数据

4、通过EXPORT_SYMBOL(函数名)导出函数给外部驱动使用,外部驱动在使用的时候通过extern int myprintk(const char *fmt,...)声明

5、如果应用程序使用到了中断,然应用程序后台运行,通过cat /proc/interrupts可以查看中断信息,比如中断次数,

最新文章

  1. java 静态内部类小总结
  2. Python之路【第二十三篇】爬虫
  3. C++的单例模式与线程安全单例模式(懒汉/饿汉)
  4. 解决Ckeditor编辑器不显示html实体,自动过滤html的问题
  5. EF5.0增删改查的写法及执行Sql的方法
  6. Bootstrap的clearfix
  7. 史上最详细版!java文件打包成exe,在未配置安装JDK和未配置的电脑上运行--转载
  8. centos用yum安装mysql-server
  9. Android初级教程图片信息
  10. 浅尝Spring Cloud Sleuth
  11. 每天一个linux命令(2):cd命令
  12. php 下载完成后删除文件
  13. PySpark理解wordcount.py
  14. 使用注解配置 AOP
  15. 使用Servlet动态生成验证码
  16. CAN通信(STM32)
  17. UVA-701 The Archeologists' Dilemma (数论)
  18. 25. oracle密码过期解决
  19. flask的g对象
  20. Python 从零搭建 Conf_Web 配置管理平台

热门文章

  1. EF中执行Sql语句
  2. 什么是事件委托?jquery和js怎么去实现?
  3. 托管非托管Dll动态调用
  4. 【习题 8-4 UVA - 11491】Erasing and Winning
  5. hash_set和hash_map
  6. DataGridView控件绑定数据源
  7. easyui树查找
  8. JS/CSS 在屏幕底部弹出消息
  9. 【习题 7-10 Uva11214】Guarding the Chessboard
  10. 8.spring-boot配置log4j