source: general/sysutils/hal.xml@ 3e5fad0

10.0 10.1 11.0 11.1 11.2 11.3 12.0 12.1 6.2 6.2.0 6.2.0-rc1 6.2.0-rc2 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 3e5fad0 was 3e5fad0, checked in by Randy McMurchy <randy@…>, 18 years ago

Updated to HAL-0.5.7

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

  • Property mode set to 100644
File size: 20.6 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3 "http://www.oasis-open.org/docbook/xml/4.4/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 "ftp://ftp.fu-berlin.de/unix/linux/mirrors/gentoo/distfiles/hal-&hal-version;.tar.gz">
9 <!ENTITY hal-md5sum "4163afb8285db64e00e7b1392b401d92">
10 <!ENTITY hal-size "1.5 MB">
11 <!ENTITY hal-buildsize "19.0 MB">
12 <!ENTITY hal-time "0.5 SBU">
13]>
14
15<sect1 id="hal" xreflabel="HAL-&hal-version;">
16 <?dbhtml filename="hal.html"?>
17
18 <sect1info>
19 <othername>$LastChangedBy$</othername>
20 <date>$Date$</date>
21 </sect1info>
22
23 <title>HAL-&hal-version;</title>
24
25 <indexterm zone="hal">
26 <primary sortas="a-HAL">HAL</primary>
27 </indexterm>
28
29 <sect2 role="package">
30 <title>Introduction to HAL</title>
31
32 <para><application>HAL</application> is a hardware abstraction layer, which
33 is a piece of software that provides a view of the various hardware
34 attached to a system. In addition to this, <application>HAL</application>
35 keeps detailed metadata for each piece of hardware and provides hooks such
36 that system and desktop-level software can react to changes in the hardware
37 configuration in order to maintain system policy.</para>
38
39 <para>The most important goal of <application>HAL</application> is to
40 provide plug-and-play facilities for UNIX-like desktops with focus on
41 providing a rich and extensible description of device characteristics and
42 features. One example of the functionality provided by
43 <application>HAL</application> is when you plug in a USB storage device.
44 <application>HAL</application> can automatically create an appropriate
45 entry in the <filename>/etc/fstab</filename> file and create the
46 corresponding mount point in
47 <filename class="directory">/media</filename>.</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">HAL Dependencies</bridgehead>
72
73 <bridgehead renderas="sect4">Required</bridgehead>
74 <para role="required"><xref linkend="glib2"/>,
75 <xref linkend="dbus"/> (see the <xref linkend="hal-requirements"/>),
76 <xref linkend="python"/>, and
77 <xref linkend="perl-xml-parser"/></para>
78
79 <bridgehead renderas="sect4">Recommended</bridgehead>
80 <para role="recommended"><xref linkend="pciutils"/>
81 (with a current <filename>pci.ids</filename> file) and
82 <xref linkend="usbutils"/>
83 (with a current <filename>usb.ids</filename> file)</para>
84
85 <bridgehead renderas="sect4">Optional</bridgehead>
86 <para role="optional"><xref linkend="pkgconfig"/>,
87 <xref linkend="intltool"/>,
88 <xref linkend="libusb"/>,
89 <xref linkend="doxygen"/>, and
90 <xref linkend="docbook-utils"/></para>
91
92 <para condition="html" role="usernotes">User Notes:
93 <ulink url="&blfs-wiki;/hal"/></para>
94
95 </sect2>
96
97 <sect2 role="installation">
98 <title>Installation of HAL</title>
99
100 <para>You must create a dedicated user and group before installing the
101 package. Though the default BLFS instructions run the
102 <application>HAL</application> daemon as the
103 <systemitem class="username">root</systemitem> user, a configuration file
104 is installed which has the dedicated user's name hard-coded in it. This
105 causes a confusing message to be generated when starting the
106 <application>D-BUS</application> daemon. Issue the following commands as
107 the <systemitem class="username">root</systemitem> user:</para>
108
109<screen role="root"><userinput>groupadd -g 19 haldaemon &amp;&amp;
110useradd -c "HAL Daemon User" -d /dev/null -u 19 \
111 -g haldaemon -s /bin/false haldaemon</userinput></screen>
112
113 <para>Install <application>HAL</application> by running the following
114 commands:</para>
115
116<screen><userinput>./configure --prefix=/usr \
117 --sysconfdir=/etc \
118 --libexecdir=/usr/lib/hal \
119 --localstatedir=/var &amp;&amp;
120make</userinput></screen>
121
122 <para>To test the results, issue <command>make check</command>.</para>
123
124 <para>Now, as the <systemitem class="username">root</systemitem> user:</para>
125
126<screen role="root"><userinput>make install &amp;&amp;
127install -v -m755 -d /var/run/hald</userinput></screen>
128
129 </sect2>
130
131 <sect2 role="commands">
132 <title>Command Explanations</title>
133
134 <para><parameter>--libexecdir=/usr/lib/hal</parameter>: This parameter
135 forces the installation of libexec files to
136 <filename class='directory'>/usr/lib/hal</filename> instead of
137 <filename class='directory'>/usr/libexec</filename>.</para>
138
139 <para><parameter>--localstatedir=/var</parameter>: This parameter forces
140 the creation of the <filename>pid</filename> file to
141 <filename class='directory'>/var/run/hald</filename> instead of
142 <filename class='directory'>/usr/var/run/hald</filename>.</para>
143
144 </sect2>
145
146 <sect2 id="hal-runtime-dependencies" xreflabel="GNOME-Python">
147 <title>Run-Time Dependencies</title>
148
149 <para>The <xref linkend="hal-device-manager"/> program requires several
150 additional packages to be installed before it will run. The list is
151 significant and requires a substantial commitment to install them. It is
152 left up to you to determine if the time and effort spent installing the
153 following packages is worth using the <command>hal-device-manager</command>
154 program.</para>
155
156 <para>Though the only requirement to run the
157 <command>hal-device-manager</command> program is installing
158 <ulink url="&gnome-download-http;/gnome-python/">
159 GNOME-Python</ulink>, the dependency list is staggering. The following
160 list does not include the dependencies already identified in the BLFS
161 book. For example, <application>libgnome</application> already lists
162 <application>GNOME VFS</application>, <application>GConf</application>,
163 etc., so they are not repeated here. Note that some of the dependencies
164 have their own dependencies, which have their own, and so forth and so
165 on.</para>
166
167 <itemizedlist>
168 <listitem>
169 <para><ulink
170 url="&gnome-download-http;/gnome-python/">GNOME-Python</ulink>
171 </para>
172
173 <itemizedlist>
174 <listitem>
175 <para><ulink
176 url="http://www.pygtk.org/">PyGTK</ulink> (required)
177 </para>
178
179 <itemizedlist>
180 <listitem>
181 <para><ulink
182 url="http://www.cairographics.org/pycairo">Pycairo</ulink> (optional)
183 </para>
184
185 <itemizedlist>
186 <listitem>
187 <para><ulink
188 url="http://www.cairographics.org/snapshots/">libsvg-cairo</ulink> (optional)
189 </para>
190
191 <itemizedlist>
192 <listitem>
193 <para><ulink
194 url="http://www.cairographics.org/snapshots/">libsvg</ulink> (required)
195 </para>
196 </listitem>
197 </itemizedlist>
198
199 </listitem>
200 <listitem>
201 <para><ulink
202 url="http://www.pygtk.org/">PyGTK</ulink> (optional, and circular)
203 </para>
204 </listitem>
205 <listitem>
206 <para><ulink
207 url="http://sourceforge.net/projects/numpy">Numerical Python</ulink> (optional)
208 </para>
209 </listitem>
210 </itemizedlist>
211
212 </listitem>
213 <listitem>
214 <para><ulink
215 url="http://sourceforge.net/projects/numpy">Numerical Python</ulink> (optional)
216 </para>
217 </listitem>
218 <listitem>
219 <para><xref linkend="libglade"/> (required)</para>
220 </listitem>
221 </itemizedlist>
222
223 </listitem>
224 <listitem>
225 <para><xref linkend="libgnomeui"/> (optional)</para>
226 </listitem>
227 <listitem>
228 <para><xref linkend="libgnome"/> (required)</para>
229 </listitem>
230 <listitem>
231 <para><ulink
232 url="&gnome-download-http;/pyorbit/">PyORBit</ulink> (optional)
233 </para>
234
235 <itemizedlist>
236 <listitem>
237 <para><xref linkend="ORBit2"/> (required)</para>
238 </listitem>
239 </itemizedlist>
240
241 </listitem>
242 </itemizedlist>
243
244 </listitem>
245 </itemizedlist>
246
247 <note>
248 <para>The dependency list is designed to start at the bottom and work
249 your way up until the last package to install is
250 <application>GNOME-Python</application>. Note that the dependencies
251 marked as <quote>required</quote> are required for the package it is
252 listed under. For example, you don't need to install
253 <application>ORBit</application> if you don't plan on installing
254 <application>PyORBit</application>. The minimum packages you could
255 install to support running <xref linkend="hal-device-manager"/> would be
256 (in this order): <xref linkend="libgnome"/>, <xref linkend="libglade"/>,
257 <ulink url="http://www.pygtk.org/">PyGTK</ulink> and <ulink
258 url="&gnome-download-http;/gnome-python/">
259 GNOME-Python</ulink>.</para>
260 </note>
261
262 </sect2>
263
264 <sect2 role="configuration">
265 <title>Configuring HAL</title>
266
267 <sect3 id="hal-config">
268 <title>Config Files</title>
269 <para><filename>/etc/dbus-1/system.d/hal.conf</filename> and
270 <filename>/etc/hal/*</filename></para>
271
272 <indexterm zone="hal hal-config">
273 <primary sortas="e-etc-dbus-1-system.d-hal.conf">/etc/dbus-1/system.d/hal.conf</primary>
274 </indexterm>
275
276 <indexterm zone="hal hal-config">
277 <primary sortas="e-etc-hal-star">/etc/hal/*</primary>
278 </indexterm>
279 </sect3>
280
281 <!-- This section commented out for now until it is determined what should
282 be placed in this section
283
284 <sect3><title>Configuration Information</title>
285
286 <para>No configuration is necessary for the majority of installations
287 on systems configured with ISO-8859-1 compatible locales. The defaults
288 should work just fine. For some installations, tweaking of the various
289 policies may be required. One such configuration change necessary in some
290 locales is identifying the <option>iocharset</option> and
291 <option>codepage</option> variables in the
292 <filename>/etc/fstab</filename> entries created by the
293 <command>fstab-sync</command> program. If changes are required to the
294 configuration so that your locale is properly identified in the entries
295 created in <filename>/etc/fstab</filename>, issue the following commands
296 as the <systemitem class="username">root</systemitem> user (you must
297 substitute the proper data for the
298 <replaceable>&lt;iocharset&gt;</replaceable> and
299 <replaceable>&lt;codepage&gt;</replaceable> info):</para>
300
301<screen role="root"><userinput>install -v -m755 -d /etc/hal/fdi/policy/30user &amp;&amp;
302cat &gt; /etc/hal/fdi/policy/30user/30user-policy.fdi &lt;&lt; "EOF"
303<literal>&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!- -*- SGML -*- -&gt;
304
305&lt;!-
306This file is used to set custom options to the HAL policy settings.
307The default policy settings are defined in files contained in the
308/usr/share/hal/fdi/policy directories. User defined customizations
309should be in files contained in the /etc/hal/fdi/policy directories.
310-&gt;
311
312&lt;deviceinfo version="0.2"&gt;
313
314 &lt;device&gt;
315 &lt;match key="info.udi"
316 string="/org/freedesktop/Hal/devices/computer"&gt;
317
318 &lt;!- Set the iocharset variable in the /etc/fstab file entry -&gt;
319 &lt;merge
320 key="storage.policy.default.mount_option.iocharset=<replaceable>&lt;iocharset&gt;</replaceable>"
321 type="bool"&gt;true&lt;/merge&gt;
322
323 &lt;!- Set the codepage variable in the /etc/fstab file entry -&gt;
324 &lt;merge
325 key="storage.policy.default.mount_option.codepage=<replaceable>&lt;codepage&gt;</replaceable>"
326 type="bool"&gt;true&lt;/merge&gt;
327
328 &lt;/match&gt;
329 &lt;/device&gt;
330
331&lt;/deviceinfo&gt;</literal>
332
333EOF</userinput></screen>
334
335 <note>
336 <para>The previous commands created a file named
337 <filename>/etc/hal/fdi/policy/30user/30user-policy.fdi</filename>. To
338 ease readability of the file, put everything between the
339 &lt;angle brackets&gt; and &lt;merge&gt;&lt;/merge&gt; tags on one
340 line. You must have at least one space character
341 where the ends of the lines were. The file would then look like this
342 (trimmed at the top and bottom for brevity):</para>
343
344<screen><literal> &lt;device&gt;
345 &lt;match key="<replaceable>&lt;text&gt;</replaceable>" string="<replaceable>&lt;text&gt;</replaceable>"&gt;
346
347 &lt;!- Set the iocharset variable in the /etc/fstab file entry -&gt;
348 &lt;merge key="<replaceable>&lt;iocharset text&gt;</replaceable>" type="bool"&gt;true&lt;/merge&gt;
349
350 &lt;!- Set the codepage variable in the /etc/fstab file entry -&gt;
351 &lt;merge key="<replaceable>&lt;codepage text&gt;</replaceable>" type="bool"&gt;true&lt;/merge&gt;
352
353 &lt;/match&gt;
354 &lt;/device&gt;</literal></screen>
355
356 </note>
357
358 </sect3>
359
360 -->
361
362 <sect3 id="hal-init">
363 <title>Boot Script</title>
364
365 <para>To automatically start the <command>hald</command> daemon
366 when the system is rebooted, install the
367 <filename>/etc/rc.d/init.d/haldaemon</filename>
368 bootscript from the
369 <xref linkend="bootscripts"/> package.</para>
370
371 <indexterm zone="hal hal-init">
372 <primary sortas="f-haldaemon">haldaemon</primary>
373 </indexterm>
374
375 <!-- Not sure if this is still required any longer as the HAL daemon
376 used to hang if you didn't first restart the DBUS daemon. This is
377 not the case any longer, but it still seems that D-Bus should be
378 restarted, as the hald.conf file is read by the D-BUS daemon.
379 Leaving it in for now until it is positively confirmed it is not
380 required. -->
381
382 <important>
383 <para>If the system-wide <application>D-BUS</application> daemon was
384 running during the installation of <application>HAL</application>,
385 ensure you stop and restart the <application>D-BUS</application>
386 daemon before attempting to start the <command>hald</command>
387 daemon.</para>
388 </important>
389
390<screen role="root"><userinput>make install-haldaemon</userinput></screen>
391
392 </sect3>
393
394 </sect2>
395
396 <sect2 role="content">
397 <title>Contents</title>
398
399 <segmentedlist>
400 <segtitle>Installed Programs</segtitle>
401 <segtitle>Installed Libraries</segtitle>
402 <segtitle>Installed Directories</segtitle>
403
404 <seglistitem>
405 <seg>hal-device, hal-device-manager,
406 hal-find-by-capability, hal-find-by-property, hal-get-property,
407 hal-set-property, hald and lshal</seg>
408 <seg>libhal.{so,a} and libhal-storage,{so,a}</seg>
409 <seg>/etc/hal, /usr/include/hal, /usr/lib/hal,
410 /usr/share/doc/hal-&hal-version;, /usr/share/hal
411 and /var/run/hald</seg>
412 </seglistitem>
413 </segmentedlist>
414
415 <variablelist>
416 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
417 <?dbfo list-presentation="list"?>
418 <?dbhtml list-presentation="table"?>
419
420 <varlistentry id="hal-device">
421 <term><command>hal-device</command></term>
422 <listitem>
423 <para>is used to create, remove or show a
424 <application>HAL</application> device.</para>
425 <indexterm zone="hal hal-device">
426 <primary sortas="b-hal-device">hal-device</primary>
427 </indexterm>
428 </listitem>
429 </varlistentry>
430
431 <varlistentry id="hal-device-manager">
432 <term><command>hal-device-manager</command></term>
433 <listitem>
434 <para>shows a graphical respresentation of all the devices
435 <application>HAL</application> is aware of. This program requires
436 <xref linkend="hal-runtime-dependencies"/>. Here is a <ulink
437 url="http://cvs.freedesktop.org/*checkout*/hal/hal/doc/spec/hal-devices1.png">
438 screenshot</ulink> of <command>hal-device-manager</command>
439 communicating with the HAL daemon and displaying a tree of device
440 objects. The shown properties in the screenshot are for a device
441 object representing a hard disk.</para>
442 <indexterm zone="hal hal-device-manager">
443 <primary sortas="b-hal-device-manager">hal-device-manager</primary>
444 </indexterm>
445 </listitem>
446 </varlistentry>
447
448 <varlistentry id="hal-find-by-capability">
449 <term><command>hal-find-by-capability</command></term>
450 <listitem>
451 <para>prints the Unique Device Identifiers for
452 <application>HAL</application> device objects of a given
453 capability.</para>
454 <indexterm zone="hal hal-find-by-capability">
455 <primary sortas="b-hal-find-by-cpability">hal-find-by-capability</primary>
456 </indexterm>
457 </listitem>
458 </varlistentry>
459
460 <varlistentry id="hal-find-by-property">
461 <term><command>hal-find-by-property</command></term>
462 <listitem>
463 <para>prints the Unique Device Identifiers for
464 <application>HAL</application> device objects where a given property
465 assumes a given value.</para>
466 <indexterm zone="hal hal-find-by-property">
467 <primary sortas="b-hal-find-by-property">hal-find-by-property</primary>
468 </indexterm>
469 </listitem>
470 </varlistentry>
471
472 <varlistentry id="hal-get-property">
473 <term><command>hal-get-property</command></term>
474 <listitem>
475 <para>retrieves a property from a device.</para>
476 <indexterm zone="hal hal-get-property">
477 <primary sortas="b-hal-get-property">hal-get-property</primary>
478 </indexterm>
479 </listitem>
480 </varlistentry>
481
482 <varlistentry id="hal-set-property">
483 <term><command>hal-set-property</command></term>
484 <listitem>
485 <para>attempts to set property for a device. Note that, due to
486 security considerations, it may not be possible to set a
487 property.</para>
488 <indexterm zone="hal hal-set-property">
489 <primary sortas="b-hal-set-property">hal-set-property</primary>
490 </indexterm>
491 </listitem>
492 </varlistentry>
493
494 <varlistentry id="hald">
495 <term><command>hald</command></term>
496 <listitem>
497 <para>is the <application>HAL</application> daemon program.</para>
498 <indexterm zone="hal hald">
499 <primary sortas="b-hald">hald</primary>
500 </indexterm>
501 </listitem>
502 </varlistentry>
503
504 <varlistentry id="lshal">
505 <term><command>lshal</command></term>
506 <listitem>
507 <para>shows all devices and their properties. If the --monitor option
508 is given then the device list and all devices are monitored for
509 changes.</para>
510 <indexterm zone="hal lshal">
511 <primary sortas="b-lshal">lshal</primary>
512 </indexterm>
513 </listitem>
514 </varlistentry>
515
516 <varlistentry id="libhal">
517 <term><filename class='libraryfile'>libhal.{so,a}</filename></term>
518 <listitem>
519 <para>contains the API functions required by the
520 <application>HAL</application> programs.</para>
521 <indexterm zone="hal libhal">
522 <primary sortas="c-libhal">libhal.{so,a}</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526
527 <varlistentry id="libhal-storage">
528 <term><filename class='libraryfile'>libhal-storage.{so,a}</filename></term>
529 <listitem>
530 <para>contains the API functions required by the
531 <application>HAL</application> storage and volume utility
532 programs.</para>
533 <indexterm zone="hal libhal-storage">
534 <primary sortas="c-libhal-storage">libhal-storage.{so,a}</primary>
535 </indexterm>
536 </listitem>
537 </varlistentry>
538
539 </variablelist>
540
541 </sect2>
542
543</sect1>
Note: See TracBrowser for help on using the repository browser.