嵌入式Linux中文站

用户空间和内核空间通讯- Netlink 中

阅读(393)

今天我们来动手演练一下Netlink的用法,看看它到底是如何实现用户-内核空间的数据通信的。我们依旧是在2.6.21的内核环境下进行开发。 在/usr/include/linux/netlink.h文件里包含了Netlink协议簇已经定义好的一些预定义协议: 点击(此处)折叠或打开 #define NETLINK_ROUTE0/*Routing/device hook*/ #define NETLINK_UNUSED1/*Unused number*/ #define NETLINK_USERSOCK2/

用户空间和内核空间通讯-Netlink 上

阅读(208)

导读 Alan Cox在内核1.3版本的开发阶段最先引入了Netlink,刚开始时Netlink是以字符驱动接口的方式提供内核与用户空间的双向数据通信;随后,在2.1内核开发过程中,Alexey Kuznetsov将Netlink改写成一个更加灵活、且易于扩展的基于消息通信接口,并将其应用到高级路由子系统的基础框架里。自那时起,Netlink就成了Linux内核子系统和用户态的应用程序通信的主要手段之一。 2001年,ForCES IETF委员会正式对Netlink进行了标准化的工作。Jamal Hadi

linux内核中的device mapper详解

阅读(509)

关于device mapper在内核中的架构信息在参考文档1,2中有很好的解释,在这里就不过多介绍,以下将详细的根据device mapper的代码解释device mapper机制。 一、 LVM简介 LVM2是Linux 下的逻辑卷管理器,它可以对磁盘进行分区等。但是我们这里用LVM主要是利用用户空间的device mapper 库以及它提供的 dmsetup 工具。 LVM的下载地址为:http://git.fedorahosted.org/git/lvm2.git。下载后在tools文件夹下会看到

Linux 内核中的 Device Mapper 机制

阅读(114)

本文结合具体代码对 Linux 内核中的 device mapper 映射机制进行了介绍。Device mapper 是 Linux 2.6 内核中提供的一种从逻辑设备到物理设备的映射框架机制,在该机制下,用户可以很方便的根据自己的需要制定实现存储资源的管理策略,当前比较流行的 Linux 下的逻辑卷管理器如 LVM2(Linux Volume Manager 2 version)、EVMS(Enterprise Volume Management System)、dmraid(Device Mapper

Linux下USB驱动详解(HOST)

阅读(362)

USB驱动分为两块,一块是USB的bus驱动,这个东西,Linux内核已经做好了,我们可以不管,我们只需要了解它的功能。形象的说,USB的bus驱动相当于铺出一条路来,让所有的信息都可以通过这条USB通道到达该到的地方,这部分工作由usb_core(drivers/usb/usb.c)来完成。当USB设备接到USB控制器接口时,usb_core就检测该设备的一些信息,如生产厂商的ID(VID)和产品的ID(PID),或者是设备所属的class、subclass跟protocol,以便确定应该调用哪一个驱动

linux内核驱动模块开发makefile实例解析

阅读(379)

以下是摘自网络上的一个经典的linux设备驱动的Makefile文件,以及详细的内容解释。此文件可以完成对大部分驱动的编译,使用时只需要稍加修改就可以了。 $( warning KERNELRELEASE = $( KERNELRELEASE ))ifeq ( $( KERNELRELEASE ),) KERNELDIR ?= /lib/modules /$(shell uname -r)/build PWD : = $( shell pwd) MYMOD : = hello modules: $( MA

Linux下的触摸屏驱动

阅读(270)

一. 触摸屏理论概述 对于触摸屏驱动,我们主要需要掌握触摸屏驱动代码和应用层测试代码。下面讲的是基于 Mini2440 的触摸屏驱动,现在的驱动我们都将设备和驱动分离,挂在平台设备总线上,让设备和驱动去匹配。而我们在 linu2.6.32.2 内核版本中的触摸屏驱动仍然没有将设备和驱动分离,这样就不存在匹配问题,这种现象其实我们并不陌生,在我们学习驱动的前期,都会研究简单字符驱动代表 LED 驱动,那个驱动就是把设备和驱动写在了一起。总结下,驱动和设备可以分离也可以不分离,建议分离,而本触摸屏驱动没有分离

Linux驱动之I2C总线

阅读(365)

1.I2C总线的硬件特性:两线式串行总线.用于连接CPU和外设之间的通信接口需要2根信号线,时钟控制线SCL和数据传输信号线SDA.串行:CPU和外设之间传输是一个周期传输一个BIT位, 如果需要写入0X55,需要两个时钟周期才能完成.CPU又称master,外设又称slave. 一个时钟周期传输一个bit:CPU和外设之间传输一个bit位,必须要通过时钟控制信号来实现双方的数据收和发!比如CPU在时钟高电平像数据线写入数据,设备在同一个周期低电平从数据线上接收数据. 总线:两根信号线上可以挂接很多外设,