source: general/sysutils/hal.xml@ b5b51a2

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 6.3 6.3-rc1 6.3-rc2 6.3-rc3 7.10 7.4 7.5 7.6 7.6-blfs 7.6-systemd 7.7 7.8 7.9 8.0 8.1 8.2 8.3 8.4 9.0 9.1 basic bdubbs/svn elogind gnome kde5-13430 kde5-14269 kde5-14686 kea ken/TL2024 ken/inkscape-core-mods ken/tuningfonts krejzi/svn lazarus lxqt nosym perl-modules plabs/newcss plabs/python-mods python3.11 qt5new rahul/power-profiles-daemon renodr/vulkan-addition systemd-11177 systemd-13485 trunk upgradedb xry111/intltool xry111/llvm18 xry111/soup3 xry111/test-20220226 xry111/xf86-video-removal
Last change on this file since b5b51a2 was c5923846, checked in by Thomas Trepl <thomas@…>, 16 years ago

Spelling and style fixes

git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@7338 af4574ff-66df-0310-9fd7-8a98e5e911e0

  • Property mode set to 100644
File size: 27.0 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7 <!ENTITY hal-download-http "http://freedesktop.org/~david/dist/hal-&hal-version;.tar.gz">
8 <!-- <!ENTITY hal-download-ftp "&gentoo-ftp-repo;/hal-&hal-version;.tar.gz"> -->
9 <!ENTITY hal-download-ftp " ">
10 <!ENTITY hal-md5sum "6a40f49f964e64358e53652038f3059f">
11 <!ENTITY hal-size "1.5 MB">
12 <!ENTITY hal-buildsize "24 MB">
13 <!ENTITY hal-time "0.5 SBU">
14
15 <!ENTITY hal-info-version "20070618">
16 <!ENTITY hal-info-download-http "http://freedesktop.org/~david/dist/hal-info-&hal-info-version;.tar.gz">
17 <!-- <!ENTITY hal-info-download-ftp "&gentoo-ftp-repo;/hal-info-&hal-info-version;.tar.gz"> -->
18 <!ENTITY hal-info-download-ftp " ">
19 <!ENTITY hal-info-md5sum "c7005ccb1765d8359fd2348350770495">
20 <!ENTITY hal-info-size "118 KB">
21]>
22
23<sect1 id="hal" xreflabel="HAL-&hal-version;">
24 <?dbhtml filename="hal.html"?>
25
26 <sect1info>
27 <othername>$LastChangedBy$</othername>
28 <date>$Date$</date>
29 </sect1info>
30
31 <title>HAL-&hal-version;</title>
32
33 <indexterm zone="hal">
34 <primary sortas="a-HAL">HAL</primary>
35 </indexterm>
36
37 <sect2 role="package">
38 <title>Introduction to HAL</title>
39
40 <para><application>HAL</application> is a hardware abstraction layer, which
41 is a piece of software that provides a view of the various hardware
42 attached to a system. In addition to this, <application>HAL</application>
43 keeps detailed metadata for each piece of hardware and provides hooks such
44 that system and desktop-level software can react to changes in the hardware
45 configuration in order to maintain system policy.</para>
46
47 <para>The most important goal of <application>HAL</application> is to
48 provide plug-and-play facilities for UNIX-like desktops with focus on
49 providing a rich and extensible description of device characteristics and
50 features. One example of the functionality provided by
51 <application>HAL</application> is when you plug in a USB storage device.
52 <application>HAL</application> can automatically create a mount point in
53 <filename class="directory">/media</filename> and mount the device.</para>
54
55 <bridgehead renderas="sect3">Package Information</bridgehead>
56 <itemizedlist spacing="compact">
57 <listitem>
58 <para>Download (HTTP): <ulink url="&hal-download-http;"/></para>
59 </listitem>
60 <listitem>
61 <para>Download (FTP): <ulink url="&hal-download-ftp;"/></para>
62 </listitem>
63 <listitem>
64 <para>Download MD5 sum: &hal-md5sum;</para>
65 </listitem>
66 <listitem>
67 <para>Download size: &hal-size;</para>
68 </listitem>
69 <listitem>
70 <para>Estimated disk space required: &hal-buildsize;</para>
71 </listitem>
72 <listitem>
73 <para>Estimated build time: &hal-time;</para>
74 </listitem>
75 </itemizedlist>
76
77 <bridgehead renderas="sect3">Additional Package Download</bridgehead>
78 <itemizedlist spacing='compact'>
79 <title>Required Hardware Data</title>
80 <listitem>
81 <para>Download (HTTP): <ulink url="&hal-info-download-http;"/></para>
82 </listitem>
83 <listitem>
84 <para>Download (FTP): <ulink url="&hal-info-download-ftp;"/></para>
85 </listitem>
86 <listitem>
87 <para>Download MD5 sum: &hal-info-md5sum;</para>
88 </listitem>
89 <listitem>
90 <para>Download size: &hal-info-size;</para>
91 </listitem>
92 </itemizedlist>
93
94 <bridgehead renderas="sect3">HAL Dependencies</bridgehead>
95
96 <bridgehead renderas="sect4">Required</bridgehead>
97 <para role="required"><xref linkend="dbus-glib"/> and
98 <xref linkend="perl-xml-parser"/></para>
99
100 <bridgehead renderas="sect4">Recommended</bridgehead>
101 <para role="recommended"><xref linkend="pciutils"/>
102 (with a current <filename>pci.ids</filename> file) and
103 <xref linkend="usbutils"/>
104 (with a current <filename>usb.ids</filename> file)</para>
105
106 <bridgehead renderas="sect4">Optional (to Build
107 <command>hal-device-manager</command>)</bridgehead>
108 <para role="optional"><xref linkend="python"/></para>
109
110 <bridgehead renderas="sect4">Optional (to Create Documentation)</bridgehead>
111 <para role="optional"><xref linkend="libxml2"/> and
112 <ulink url="http://cyberelk.net/tim/xmlto/">xmlto</ulink></para>
113
114 <bridgehead renderas="sect4">Optional</bridgehead>
115 <para role="optional"><xref linkend="gtk-doc"/>,
116 <xref linkend="libusb"/>,
117 <ulink url="http://www.gnu.org/software/parted/index.shtml">Parted</ulink>*,
118 <ulink url="http://linux.dell.com/libsmbios/main/index.html">libsmbios</ulink>,
119 <ulink url="http://gitweb.freedesktop.org/?p=PolicyKit.git;a=summary">PolicyKit</ulink>,
120 and <xref linkend="intltool"/></para>
121
122 <para>* Use the following command after changing into the
123 <application>HAL</application> source directory to modify the package
124 <command>configure</command> script if you have
125 <application>Parted</application> version 1.8.7 installed.</para>
126
127<screen><userinput>sed -i -e 's%, 1.8.6%&amp;, 1.8.7%' \
128 -e 's% or 1.8.6%/1.8.6 or 1.8.7%' \
129 -e 's%6))%6) ||\
130 (major == 1 \&amp;\&amp; minor == 8 \&amp;\&amp; micro == 7))%' \
131 configure</userinput></screen>
132
133 <para condition="html" role="usernotes">User Notes:
134 <ulink url="&blfs-wiki;/hal"/></para>
135
136 </sect2>
137
138 <sect2 role="installation">
139 <title>Installation of HAL</title>
140
141 <para>You must create a dedicated user and group before installing the
142 package. Though the default BLFS instructions run the
143 <application>HAL</application> daemon as the
144 <systemitem class="username">root</systemitem> user, a configuration file
145 is installed which has the dedicated user's name hard-coded in it. This
146 causes a confusing message to be generated when starting the
147 <application>D-BUS</application> daemon. Issue the following commands as
148 the <systemitem class="username">root</systemitem> user:</para>
149
150<screen role="root"><userinput>groupadd -g 19 haldaemon &amp;&amp;
151useradd -c "HAL Daemon User" -d /dev/null -u 19 \
152 -g haldaemon -s /bin/false haldaemon</userinput></screen>
153
154 <para>Install <application>HAL</application> by running the following
155 commands:</para>
156
157<screen><userinput>./configure --prefix=/usr \
158 --sysconfdir=/etc \
159 --libexecdir=/usr/lib/hal \
160 --localstatedir=/var &amp;&amp;
161make</userinput></screen>
162
163 <para>To test the results, issue <command>make check</command>.</para>
164
165 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
166
167<screen role="root"><userinput>make install</userinput></screen>
168
169 <para>Install the <application>HAL</application> hardware data with the
170 following commands:</para>
171
172<screen><userinput>tar -xf ../hal-info-&hal-info-version;.tar.gz &amp;&amp;
173cd hal-info-&hal-info-version; &amp;&amp;
174./configure --prefix=/usr</userinput></screen>
175
176 <para>Finally, as the <systemitem class="username">root</systemitem> user:</para>
177
178<screen role="root"><userinput>make install</userinput></screen>
179
180 </sect2>
181
182 <sect2 role="commands">
183 <title>Command Explanations</title>
184
185 <para><parameter>--libexecdir=/usr/lib/hal</parameter>: This parameter
186 forces the installation of libexec files to
187 <filename class='directory'>/usr/lib/hal</filename> instead of
188 <filename class='directory'>/usr/libexec</filename>.</para>
189
190 <para><parameter>--localstatedir=/var</parameter>: This parameter forces
191 the creation of the <filename>pid</filename> file to
192 <filename class='directory'>/var/run/hald</filename> instead of
193 <filename class='directory'>/usr/var/run/hald</filename>.</para>
194
195 <para><parameter>--enable-docbook-docs
196 --docdir=/usr/share/doc/hal-&hal-version;</parameter>: If <xref
197 linkend="libxml2"/> and <ulink
198 url="http://cyberelk.net/tim/xmlto/">xmlto</ulink> are available, these
199 parameters enable the <application>HAL</application> specification
200 documentation to be built.</para>
201
202 </sect2>
203
204 <sect2>
205 <title>Run-Time Dependencies</title>
206
207 <para>A few more packages enable more functionality in
208 <application>HAL</application> at run-time. These include <ulink
209 url="http://ca.geocities.com/jefftranter@rogers.com/eject.html">Eject</ulink>,
210 <ulink url="http://people.freedesktop.org/~mccann/dist/">ConsoleKit</ulink>,
211 <ulink url="http://www.nongnu.org/dmidecode/">dmidecode</ulink>,
212 <ulink url="http://sourceware.org/dm/">Device-mapper</ulink>,
213 <ulink url="http://luks.endorphin.org/dm-crypt">Cryptsetup-LUKS</ulink>, and
214 <ulink url="http://cvsweb.freedesktop.org/pm-utils/pm-utils/">pm-utils</ulink>.</para>
215
216 <para>The <xref linkend="hal-device-manager"/> program requires several
217 additional <application>Python</application> modules to be available at
218 runtime. These are <xref linkend="dbus-python"/>,
219 <xref linkend="pygtk"/> (including the gtk and gtk.libglade modules), and
220 <xref linkend="gnome-python"/> (including the gnome.ui module).</para>
221
222 </sect2>
223
224 <sect2 role="configuration">
225 <title>Configuring HAL</title>
226
227 <sect3 id="hal-config">
228 <title>Config Files</title>
229 <para><filename>/etc/dbus-1/system.d/hal.conf</filename>,
230 <filename>/etc/dbus-1/system.d/halusers.conf</filename> and
231 <filename>/etc/hal/*</filename></para>
232
233 <indexterm zone="hal hal-config">
234 <primary sortas="e-etc-dbus-1-system.d-hal.conf">/etc/dbus-1/system.d/hal.conf</primary>
235 </indexterm>
236
237 <indexterm zone="hal hal-config">
238 <primary sortas="e-etc-dbus-1-system.d-halusers.conf">/etc/dbus-1/system.d/halusers.conf</primary>
239 </indexterm>
240
241 <indexterm zone="hal hal-config">
242 <primary sortas="e-etc-hal-star">/etc/hal/*</primary>
243 </indexterm>
244 </sect3>
245
246 <sect3><title>Configuration Information</title>
247 <sect4><title>Allowing users to invoke HAL methods</title>
248
249 <para>The default setup for <application>HAL</application> is to allow
250 only certain users to invoke methods such as Mount(). These are
251 the <systemitem class="username">root</systemitem> user and the user
252 determined to be at the active console using <ulink
253 url="&blfs-wiki;/linux-pam">pam_console</ulink>. If you are not set
254 up to use <xref linkend="linux-pam"/> and <ulink
255 url="&blfs-wiki;/linux-pam">pam_console</ulink>, create a group that
256 is allowed to invoke <application>HAL</application> methods with the
257 following commands:</para>
258
259<screen role="root"><userinput>groupadd -g 61 halusers &amp;&amp;
260cat &gt; /etc/dbus-1/system.d/halusers.conf &lt;&lt; "EOF"
261<literal>&lt;!DOCTYPE busconfig PUBLIC
262 "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
263 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"&gt;
264&lt;busconfig&gt;
265
266 &lt;!-- Allow users in the halusers group invoke HAL methods --&gt;
267 &lt;policy group="halusers"&gt;
268 &lt;allow send_interface="org.freedesktop.Hal.Device.SystemPowerManagement"/&gt;
269 &lt;allow send_interface="org.freedesktop.Hal.Device.LaptopPanel"/&gt;
270 &lt;allow send_interface="org.freedesktop.Hal.Device.Volume"/&gt;
271 &lt;allow send_interface="org.freedesktop.Hal.Device.Volume.Crypto"/&gt;
272 &lt;/policy&gt;
273
274&lt;/busconfig&gt;</literal>
275EOF</userinput></screen>
276
277 <para>Now add the users you would like to the <systemitem
278 class="groupname">halusers</systemitem> group to use
279 <application>HAL</application>.</para>
280
281<screen role="root"><userinput>usermod -a -G halusers <replaceable>&lt;username&gt;</replaceable></userinput></screen>
282
283 <para>Note that these users still need
284 to have appropriate permissions to access the devices that
285 <application>HAL</application> will invoke its methods on.</para>
286
287 <para>With the above configuration in place, authorized users now
288 have the ability to unmount disk partitions mounted at non-standard
289 locations such as <filename class='directory'>/pub</filename>. If
290 you'd like to restrict this policy to only drives which are considered
291 removable or hotpluggable, add the following configuration file as
292 the <systemitem class='username'>root</systemitem> user:</para>
293
294<screen role="root"><userinput>cat &gt; /etc/hal/fdi/policy/no-fixed-drives.fdi &lt;&lt; "EOF"
295<literal>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!-- -*- SGML -*- --&gt;
296
297&lt;!-- Don't allow HAL methods on disks that are not
298 removable or hotpluggable --&gt;
299
300&lt;deviceinfo version="0.2"&gt;
301&lt;device&gt;
302 &lt;match key="@block.storage_device:storage.hotpluggable" bool="false"&gt;
303 &lt;match key="@block.storage_device:storage.removable" bool="false"&gt;
304 &lt;merge key="volume.ignore" type="bool"&gt;true&lt;/merge&gt;
305 &lt;/match&gt;
306 &lt;/match&gt;
307&lt;/device&gt;
308&lt;/deviceinfo&gt;</literal>
309EOF</userinput></screen>
310 </sect4>
311
312 <sect4><title>Installing mount helpers</title>
313 <para><application>HAL</application> only provides the methods such
314 as Mount() to act on hardware. In order to take advantage of these,
315 a <application>HAL</application> event handler such as
316 <xref linkend="gnome-volume-manager"/> or <ulink
317 url="http://ivman.sourceforge.net/">Ivman</ulink> should be
318 installed.</para>
319 <!-- FIXME: is Ivman still alive? -->
320 <!-- FIXME: explicitly name the mount helpers
321 from KDE (???) and Xfce (exo-mount) -->
322 </sect4>
323
324 <sect4><title>Changing default mount options</title>
325 <para>In some cases, it is necessary to specify some default mount
326 options for filesystems. E.g., in non-English environments, the
327 <option>iocharset</option> and <option>codepage</option> options
328 are needed for filesystems of Windows origin in order to show
329 national characters correctly. Also, due to a
330 <ulink url="https://launchpad.net/bugs/133567">bug</ulink> in the
331 Linux kernel version in LFS (2.6.22.x), you may want to pass the
332 <option>usefree</option> option to vfat filesystems in order to reduce
333 the time needed to determine the amount of free space on the
334 filesystem.</para>
335
336 <para>Google search results for <quote>hal default mount options</quote>
337 are still full of recommendations to create <filename>*.fdi</filename>
338 files mentioning either
339 <option>volume.policy</option> or <option>storage.policy</option> keys.
340 Such recommendations worked for HAL-0.4.x only and are invalid now.
341 For HAL-&hal-version;, mount options are expected to be handled
342 as follows:</para>
343
344 <itemizedlist>
345 <listitem>
346 <para>An event handler from the desktop environment receives an
347 event describing the newly-added storage device.</para>
348 </listitem>
349 <listitem>
350 <para>If the storage device is not already mentioned in
351 <filename>/etc/fstab</filename>, mount options are fetched from
352 a database of user preferences, which is specific to the desktop
353 environment, and passed back to HAL.
354 This process can be influenced by the filesystem type
355 and possibly other volume properties available from HAL.</para>
356 </listitem>
357 <listitem>
358 <para>If the options are in the list of permitted ones, HAL
359 mounts the volume.</para>
360 </listitem>
361 </itemizedlist>
362
363 <para>The important point above is that the configuration procedure is
364 desktop-specific. However, as of December, 2007, only GNOME allows the
365 user to set default mount options on a per-filesystem basis,
366 as described in the next paragraph.
367 KDE allows the mount options to be set only on a per-volume basis,
368 not per-filesystem, which is a
369 <ulink url="http://bugs.kde.org/show_bug.cgi?id=133456">bug</ulink>,
370 because, as mentioned in the report, <quote>for every new device (let's
371 say your friend's USB stick) you have to first not mount it, then change
372 options and then mount</quote>. Xfce, if compiled with HAL support,
373 <ulink url="http://bugzilla.xfce.org/show_bug.cgi?id=2891">hard-codes</ulink>
374 the mount options without any means to override them,
375 which is even worse.
376 <!-- (for BLFS editors only: they mention policy-kit as a future
377 solution, but, from the description, policy-kit looks like
378 an XML-ized sudo-like confguration parser, which has nothing
379 common with the "default mount options" problem. -->
380 In KDE and Xfce, if the built-in default mount options are not suitable,
381 it is needed to mention every possible removable storage device in
382 <filename>/etc/fstab</filename> with the correct options, thus mostly
383 defeating the point of installing HAL.</para>
384
385 <para>In order to adjust the default mount options, GNOME users should
386 change the
387 <systemitem>/system/storage/default_options/[fs_type]/mount_options</systemitem>
388 GConf key either using <xref linkend="gconf-editor"/>, or from the
389 command line, as demonstrated in the following example:</para>
390
391<screen><userinput>gconftool-2 --type list --list-type=string \
392 --set /system/storage/default_options/vfat/mount_options \
393 "[shortname=mixed,uid=,usefree,iocharset=koi8-r,codepage=866]"</userinput></screen>
394
395 <para>See more details in the gnome-mount(1) manual page.</para>
396 </sect4>
397
398 <sect4><title>Adding allowed mount options</title>
399 <para>The list of mount options permitted in the default HAL
400 configuration resides in the
401 <filename>/usr/share/hal/fdi/policy/10osvendor/20-storage-methods.fdi</filename>
402 file. GNOME and KDE users may want to use options not in this
403 list (in the above example, this applies to the <option>usefree</option>
404 option). In this case, as <systemitem class="username">root</systemitem>
405 user, create a custom policy file that mentions unknown mount
406 options:</para>
407
408<screen role="root"><userinput>cat &gt; /etc/hal/fdi/policy/user-options.fdi &lt;&lt; "EOF"
409<literal>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!-- -*- SGML -*- --&gt;
410
411&lt;!--
412This file is used to set custom options to the HAL policy settings.
413The default policy settings are defined in files contained in the
414/usr/share/hal/fdi/policy subdirectories. User defined customizations
415should be in files contained in the /etc/hal/fdi/policy directory.
416--&gt;
417
418&lt;deviceinfo version="0.2"&gt;
419 &lt;device&gt;
420
421 &lt;!-- this is to be able to mount media in drives we cannot poll,
422 e.g. IDE Zip Drives and PC style floppy drives --&gt;
423 &lt;match key="storage.media_check_enabled" bool="false"&gt;
424 &lt;match key="storage.no_partitions_hint" bool="true"&gt;
425 &lt;append key="volume.mount.valid_options" type="strlist"&gt;usefree&lt;/append&gt;
426 &lt;!-- Insert other options here --&gt;
427 &lt;/match&gt;
428 &lt;/match&gt;
429
430 &lt;match key="volume.fsusage" string="filesystem"&gt;
431
432 &lt;!-- allow these mount options for vfat --&gt;
433 &lt;match key="volume.fstype" string="vfat"&gt;
434 &lt;append key="volume.mount.valid_options" type="strlist"&gt;usefree&lt;/append&gt;
435 &lt;!-- Insert other options here --&gt;
436 &lt;/match&gt;
437 &lt;/match&gt;
438
439 &lt;/device&gt;
440&lt;/deviceinfo&gt;</literal>
441EOF</userinput></screen>
442
443 </sect4>
444 </sect3>
445
446 <sect3 id="hal-init">
447 <title>Boot Script</title>
448
449 <para>To automatically start the <command>hald</command> daemon
450 when the system is rebooted, install the
451 <filename>/etc/rc.d/init.d/haldaemon</filename>
452 bootscript from the
453 <xref linkend="bootscripts"/> package.</para>
454
455 <indexterm zone="hal hal-init">
456 <primary sortas="f-haldaemon">haldaemon</primary>
457 </indexterm>
458
459 <!-- Not sure if this is still required any longer as the HAL daemon
460 used to hang if you didn't first restart the DBUS daemon. This is
461 not the case any longer, but it still seems that D-Bus should be
462 restarted, as the hald.conf file is read by the D-BUS daemon.
463 Leaving it in for now until it is positively confirmed it is not
464 required. -->
465
466 <important>
467 <para>If the system-wide <application>D-BUS</application> daemon was
468 running during the installation of <application>HAL</application>,
469 ensure you stop and restart the <application>D-BUS</application>
470 daemon before attempting to start the <command>hald</command>
471 daemon.</para>
472 </important>
473
474<screen role="root"><userinput>make install-haldaemon</userinput></screen>
475
476 </sect3>
477
478 </sect2>
479
480 <sect2 role="content">
481 <title>Contents</title>
482
483 <segmentedlist>
484 <segtitle>Installed Programs</segtitle>
485 <segtitle>Installed Libraries</segtitle>
486 <segtitle>Installed Directories</segtitle>
487
488 <seglistitem>
489 <seg>hal-device, hal-device-manager, hal-disable-polling,
490 hal-find-by-capability, hal-find-by-property, hal-get-property,
491 hal-is-caller-locked-out, hal-lock, hal-set-property, hald and
492 lshal</seg>
493 <seg>libhal.{so,a} and libhal-storage,{so,a}</seg>
494 <seg>/etc/hal, /usr/include/hal, /usr/lib/hal,
495 /usr/share/doc/hal-&hal-version;, /usr/share/hal, /var/cache/hald,
496 /var/lib/hal, and /var/run/hald</seg>
497 </seglistitem>
498 </segmentedlist>
499
500 <variablelist>
501 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
502 <?dbfo list-presentation="list"?>
503 <?dbhtml list-presentation="table"?>
504
505 <varlistentry id="hal-device">
506 <term><command>hal-device</command></term>
507 <listitem>
508 <para>is used to create, remove or show a
509 <application>HAL</application> device.</para>
510 <indexterm zone="hal hal-device">
511 <primary sortas="b-hal-device">hal-device</primary>
512 </indexterm>
513 </listitem>
514 </varlistentry>
515
516 <varlistentry id="hal-device-manager">
517 <term><command>hal-device-manager</command></term>
518 <listitem>
519 <para>shows a graphical representation of all the devices
520 <application>HAL</application> is aware of. Here is a <ulink
521 url="http://cvs.freedesktop.org/*checkout*/hal/hal/doc/spec/hal-devices1.png">
522 screenshot</ulink> of <command>hal-device-manager</command>
523 communicating with the HAL daemon and displaying a tree of device
524 objects. The shown properties in the screenshot are for a device
525 object representing a hard disk.</para>
526 <indexterm zone="hal hal-device-manager">
527 <primary sortas="b-hal-device-manager">hal-device-manager</primary>
528 </indexterm>
529 </listitem>
530 </varlistentry>
531
532 <varlistentry id="hal-disable-polling">
533 <term><command>hal-disable-polling</command></term>
534 <listitem>
535 <para>can be used to to disable and enable media detection on
536 drives with removable storage.</para>
537 <indexterm zone="hal hal-disable-polling">
538 <primary sortas="b-hal-disable-polling">hal-disable-polling</primary>
539 </indexterm>
540 </listitem>
541 </varlistentry>
542
543 <varlistentry id="hal-find-by-capability">
544 <term><command>hal-find-by-capability</command></term>
545 <listitem>
546 <para>prints the Unique Device Identifiers for
547 <application>HAL</application> device objects of a given
548 capability.</para>
549 <indexterm zone="hal hal-find-by-capability">
550 <primary sortas="b-hal-find-by-capability">hal-find-by-capability</primary>
551 </indexterm>
552 </listitem>
553 </varlistentry>
554
555 <varlistentry id="hal-find-by-property">
556 <term><command>hal-find-by-property</command></term>
557 <listitem>
558 <para>prints the Unique Device Identifiers for
559 <application>HAL</application> device objects where a given property
560 assumes a given value.</para>
561 <indexterm zone="hal hal-find-by-property">
562 <primary sortas="b-hal-find-by-property">hal-find-by-property</primary>
563 </indexterm>
564 </listitem>
565 </varlistentry>
566
567 <varlistentry id="hal-get-property">
568 <term><command>hal-get-property</command></term>
569 <listitem>
570 <para>retrieves a property from a device.</para>
571 <indexterm zone="hal hal-get-property">
572 <primary sortas="b-hal-get-property">hal-get-property</primary>
573 </indexterm>
574 </listitem>
575 </varlistentry>
576
577 <varlistentry id="hal-set-property">
578 <term><command>hal-set-property</command></term>
579 <listitem>
580 <para>attempts to set property for a device. Note that, due to
581 security considerations, it may not be possible to set a
582 property.</para>
583 <indexterm zone="hal hal-set-property">
584 <primary sortas="b-hal-set-property">hal-set-property</primary>
585 </indexterm>
586 </listitem>
587 </varlistentry>
588
589 <varlistentry id="hal-is-caller-locked-out">
590 <term><command>hal-is-caller-locked-out</command></term>
591 <listitem>
592 <para>determines if a specific caller is locked out of a specific
593 <application>D-Bus</application> interface on a specific device.</para>
594 <indexterm zone="hal hal-is-caller-locked-out">
595 <primary sortas="b-hal-is-caller-locked-out">hal-is-caller-locked-out</primary>
596 </indexterm>
597 </listitem>
598 </varlistentry>
599
600 <varlistentry id="hald">
601 <term><command>hald</command></term>
602 <listitem>
603 <para>is the <application>HAL</application> daemon program.</para>
604 <indexterm zone="hal hald">
605 <primary sortas="b-hald">hald</primary>
606 </indexterm>
607 </listitem>
608 </varlistentry>
609
610 <varlistentry id="lshal">
611 <term><command>lshal</command></term>
612 <listitem>
613 <para>shows all devices and their properties. If the --monitor option
614 is given then the device list and all devices are monitored for
615 changes.</para>
616 <indexterm zone="hal lshal">
617 <primary sortas="b-lshal">lshal</primary>
618 </indexterm>
619 </listitem>
620 </varlistentry>
621
622 <varlistentry id="libhal">
623 <term><filename class='libraryfile'>libhal.{so,a}</filename></term>
624 <listitem>
625 <para>contains the API functions required by the
626 <application>HAL</application> programs.</para>
627 <indexterm zone="hal libhal">
628 <primary sortas="c-libhal">libhal.{so,a}</primary>
629 </indexterm>
630 </listitem>
631 </varlistentry>
632
633 <varlistentry id="libhal-storage">
634 <term><filename class='libraryfile'>libhal-storage.{so,a}</filename></term>
635 <listitem>
636 <para>contains the API functions required by the
637 <application>HAL</application> storage and volume utility
638 programs.</para>
639 <indexterm zone="hal libhal-storage">
640 <primary sortas="c-libhal-storage">libhal-storage.{so,a}</primary>
641 </indexterm>
642 </listitem>
643 </varlistentry>
644
645 </variablelist>
646
647 </sect2>
648
649</sect1>
Note: See TracBrowser for help on using the repository browser.