硬件了解和使用linux的硬件笼统层hal笼统

gdwkb ,Jul 24 14:31 , 文章教程 , 评论(0) , 引用(0) , 阅读(110) , 本站原创 | |
硬件  装备  消息  属性  次序  笼统  接口  局部  繁杂  分歧  对象  下层  情况  框架  子系统  任务  过程  方法  作者  软体  求是  内核  根源  函数  手段  定义  概念  版本  站点  地址  库函数  大年夜  兴味  标识符  列表  中保  系统  文章  平台  个位  板子  空间  官方站点  同道  会上  功用  相称  希冀  谎话  要害
Liao∴Jie∴He∴Shi∴Yong∴linuxDe∴Ying∴Jian∴Long∴Tong∴Ceng∴hal保管 了解和使用Linux的硬件笼统层HAL
了解和使用Linux的硬件笼统层HAL  
作者刘旭晖 Raymond转载请说明出处  
Emailemailcolorant163.com/email  
BLOGhttp://博客.csdn.net/colorant/  
说来羞愧!基于ARM平台的驱动做了这么长时间了!之前不时正在kernel外面忙活!很少了解下层使用相干的开展!也没有接触过HAL和 DBUS因为比来做的项面前目今层是基于X86的软体框架来做!和之前的形式也有较大年夜的转变!借此时机也想了解壹下下层使用和底层驱动的合作和之前有甚么分歧!所以很天然的就需求了解Hal记录壹下自己的进修了解吧  
自己的才华和测试时间有限!能够下文中有些了解!剖析不壹定准确!欢迎联系斧正  
1 相干说明  
1.1 站点资本  
HAL的官方站点地址http://www.freedesktop.org/wiki/Software/hal  
http://opensolaris.org/os/project/tamarack/hal_re. html solaris系统上的同道写的壹篇剖析HAL框架道理的文章很好!就是版本稍微有点陈  
http://people.freedesktop.org/david/talks/dynamic -device-handling-OLS-2006.pdf 2006年Linux研究会上!Hal的作者David Zeuthen所递交的Paper  
特地提壹下!研究会的站点地址是http://www.linuxsymposium.org/ 有很多Paper看起来真的很不错啊!很有兴味往年的会议有好多Paper我都等不及想看看了  
1.2 任务情况  
Hal自身对情况的请求是  
Linux kernel 2.6.17  
util-linux 2.12r  
udev 089  
dbus 0.61  
glib 2.6.0  
我想!要害是内核了!低于这个版本的内核就不用玩了 8 、至于我的情况  
61656。 硬件平台基于ARM的嵌进式板子  
61656。 软体情况Linux 2.6.21 !便宜文件系统  
61656。 Dbus 1.0.2  
61656。 Hal 0.5.10  
2 了解HAL  
2.1 甚么是HAL  
扯谎话!这局部很多人写过!不过为了文章的完备性!我还是从我了解的恰好重点再写壹下  
起首HAL不是2001太空漫游系列里的那台超等电脑8 、HAL是Hardware Abstraction Layer即硬件笼统层的首字母缩写!以上往源于Hal Spec的框很好的说了然它的构成局部  
它是壹个位于操纵系统和驱动次序递次之上!运转正在用户空间中的效劳次序递次  
它的手段是对下层使用供给壹个壹致的繁杂的查询硬件装备的接口它所谓的笼统!基本上也就仅限于这壹功用!它一般实在不供给对硬件的实践操纵!对硬件的操纵!还是由使用次序递次来完成  
细化来讲!除供给规范的硬件查询接口!它以至实在不考虑若何对硬件停止建设!这不是它要完成的任务!但它确实供给了存储硬件建设相干消息的空间下面我们会说到!那被称为属性  
所以!繁杂的说!妳能够把HAL了解为壹堆的硬件列表和他们的相干属性的汇合  
那么!这壹堆硬件列表能有甚么用呢该当说!它简化了使用的查询逻辑!把这壹局部的繁杂性转移到了使用次序递次以外!由HAL壹致处理!其次!按作者的希冀!当壹些库函数也开端使用HAL的时分!使用次序递次以至能够把对分歧硬件的实践操纵的繁杂性也交给库函数来主动处理  
2.2 HAL的构成框架  
依照下面的框!起首是HAL daemon!HAL的效劳过程其次是硬件消息文件!后缀fdi!再有是Callout和Addons!这些是HAL针对分歧硬件停止额外的处理任务所需的壹些可施行文件或者脚本  
正在Hal外部!每个硬件都是由壹个Device Object装备对象来表现  
每个装备对象会包含以下几个概念的构成局部  
UDI: Unique Device Identifer 每个装备对象的独壹标识符!它是依据BUS消息获得的!它的手段是包管装备的独壹性!同时正在壹个可移除装备屡次拔出拔出过程当中保持相同的值  
Property 属性!是壹个key/value pair每个属性由壹个键和壹个键值构成!用来存储装备对象相干的各类消息  
Method 方法是用来读取设置属性!或者供给某些特定操纵  
Interface 这个更多的是DBUS的概念属性和方法被分类到分歧的Interface中  
2.3 HAL硬件消息的根源  
HAL中装备对象的相干消息根源主要有以下几种  
61656。 经过Sysfs获得!有相称壹局部的属性是经过这类方法获得的!比如UDI!装备的厂商!装备的父节点!装备的总线类型!硬盘的UUID啊等等  
61656。 经过Probe探测获得!有些装备!例如壹个Camera装备!它支撑哪些数据格局啊之类的消息!对使用层次第也是成心义的!可是只是经过Sysfs接口实在不克不及获得!而经过Linux V4L2子系统所定义的的壹些规范接口函数!经过IOCTL能够获得这些消息一般这是由HAL效劳过程调用响应的callout往probe获得相似还有很多子系统都定义了自己规范的接口函数!这为HAL获得进壹步的装备消息供给了能够性次外!装备的以后形状啊!等消息!也能够由Addon经过某些接口获得保管 了解和使用Linux的硬件笼统层HAL 了解和使用Linux的硬件笼统层HAL作者刘旭晖 Raymond转载请说明出处Em
飞扬黑客网  http://www.gdwkb.cn
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]