hotplug.xml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
  3. <!ENTITY % general-entities SYSTEM "../general.ent">
  4. %general-entities;
  5. ]>
  6. <sect1 id="ch-system-hotplug" xreflabel="Hotplug" role="wrap">
  7. <title>Hotplug-&hotplug-version;</title>
  8. <?dbhtml filename="hotplug.html"?>
  9. <indexterm zone="ch-system-hotplug"><primary sortas="a-Hotplug">Hotplug</primary></indexterm>
  10. <sect2 role="package"><title/>
  11. <para>The Hotplug package contains scripts that react upon various changes
  12. in the kernel state, in particular, addition and removal of hardware. This
  13. package also detects existing hardware during boot and inserts the relevant
  14. modules into the running kernel.
  15. </para>
  16. <segmentedlist>
  17. <segtitle>&buildtime;</segtitle>
  18. <segtitle>&diskspace;</segtitle>
  19. <seglistitem><seg>0.01 SBU</seg><seg>0.1 MB</seg></seglistitem>
  20. </segmentedlist>
  21. </sect2>
  22. <sect2 role="installation">
  23. <title>Installation of Hotplug</title>
  24. <para>
  25. Apply the patch that avoids bogus dependencies of the
  26. <command>usb.rc</command> script
  27. upon <application>which</application> and
  28. <application>usbutils</application> packages:
  29. </para>
  30. <screen><userinput>patch -Np1 -i ../hotplug-&hotplug-version;-bogus_deps-1.patch</userinput></screen>
  31. <para>
  32. USB coldplugging is somewhat broken in Hotplug by default. Fix this with the
  33. following patch:
  34. </para>
  35. <screen><userinput>patch -Np1 -i ../hotplug-&hotplug-version;-device-2.patch</userinput></screen>
  36. <para>
  37. At last, there is an optional patch that adds ISAPNP hardware detection
  38. capabilities to Hotplug. It is not well tested. If you chose to apply it,
  39. run the following command:
  40. </para>
  41. <screen><userinput>patch -Np1 -i ../hotplug-&hotplug-version;-isapnp-2.patch</userinput></screen>
  42. <para>And finally install the Hotplug package:</para>
  43. <screen><userinput>make install</userinput></screen>
  44. <para>Remove Hotplug's not-so-clean init script, since we're going to be using
  45. the script including with LFS-Bootscripts:</para>
  46. <screen><userinput>rm -rf /etc/init.d</userinput></screen>
  47. <para>
  48. If you have applied the ISAPNP patch, add some required entries to
  49. <filename>/etc/modprobe.conf</filename>:</para>
  50. <screen><userinput>cat &gt;&gt;/etc/modprobe.conf &lt;&lt;"EOF"
  51. # Begin /etc/modprobe.conf entries for ISAPNP hardware detection script
  52. # by Marco d'Itri
  53. alias pnp:dPNP0511 irtty-sir
  54. alias pnp:dPNP0700 floppy
  55. alias pnp:dPNP0800 pcspkr
  56. alias pnp:dPNP0B00 rtc
  57. alias pnp:dPNP0303 atkbd
  58. alias pnp:dPNP0F13 psmouse
  59. alias pnp:dPNPB02F analog
  60. # End /etc/modprobe.conf entries for ISAPNP hardware detection script
  61. EOF</userinput></screen>
  62. <para>These entries may become unneded for newer versions of Linux kernel,
  63. since Marco d'Itri will try to convince developers to put them into the
  64. corresponding modules themselves.</para>
  65. </sect2>
  66. <sect2 id="contents-hotplug" role="content"><title>Contents of Hotplug</title>
  67. <variablelist>
  68. <varlistentry id="hotplug">
  69. <term><command>/sbin/hotplug</command></term>
  70. <listitem>
  71. <indexterm zone="ch-system-hotplug hotplug"><primary
  72. sortas="b-hotplug">hotplug</primary></indexterm>
  73. <para>This script is called by default by Linux kernel when something
  74. changes in its internal state (e.g., a new device is added or removed).</para>
  75. </listitem>
  76. </varlistentry>
  77. <varlistentry id="hotplug-rc">
  78. <term><command>*.rc</command> files in
  79. <filename class="directory">/etc/hotplug</filename> directory</term>
  80. <listitem>
  81. <indexterm zone="ch-system-hotplug hotplug-rc"><primary
  82. sortas="e-/etc/hotplug/*.rc">/etc/hotplug/*.rc</primary></indexterm>
  83. <para>These scripts are used for cold plugging, i.e., detection and other
  84. specific actions upon hardware already present during system startup.
  85. They are called by the <filename>hotplug</filename> initscript that comes
  86. from the lfs-bootscripts package.
  87. The <command>*.rc</command>
  88. scripts try to find kernel modules corresponding to your hardware and insert
  89. them into the running kernel.
  90. </para>
  91. </listitem>
  92. </varlistentry>
  93. <varlistentry id="hotplug-agent">
  94. <term><command>*.agent</command> files in
  95. <filename class="directory">/etc/hotplug</filename> directory</term>
  96. <listitem>
  97. <indexterm zone="ch-system-hotplug hotplug-agent"><primary
  98. sortas="e-/etc/hotplug/*.agent">/etc/hotplug/*.agent</primary></indexterm>
  99. <para>These scripts are called by <command>/sbin/hotplug</command>
  100. in response to different types of hotplug events generated by the kernel.
  101. Their action is to insert corresponding kernel modules and call user-provided
  102. scripts, if any.
  103. </para>
  104. </listitem>
  105. </varlistentry>
  106. <varlistentry id="hotplug-functions">
  107. <term><filename>/etc/hotplug/hotplug.functions</filename></term>
  108. <listitem>
  109. <indexterm zone="ch-system-hotplug hotplug-functions"><primary
  110. sortas="e-/etc/hotplug/hotplug.functions">/etc/hotplug/hotplug.functions</primary></indexterm>
  111. <para>This file contains common functions used by other scripts in Hotplug
  112. package.
  113. </para>
  114. </listitem>
  115. </varlistentry>
  116. <varlistentry id="hotplug-blacklist">
  117. <term><filename>/etc/hotplug/blacklist</filename></term>
  118. <listitem>
  119. <indexterm zone="ch-system-hotplug hotplug-blacklist"><primary
  120. sortas="e-/etc/hotplug/blacklist">/etc/hotplug/blacklist</primary></indexterm>
  121. <para>This file contains the list of modules that should never be
  122. inserted into the kernel by hotplug scripts.
  123. </para>
  124. </listitem>
  125. </varlistentry>
  126. <varlistentry id="hotplug-subdirs">
  127. <term><filename class="directory">/etc/hotplug/{pci,usb}</filename></term>
  128. <listitem>
  129. <indexterm zone="ch-system-hotplug hotplug-subdirs"><primary
  130. sortas="e-/etc/hotplug/{pci,usb}">/etc/hotplug/{pci,usb}</primary></indexterm>
  131. <para>These directories are supposed to contain user-written handlers for
  132. hotplug events.
  133. </para>
  134. </listitem>
  135. </varlistentry>
  136. <varlistentry id="hotplug-usb.usermap">
  137. <term><filename>/etc/hotplug/usb.usermap</filename></term>
  138. <listitem>
  139. <indexterm zone="ch-system-hotplug hotplug-usb.usermap"><primary
  140. sortas="e-/etc/hotplug/usb.usermap">/etc/hotplug/usb.usermap</primary></indexterm>
  141. <para>This file contains rules that determine which user-defined handlers to
  142. call for each USB device, based on its vendor, id and other attributes.
  143. </para>
  144. </listitem>
  145. </varlistentry>
  146. <varlistentry id="hotplug-hotplug.d">
  147. <term><filename class="directory">/etc/hotplug.d</filename></term>
  148. <listitem>
  149. <indexterm zone="ch-system-hotplug hotplug-hotplug.d"><primary
  150. sortas="e-/etc/hotplug.d">/etc/hotplug.d</primary></indexterm>
  151. <para>This directory contains programs (or symlinks to them)
  152. that are interested in receiving all hotplug events. E.g.,
  153. <application>udev</application> puts its symlink here during installation.
  154. </para>
  155. </listitem>
  156. </varlistentry>
  157. </variablelist>
  158. </sect2>
  159. </sect1>