![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入linux设备驱动程序内核机制
hai0808
这个作者很懒,什么都没留下…
展开
-
第一章 内核模块 elf文件
1.内核模块的文件格式elfelf分为三部分:头部ELF header ,中间Section, 尾部Section header table(1).Elf header部分 大小52字节e_type 表明文件类型,驱动值为1e_shoff 表明Section header table部分在文件中的偏移量e_shentsize 表明Section header table部分原创 2016-11-14 14:58:46 · 673 阅读 · 0 评论 -
LINUX设备驱动之设备模型一--kobject
http://blog.csdn.net/yangzhu1982/article/details/6186016Linux设备驱动之设备模型一kobjectEric Fang 2010-01-11--------------------------------------------------------------本站分析linux内核源码,版本号为2.6.32.3转转载 2017-01-20 16:19:09 · 229 阅读 · 0 评论 -
aufs在内核2.6.10编译通过
#include #include #include #include #include #include #define AUFS_MAGIC 0x64668735static struct vfsmount *aufs_mount;static int aufs_mount_count;static struct inode *aufs_get_inode(原创 2017-01-18 19:46:18 · 600 阅读 · 0 评论 -
Linux内核检测USB事件
Linux内核检测USB事件大家好,我要在Linux内核层中实现以下功能:当有U盘插入时,能检测到这一动作,并对U盘进行验证,只有通过验证的U盘才允许使用。比如只有U盘的某个特定扇区是自己定义的内容时才允许使用。请问,有什么好的思路吗?如果你能找到u盘的唯一标识的话,可以用个散列算法比如md5(当然不要告诉别人),然后固定存在u盘的某个区域。比如mbr后面有32KB的最后部分。不过转载 2016-12-14 16:59:20 · 3419 阅读 · 0 评论 -
linux usb初始化
linux usb初始化谨以此文纪念过往的岁月 一.前言对于usb的普通驱动,我们了解了不少,但是对于usb的真正核心还是不是太理解。该文中对于usb的初始化进行一定的学习,如有不对之处,请各位多多指教。 二.usb子系统初始化。话说在linux启动之初,就会将usb子系统初始化完成,亦如input子系统和V4L2一样。usb_init就完成了初始化以及启动usb hub守转载 2016-12-14 16:47:12 · 1727 阅读 · 0 评论 -
linux class device
linux class device谨以此文纪念过往的岁月。1.class的创建linux class顾名思义就是类,何所谓类呢?就是一组设备具有共同性而抽象出来的。这个概念在C++中很常见。linux中借用这个来管理一组类似的设备。在linux中采用class_create来创建一个新类。抓住主干来分析函数struct class *__class_crea转载 2016-12-14 16:35:14 · 465 阅读 · 0 评论 -
linux device注册
device注册谨以此文纪念过往的岁月。device和driver是设备管理系统的核心,作为驱动工程师有必要去一探究竟。1.device对于上层而言device的注册很简单只要简单的去device_register就ok了,但是对于内核而言,他要去完成很多事情。int device_register(struct device *dev){ device_i转载 2016-12-14 16:29:28 · 660 阅读 · 0 评论 -
u盘驱动 内核代码阅读 2.6.11.12版本
本文主要是对从U盘插入电脑后,驱动是咋样加载识别流程先从device_register开始,这个函数在哪里调用的以后再分析/** * 往设备驱动程序模型中插入一个新的设备驱动。 * 并自动的在sysfs文件系统下为其创建一个新的目录 *///drivers\base\Core.cint device_register(struct device *dev){原创 2016-12-14 16:00:35 · 314 阅读 · 0 评论 -
字符设备驱动开发流程详解
字符驱动相关概念解析一、驱动初始化1.1分配设备描述结构1.2初始化设备描述结构1.3.注册设备描述结构1.4.硬件初始化二、实现设备操作2.1open2.2read2.3.write2.4.lseek2.5close2.6参数分析三、驱动注销**字符驱动相关概念解析1设备描述结转载 2016-11-15 09:37:14 · 5511 阅读 · 0 评论 -
字符设备驱动代码完整分析
1.编译、安装驱动程序Linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此编译、安装驱动程序实质是编译、安装内核模块memdev.c#include #include #include #include #include int dev1_registers[5];int dev2_registers[5];struct cdev cdev;de转载 2016-11-15 09:02:17 · 373 阅读 · 0 评论 -
第二章字符设备代码
////*字符设备驱动程序源代码*/ /*demo_chr_dev.c*/ #include #include #include #include // static struct cdev chr_dev;//定义一个字符设备对象 static dev_t ndev;//字符设备节点的设备号 static int chr_open(s原创 2016-11-14 18:15:01 · 241 阅读 · 0 评论 -
linux设备驱动——总线、设备、驱动
http://blog.csdn.net/wh_19910525/article/details/73980512.6 版本内核是如何管理总线,驱动,设备之间的关系的,关于bus_type、device_driver、device这三个内核结构在内核代码中可以找到。由于这三个结构的重要性,我们在这里先将它们贴出来; 1、设备结构的定义: struct de转载 2017-01-20 17:12:35 · 232 阅读 · 0 评论