source: archive/hal.xml

trunk
Last change on this file was 3f2db3a6, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Remove sect1info tags

They only contain a date tag that is nowhere used.

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