|
@@ -32,9 +32,9 @@
|
|
|
<para>Using the Udev method, only those devices which are detected by the
|
|
|
kernel get device nodes created for them. Because these device nodes will be
|
|
|
created each time the system boots, they will be stored on a <systemitem
|
|
|
- class="filesystem">tmpfs</systemitem> file system (a virtual file system that
|
|
|
- resides entirely in system memory). Device nodes do not require much space, so
|
|
|
- the memory that is used is negligible.</para>
|
|
|
+ class="filesystem">devtmpfs</systemitem> file system (a virtual file system
|
|
|
+ that resides entirely in system memory). Device nodes do not require much
|
|
|
+ space, so the memory that is used is negligible.</para>
|
|
|
|
|
|
<sect2>
|
|
|
<title>History</title>
|
|
@@ -87,8 +87,8 @@
|
|
|
class="filesystem">sysfs</systemitem> filesystem is mounted (on <filename
|
|
|
class="directory">/sys</filename>), data which the built-in drivers
|
|
|
registered with <systemitem class="filesystem">sysfs</systemitem> are
|
|
|
- available to userspace processes and to <command>udevd</command> for device
|
|
|
- node creation.</para>
|
|
|
+ available to userspace processes and to <command>udevd</command> for
|
|
|
+ processing (including modifications to device nodes).</para>
|
|
|
|
|
|
</sect3>
|
|
|
|
|
@@ -132,24 +132,31 @@
|
|
|
<sect3>
|
|
|
<title>Device Node Creation</title>
|
|
|
|
|
|
- <para>To obtain the right major and minor number for a device, Udev
|
|
|
- relies on the information provided by <systemitem
|
|
|
- class="filesystem">sysfs</systemitem> in <filename
|
|
|
- class="directory">/sys</filename>. For example,
|
|
|
- <filename>/sys/class/tty/vcs/dev</filename> contains the string
|
|
|
- <quote>7:0</quote>. This string is used by <command>udevd</command> to
|
|
|
- create a device node with major number <emphasis>7</emphasis> and minor
|
|
|
- <emphasis>0</emphasis>. The names and permissions of the nodes created
|
|
|
- under the <filename class="directory">/dev</filename> directory are
|
|
|
- determined by rules specified in the files within the <filename
|
|
|
- class="directory">/etc/udev/rules.d/</filename> directory. These are
|
|
|
- numbered in a similar fashion to the LFS-Bootscripts package. If
|
|
|
- <command>udevd</command> can't find a rule for the device it is creating,
|
|
|
- it will default permissions to <emphasis>660</emphasis> and ownership to
|
|
|
- <emphasis>root:root</emphasis>. Documentation on the syntax of the Udev
|
|
|
- rules configuration files are available in
|
|
|
- <filename>/usr/share/doc/udev-&udev-version;/writing_udev_rules/index.html</filename>
|
|
|
- </para>
|
|
|
+ <para>As of Udev-&udev-version;, <command>udevd</command> no longer
|
|
|
+ creates device files in <filename class="directory">/dev</filename>.
|
|
|
+ Instead, this must be handled in the kernel, by the <systemitem
|
|
|
+ class="filesystem">devtmpfs</systemitem> filesystem. Any driver that
|
|
|
+ wishes to register a device node will go through <systemitem
|
|
|
+ class="filesystem">devtmpfs</systemitem> (via the driver core) to do it.
|
|
|
+ When a <systemitem class="filesystem">devtmpfs</systemitem> instance is
|
|
|
+ mounted on <filename class="directory">/dev</filename>, the device node
|
|
|
+ will initially be created with a fixed name, permissions, and owner.</para>
|
|
|
+
|
|
|
+ <para>A short time later, the kernel will send a uevent to <command>
|
|
|
+ udevd</command>. Based on the rules specified in the files within the
|
|
|
+ <filename class="directory">/etc/udev/rules.d</filename>, <filename
|
|
|
+ class="directory">/lib/udev/rules.d</filename>, and <filename
|
|
|
+ class="directory">/run/udev/rules.d</filename> directories, <command>
|
|
|
+ udevd</command> will create additional symlinks to the device node,
|
|
|
+ or change its permissions, owner, or group, or modify the internal
|
|
|
+ <command>udevd</command> database entry for that object.</para>
|
|
|
+
|
|
|
+ <para>The rules in these three directories are numbered in a similar
|
|
|
+ fashion to the LFS-Bootscripts package, and all three directories are
|
|
|
+ merged together. If <command>udevd</command> can't find a rule for the
|
|
|
+ device it is creating, it will leave the permissions and ownership at
|
|
|
+ whatever <systemitem class="filesystem">devtmpfs</systemitem> used
|
|
|
+ initially.</para>
|
|
|
|
|
|
</sect3>
|
|
|
|
|
@@ -247,12 +254,17 @@
|
|
|
enhances the functionality of <emphasis>snd-pcm</emphasis> by making the
|
|
|
sound cards available to OSS applications), configure
|
|
|
<command>modprobe</command> to load the wrapper after Udev loads the
|
|
|
- wrapped module. To do this, add an <quote>install</quote> line in any
|
|
|
+ wrapped module. To do this, add a <quote>softdep</quote> line in any
|
|
|
<filename>/etc/modprobe.d/<replaceable><filename></replaceable>.conf</filename>
|
|
|
file. For example:</para>
|
|
|
|
|
|
-<screen role="nodump"><literal>install snd-pcm /sbin/modprobe -i snd-pcm ; \
|
|
|
- /sbin/modprobe snd-pcm-oss ; true</literal></screen>
|
|
|
+<screen role="nodump"><literal>softdep snd-pcm post: snd-pcm-oss</literal></screen>
|
|
|
+
|
|
|
+ <para>Note that the <quote>softdep</quote> command also allows
|
|
|
+ <literal>pre:</literal> dependencies, or a mixture of both
|
|
|
+ <literal>pre:</literal> and <literal>post:</literal>. See the
|
|
|
+ <filename>modprobe.d(5)</filename> manual page for more information
|
|
|
+ on <quote>softdep</quote> syntax and capabilities.</para>
|
|
|
|
|
|
<para>If the module in question is not a wrapper and is useful by itself,
|
|
|
configure the <command>modules</command> bootscript to load this
|