[yocto] [yocto-docs][PATCHv2 2/2] dev-manual: Add section about /dev population

Pascal Bach pascal.bach at siemens.com
Wed Jan 7 07:24:07 PST 2015


Signed-off-by: Pascal Bach <pascal.bach at siemens.com>
---
 .../dev-manual/dev-manual-common-tasks.xml         |  104 ++++++++++++++++++++
 1 file changed, 104 insertions(+)

diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml
index 17d725b..e494f5a 100644
--- a/documentation/dev-manual/dev-manual-common-tasks.xml
+++ b/documentation/dev-manual/dev-manual-common-tasks.xml
@@ -7582,6 +7582,110 @@ Gateways via their Web Interfaces</ulink>"</emphasis>
         </section>
     </section>
 
+    <section id="selecting-dev-manager">
+        <title>Selecting a Device Manager</title>
+
+        <para>
+            Yocto provides multiple ways to manage <filename>/dev</filename>:
+            <itemizedlist>
+                <listitem><para>
+                <emphasis>Persistent and pre-populated <filename>/dev</filename>:</emphasis>
+                in this case the <filename>/dev</filename> directory is persistent
+                and the required device nodes are created at build time.
+                </para></listitem>
+
+                <listitem><para>
+                <emphasis>Use <filename>devtmpfs</filename> with a device manager:</emphasis>
+                in this case the <filename>/dev</filename> directory is provided
+                by the kernel as an in-memory file system and is automatically
+                populated by the kernel at runtime. Additional configuration of
+                device nodes is done in user space by a device manager like
+                <filename>udev</filename> or <filename>busybox-mdev</filename>.
+                </para></listitem>
+            </itemizedlist>
+        </para>
+
+        <section id="static-dev-management">
+            <title>Use Persistent and pre-populated <filename>/dev</filename></title>
+
+            <para>
+                To use the static method for device population the variable
+                <ulink url='&YOCTO_DOCS_REF_URL;#var-USE_DEVFS'><filename>USE_DEVFS</filename></ulink>
+                needs to be set to 0.
+
+                <literallayout class='monospaced'>
+     USE_DEVFS = "0"
+                </literallayout>
+            </para>
+
+            <para>
+                The content of the resulting <filename>/dev</filename> directory
+                is defined in a Device Table file. The device table to use is defined by the variable
+                <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_DEVICE_TABLES'><filename>IMAGE_DEVICE_TABLES</filename></ulink> and should be set
+                in the <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>,
+                <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO'><filename>DISTRO</filename></ulink>
+                or <filename>local.conf</filename> configuration file.
+            </para>
+
+            <para>
+                If nothing is defined the default <filename>device_table-minimal.txt</filename> is used.
+            </para>
+
+            <para>
+                The population is handled by the <filename>makedevs</filename> utility
+                during image creation.
+
+                <literallayout class='monospaced'>
+     IMAGE_DEVICE_TABLES = "device_table-mymachine.txt"
+                </literallayout>
+
+            </para>
+        </section>
+
+        <section id="devtmpfs-dev-management">
+            <title>Use <filename>devtmpfs</filename> and a device manager</title>
+
+            <para>
+                To use the dynamic method for device population the variable
+                <ulink url='&YOCTO_DOCS_REF_URL;#var-USE_DEVFS'><filename>USE_DEVFS</filename></ulink>
+                needs to be set to 1. This is the default.
+
+                <literallayout class='monospaced'>
+     USE_DEVFS = "1"
+                </literallayout>
+
+                This way the resulting <filename>/dev</filename> directory is populated by the kernel
+                using <filename>devtmpfs</filename>. Make sure the corresponding
+                kernel configuration variable <filename>CONFIG_DEVTMPFS</filename> is set
+                when building a Linux kernel.
+
+            </para>
+            <para>
+                All devices created by <filename>devtmpfs</filename> will be
+                owned by <filename>root</filename> and have permissions <filename>0600</filename>.
+
+                To have more control over the device nodes a device manager like
+                <filename>udev</filename> or <filename>busybox-mdev</filename>
+                can be used.
+
+                The device manager to use is defined by the variable
+                <filename>VIRTUAL-RUNTIME_dev_manager</filename> and should be set
+                in the <ulink url='&YOCTO_DOCS_REF_URL;#var-MACHINE'><filename>MACHINE</filename></ulink>,
+                <ulink url='&YOCTO_DOCS_REF_URL;#var-DISTRO'><filename>DISTRO</filename></ulink>
+                or <filename>local.conf</filename> configuration file.
+
+                <literallayout class='monospaced'>
+
+     VIRTUAL-RUNTIME_dev_manager = "udev"
+
+     # Some alternative values
+     # VIRTUAL-RUNTIME_dev_manager = "busybox-mdev"
+     # VIRTUAL-RUNTIME_dev_manager = "systemd"
+                </literallayout>
+            </para>
+        </section>
+    </section>
+
     <section id="platdev-appdev-srcrev">
         <title>Using an External SCM</title>
 
-- 
1.7.10.4




More information about the yocto mailing list