目前项目需要,需要做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/

linux驱动学习_1的更多相关文章

  1. linux 驱动学习笔记01--Linux 内核的编译

    由于用的学习材料是<linux设备驱动开发详解(第二版)>,所以linux驱动学习笔记大部分文字描述来自于这本书,学习笔记系列用于自己学习理解的一种查阅和复习方式. #make confi ...

  2. linux驱动学习(二) Makefile高级【转】

    转自:http://blog.csdn.net/ghostyu/article/details/6866863 版权声明:本文为博主原创文章,未经博主允许不得转载. 在我前一篇写的[ linux驱动学 ...

  3. Linux驱动学习步骤(转载)

    1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile 4. 写一简单char驱动,makefile编译通过,可以insmod, ls ...

  4. 树莓派linux驱动学习之hello world

    最近想学习一下linux驱动,看了一些书和教学视频,大概了解了一下,不过要想深入,肯定需要实践.手上有几块linux的板子,最终选择了树莓派作为我的实验平台,资料比较丰富,接口也比较简单. 程序员的入 ...

  5. Linux驱动学习1.hello world;

    最近项目需要使用Linux系统开发,借此机会学习一下Linux驱动开发 hello word代码hello.c #include <linux/module.h> #include < ...

  6. 【Linux驱动学习】SD卡规范学习

    摘要: 学习SD卡的相关规范,包括定义,硬件特性,数据传输,命令系统等.不涉及代码. 文章针对Linux驱动开发而写,以助于理解SD卡驱动,不会涉及过多硬件内容. 纲要: 1. SD卡介绍 2. SD ...

  7. Linux驱动学习之常用的模块操作命令

    1.常用的模块操作命令 (1)lsmod(list module,将模块列表显示),功能是打印出当前内核中已经安装的模块列表 (2)insmod(install module,安装模块),功能是向当前 ...

  8. Linux驱动学习之驱动开发准备工作

    一.开启驱动开发之路 1.驱动开发的准备工作 (1)正常运行linux系统的开发板.要求开发板中的linux的zImage必须是自己编译的,不能是别人编译的.原因在于在安装模块的时候会进行安全性校验 ...

  9. Linux驱动学习之什么是驱动?

    一.什么是驱动? 1: 驱动一词的字面意思 2: 物理上的驱动 3: 硬件中的驱动 4: linux内核驱动.软件层面上的驱动广义上是指:这一段代码操作了硬件去动,所以这一段代码就叫硬件的驱动程序. ...

随机推荐

  1. SpringMVC接受JSON参数详解

    转:https://blog.csdn.net/LostSh/article/details/68923874 SpringMVC接受JSON参数详解及常见错误总结 最近一段时间不想使用Session ...

  2. 0x40二分法

    二分模板一共有两个,分别适用于不同情况.算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值. 版本1 在单调递增序列a中查找>=x的数中最小 ...

  3. Android Support v4,v7,v13的区别和应用场景

    android-support-v4 是谷歌推出的兼容包,最低兼容Android1.6的系统,里面有类似ViewPager等控件.ViewPager在Android 1.6以下的版本是不自带的,所以要 ...

  4. autofac 的好博文

    https://www.cnblogs.com/neverc/p/4914091.html#e https://www.cnblogs.com/stulzq/p/8547839.html

  5. ckplayer插件播放视频

    官网:超酷网页视频 本篇介绍:插件播放视频,  添加插件(额外的功能),  视频格式之间的转换 PC端一般都是利用插件(Flash)来播放视频,可以支持很多格式.网上很多说这个插件的,这里只是做个记录 ...

  6. C# foreach语句

    一.C# foreach语句 foreach语句能够对实现Ienumerable接口的容器进行遍历,并提供一个枚举器来实现Ienumerable接口.foreach语句为数组或对象集合中的各个元素执行 ...

  7. MyBatis单列工厂的实现

    MyBatis单列工厂的实现 SqlSessionFactoryUtils package com.utils; import org.apache.ibatis.io.Resources; impo ...

  8. matlab2018a安装后帮助文档打不开解决方法

    安装matlab2018a破解版后,帮助文档提示需要许可证问题(破解版没有可用许可证): 解决方法是把文档设置为离线即可(预设---->帮助---->安装在本地---->小窗口)

  9. Linux Centos 通过虚拟用户访问FTP的配置

    Linux Centos 通过虚拟用户访问FTP的配置 实验需求: 让下面4个虚拟用户使用系统用户ftpvu的权限来连接到Linux FTP服务器,并确保都锁定在 自己的虚拟用户目录,不能切换到其他目 ...

  10. php 变量的8类类型

    整形,布尔,浮点形,字符串,数组,资源,对象和null php数据类型之查看和判断数据类型 php数据类型之自动转换和强制转换