linux驱动学习_1

目前项目需要,需要做linux驱动了,记录一下

  学习驱动,大家一定都会写一个hello world代码,网上也有很多范例,但是记录一下遇到的问题。

1.make之后,使用insmod加载,终端没有打印modul_init函数里面输出的字符

原因:因为printk是内核输出函数,要查看的话,还要执行下列指令,dmesg | tail

dmesg:该命令式用来显示开机时,系统的信息,在var/log/dmesg文件中可以看到。

tail:显示某个文件,

  虽然用上述办法可以看到printk输出,但是不是实时的,每次执行模块加载或者卸载,你都需要

从新输入命令,感觉不到不爽快。网上还有另外一种方式。

  在一个终端输入 tail -f -n 20 /var/log/messages | sed 's/.*kernel: //'命令,即这个终端用来

实时查看内核输出信息,在打开另外一个终端,在这个终端进行模块的加载调试,这就就非常方便。解释

一下上面的指令,-f表示不断的读取 var/log/messages文件的,-n 20 显示后面的20行。| 连接符合

sed命令比较复杂,需要的,用户可以自己查一下。

推荐驱动学习网站:http://oss.org.cn/kernel-book/ldd3/index.html

本文参考了:

http://blog.csdn.net/liuqiqi677/article/details/6556459

http://www.yuanxj.com/2014/04/tail%E5%91%BD%E4%BB%A4%E7%9B%91%E6%8E%A7printk%E8%BE%93%E5%87%BA%E7%9A%84%E5%86%85%E6%A0%B8%E4%BF%A1%E6%81%AF/

原文地址:https://www.cnblogs.com/gaoshanxiaolu/p/3954055.html