diff options
author | Pascal Bach <pascal.bach@siemens.com> | 2015-01-16 16:01:06 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-02-17 15:16:50 +0000 |
commit | da47cb736b06ebbebd9c0ee4a39805809c22ace2 (patch) | |
tree | 9b9e0805e6e719e819e47ea8f46bfc0a2d22da22 | |
parent | a23e76dbce98458f21fe9fa32941827207681cab (diff) | |
download | poky-da47cb736b06ebbebd9c0ee4a39805809c22ace2.tar.gz |
dev-manual: New section on choosing a device manager added.
This patch was modified to fit in with the style of the book.
(From yocto-docs rev: 7c6c7ac573f92bfc844977e0d7a97ca4aac9bc70)
Signed-off-by: Scott Rifenbark <scott.m.rifenbark@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | documentation/dev-manual/dev-manual-common-tasks.xml | 109 |
1 files changed, 108 insertions, 1 deletions
diff --git a/documentation/dev-manual/dev-manual-common-tasks.xml b/documentation/dev-manual/dev-manual-common-tasks.xml index 5cfc8bec44..c2a361c6bb 100644 --- a/documentation/dev-manual/dev-manual-common-tasks.xml +++ b/documentation/dev-manual/dev-manual-common-tasks.xml | |||
@@ -946,7 +946,7 @@ | |||
946 | Furthermore, you must use <filename>_append</filename> instead | 946 | Furthermore, you must use <filename>_append</filename> instead |
947 | of the <filename>+=</filename> operator if you want to avoid | 947 | of the <filename>+=</filename> operator if you want to avoid |
948 | ordering issues. | 948 | ordering issues. |
949 | The reason for this is because doing so unconditionally appends | 949 | The reason for this is because doing so un>+conditionally appends |
950 | to the variable and avoids ordering problems due to the | 950 | to the variable and avoids ordering problems due to the |
951 | variable being set in image recipes and | 951 | variable being set in image recipes and |
952 | <filename>.bbclass</filename> files with operators like | 952 | <filename>.bbclass</filename> files with operators like |
@@ -7587,6 +7587,113 @@ | |||
7587 | </section> | 7587 | </section> |
7588 | </section> | 7588 | </section> |
7589 | 7589 | ||
7590 | <section id="selecting-dev-manager"> | ||
7591 | <title>Selecting a Device Manager</title> | ||
7592 | |||
7593 | <para> | ||
7594 | The Yocto Project provides multiple ways to manage the device | ||
7595 | manager (<filename>/dev</filename>): | ||
7596 | <itemizedlist> | ||
7597 | <listitem><para><emphasis>Persistent and Pre-Populated<filename>/dev</filename>:</emphasis> | ||
7598 | For this case, the <filename>/dev</filename> directory | ||
7599 | is persistent and the required device nodes are created | ||
7600 | during the build. | ||
7601 | </para></listitem> | ||
7602 | <listitem><para><emphasis>Use <filename>devtmps</filename> with a Device Manager:</emphasis> | ||
7603 | For this case, the <filename>/dev</filename> directory | ||
7604 | is provided by the kernel as an in-memory file system and | ||
7605 | is automatically populated by the kernel at runtime. | ||
7606 | Additional configuration of device nodes is done in user | ||
7607 | space by a device manager like | ||
7608 | <filename>udev</filename> or | ||
7609 | <filename>busybox-mdev</filename>. | ||
7610 | </para></listitem> | ||
7611 | </itemizedlist> | ||
7612 | </para> | ||
7613 | |||
7614 | <section id="static-dev-management"> | ||
7615 | <title>Using Persistent and Pre-Populated<filename>/dev</filename></title> | ||
7616 | |||
7617 | <para> | ||
7618 | To use the static method for device population, you need to | ||
7619 | set the | ||
7620 | <ulink url='&YOCTO_DOCS_REF_URL;#var-USE_DEVFS'><filename>USE_DEVFS</filename></ulink> | ||
7621 | variable to "0" as follows: | ||
7622 | <literallayout class='monospaced'> | ||
7623 | USE_DEVFS = "0" | ||
7624 | </literallayout> | ||
7625 | </para> | ||
7626 | |||
7627 | <para> | ||
7628 | The content of the resulting <filename>/dev</filename> | ||
7629 | directory is defined in a Device Table file. | ||
7630 | The | ||
7631 | <ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_DEVICE_TABLES'><filename>IMAGE_DEVICE_TABLES</filename></ulink> | ||
7632 | variable defines the Device Table to use and should be set | ||
7633 | in the machine or distro configuration file. | ||
7634 | Alternatively, you can set this variable in your | ||
7635 | <filename>local.conf</filename> configuration file. | ||
7636 | </para> | ||
7637 | |||
7638 | <para> | ||
7639 | If you do not define the | ||
7640 | <filename>IMAGE_DEVICE_TABLES</filename> variable, the default | ||
7641 | <filename>device_table-minimal.txt</filename> is used: | ||
7642 | <literallayout class='monospaced'> | ||
7643 | IMAGE_DEVICE_TABLES = "device_table-mymachine.txt" | ||
7644 | </literallayout> | ||
7645 | </para> | ||
7646 | |||
7647 | <para> | ||
7648 | The population is handled by the <filename>makedevs</filename> | ||
7649 | utility during image creation: | ||
7650 | </para> | ||
7651 | </section> | ||
7652 | |||
7653 | <section id="devtmps-dev-management"> | ||
7654 | <title>Using <filename>devtmpfs</filename> and a Device Manager</title> | ||
7655 | |||
7656 | <para> | ||
7657 | To use the dynamic method for device population, you need to | ||
7658 | use (or be sure to set) the | ||
7659 | <ulink url='&YOCTO_DOCS_REF_URL;#var-USE_DEVFS'><filename>USE_DEVFS</filename></ulink> | ||
7660 | variable to "1", which is the default: | ||
7661 | <literallayout class='monospaced'> | ||
7662 | USE_DEVFS = "1" | ||
7663 | </literallayout> | ||
7664 | With this setting, the resulting <filename>/dev</filename> | ||
7665 | is populated by the kernel using <filename>devtmpfs</filename>. | ||
7666 | Make sure the corresponding kernel configuration variable | ||
7667 | <filename>CONFIG_DEVTMPFS</filename> is set when building | ||
7668 | you build a linux kernel. | ||
7669 | </para> | ||
7670 | |||
7671 | <para> | ||
7672 | All devices created by <filename>devtmpfs</filename> will be | ||
7673 | owned by <filename>root</filename> and have permissions | ||
7674 | <filename>0600</filename>. | ||
7675 | </para> | ||
7676 | |||
7677 | <para> | ||
7678 | To have more control over the device nodes, you can use a | ||
7679 | device manager like <filename>udev</filename> or | ||
7680 | <filename>busybox-mdev</filename>. | ||
7681 | You choose the device manager by defining the | ||
7682 | <filename>VIRTUAL-RUNTIME_dev_manager</filename> variable | ||
7683 | in your machine or distro configuration file. | ||
7684 | Alternatively, you can set this variable in your | ||
7685 | <filename>local.conf</filename> configuration file: | ||
7686 | <literallayout class='monospaced'> | ||
7687 | VIRTUAL-RUNTIME_dev_manager = "udev" | ||
7688 | |||
7689 | # Some alternative values | ||
7690 | # VIRTUAL-RUNTIME_dev_manager = "busybox-mdev" | ||
7691 | # VIRTUAL-RUNTIME_dev_manager = "systemd" | ||
7692 | </literallayout> | ||
7693 | </para> | ||
7694 | </section> | ||
7695 | </section> | ||
7696 | |||
7590 | <section id="platdev-appdev-srcrev"> | 7697 | <section id="platdev-appdev-srcrev"> |
7591 | <title>Using an External SCM</title> | 7698 | <title>Using an External SCM</title> |
7592 | 7699 | ||