嵌入式Linux中文站

开发专区

我眼中的Linux设备树(五 根节点)

我眼中的Linux设备树(五 根节点)

阅读(178)

一个最简单的设备树必须包含根节点,cpus节点,memory节点。根节点的名字及全路径都是/,至少需要包含model和compatible两个属性。model属性我们在属性那节已经说过是用来描述产品型号的,类型为字符串,推荐的格式为manufacturer,model-number(非强制的)。根节点的model属性描述的是板子的型号或者芯片平台的型号,如: model = Atmel AT91SAM9G20 family SoC model = Samsung SMDK5420 board based ...

我眼中的Linux设备树(六 memory&chosen节点)

我眼中的Linux设备树(六 memory&chosen节点)

阅读(257)

根节点那一节我们说过,最简单的设备树也必须包含cpus节点和memory节点。memory节点用来描述硬件内存布局的。如果有多块内存,既可以通过多个memory节点表示,也可以通过一个memory节点的reg属性的多个元素支持。举一个例子,假如某个64位的系统有两块内存,分别是 RAM: 起始地址 0x0, 长度 0x80000000 (2GB) RAM: 起始地址 0x100000000, 长度 0x100000000 (4GB) 对于64位的系统,根节点的#address-cells属性和#size-...

linux内核中的device mapper详解

linux内核中的device mapper详解

阅读(340)

关于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 机制

Linux 内核中的 Device Mapper 机制

阅读(104)

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

Linux设备树的用法

Linux设备树的用法

阅读(235)

本文通过为一个新machine写一个设备树来介绍设备树相关的概念,以及如何来描述一个machine。 关于设备树的技术细节描述,需要参考ePAPR文档,ePAPR文档中包含了大量的基础语法之外的细节,如果你需要了解更多本文之外的设备树细节,请参考ePAPR文档。 基本数据格式 设备树是一个由节点及属性组成的简单树结构。属性是基于key-value对的,节点则可以包含子节点以及属性。 如,下面这个树就是一个典型结构: / { node1 { a-string-property = A string; a-s...

Linux下USB驱动详解(HOST)

Linux下USB驱动详解(HOST)

阅读(308)

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实例解析

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

阅读(327)

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

Linux下的触摸屏驱动

Linux下的触摸屏驱动

阅读(230)

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