📄 理解和使用linux的硬件抽象层hal - colorant的专栏 - csdn博客.htm
字号:
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><FONT size=3><FONT
face="Times New Roman">/usr/bin/hal-get-property<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><FONT size=3><FONT
face="Times New Roman">/usr/bin/hal-set-property<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><FONT size=3><FONT
face="Times New Roman">/usr/bin/hal-find-by-capability<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><FONT size=3><FONT
face="Times New Roman">/usr/bin/hal-find-by-property<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><FONT size=3><FONT
face="Times New Roman">/usr/bin/hal-disable-polling<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><FONT size=3><FONT
face="Times New Roman">/usr/bin/hal-is-caller-locked-out<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><FONT size=3><FONT
face="Times New Roman">/usr/bin/hal-lock<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><FONT size=3><FONT
face="Times New Roman">/usr/sbin<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><FONT size=3><FONT
face="Times New Roman">/usr/sbin/hald<O:P></O:P></FONT></FONT></SPAN></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN
style="mso-ansi-language: EN"><O:P><FONT face="Times New Roman"
size=3></FONT></O:P></SPAN></P>
<H2 style="MARGIN: 0cm 0cm 0pt 31.2pt"><FONT face="Times New Roman"><SPAN
lang=EN
style="mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN"><SPAN
style="mso-list: Ignore">2.5<SPAN style="FONT: 7pt 'Times New Roman'"><FONT
size=5>
</FONT></SPAN></SPAN></SPAN><SPAN lang=EN
style="mso-ansi-language: EN">HAL</SPAN></FONT><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">的设备检测流程</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><O:P></O:P></SPAN></H2>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN
style="mso-ansi-language: EN"><FONT
face="Times New Roman">Hal</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">通过</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">udev</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">发现一个新的设备。</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><O:P></O:P></SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">首先,处理</SPAN><SPAN
style="mso-ansi-language: EN"><FONT face="Times New Roman"> <SPAN
lang=EN>fdi/preprobe </SPAN></FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">目录下所有匹配的文件。这个目录下的文件,典型的用途是通过设置</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">info.ignore</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">属性,禁止以后的其它操作,这么做的目的通常是为了绕过某些硬件</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">bug</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">或者忽略某些设备。但也不局限于此,凡是你希望在</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">HAL</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">对设备进行探测操作之前要处理的事情,都可以放在这里。</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><O:P></O:P></SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">而后,</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">HAL</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">调用</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">preprobe</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">中可能指定的</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">callout</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">做一些额外的预处理工作。</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><O:P></O:P></SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN
style="mso-ansi-language: EN"><FONT
face="Times New Roman">HAL</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">开始做实际的硬件探测工作</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><O:P></O:P></SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN
style="mso-ansi-language: EN"><FONT
face="Times New Roman">HAL</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">处理</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">fdi/information</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">目录下的所有相关文件。这里的文件的典型应用是添加一些设备相关的信息。比如,根据</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">bus</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">和</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT face="Times New Roman">vendorID
</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">等信息匹配</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">USB</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">接口的某个品牌的</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">MP3</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">,添加其所支持的音频格式信息(相当于以配置文件的形式,人为的告知系统这个</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">MP3</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">支持什么格式)</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><O:P></O:P></SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN
style="mso-ansi-language: EN"><FONT
face="Times New Roman">HAL</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">处理</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">fdi/policy</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">目录下的所有相关文件。这里的文件的典型应用是关联设备对象可能对应需要的</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">Addon</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">和</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">Callout</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">,例如键盘设备可能会需要绑定一个名为</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">hald-addon-keyboard</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">的</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">addon<O:P></O:P></FONT></SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN
style="mso-ansi-language: EN"><FONT
face="Times New Roman">HAL</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">调用</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT face="Times New Roman">Callout
</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">,通常来说</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">Callout</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">都是一些做</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">Probe</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">用途的程序,运行过就退出。</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><O:P></O:P></SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN
style="mso-ansi-language: EN"><FONT
face="Times New Roman">HAL</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">调用</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">Addon</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">,</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><FONT
face="Times New Roman">Addon</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">通常是用来监听设备状态的服务进程,生命周期和设备的生命周期一致。</SPAN><SPAN
lang=EN style="mso-ansi-language: EN"><O:P></O:P></SPAN></FONT></P>
<P class=MsoNormalIndent style="MARGIN: 0cm 0cm 0pt"><FONT size=3><SPAN lang=EN
style="mso-ansi-language: EN"><FONT
face="Times New Roman">HAL</FONT></SPAN><SPAN
style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN">将设备对象暴露出来完成整个设备检测流程。</SPAN><SPAN
lang=EN sty
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -