mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00:00
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>
This commit is contained in:
committed by
Richard Purdie
parent
a23e76dbce
commit
da47cb736b
@@ -946,7 +946,7 @@
|
|||||||
Furthermore, you must use <filename>_append</filename> instead
|
Furthermore, you must use <filename>_append</filename> instead
|
||||||
of the <filename>+=</filename> operator if you want to avoid
|
of the <filename>+=</filename> operator if you want to avoid
|
||||||
ordering issues.
|
ordering issues.
|
||||||
The reason for this is because doing so unconditionally appends
|
The reason for this is because doing so un>+conditionally appends
|
||||||
to the variable and avoids ordering problems due to the
|
to the variable and avoids ordering problems due to the
|
||||||
variable being set in image recipes and
|
variable being set in image recipes and
|
||||||
<filename>.bbclass</filename> files with operators like
|
<filename>.bbclass</filename> files with operators like
|
||||||
@@ -7587,6 +7587,113 @@
|
|||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section id="selecting-dev-manager">
|
||||||
|
<title>Selecting a Device Manager</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The Yocto Project provides multiple ways to manage the device
|
||||||
|
manager (<filename>/dev</filename>):
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para><emphasis>Persistent and Pre-Populated<filename>/dev</filename>:</emphasis>
|
||||||
|
For this case, the <filename>/dev</filename> directory
|
||||||
|
is persistent and the required device nodes are created
|
||||||
|
during the build.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para><emphasis>Use <filename>devtmps</filename> with a Device Manager:</emphasis>
|
||||||
|
For 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>Using Persistent and Pre-Populated<filename>/dev</filename></title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To use the static method for device population, you need to
|
||||||
|
set the
|
||||||
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-USE_DEVFS'><filename>USE_DEVFS</filename></ulink>
|
||||||
|
variable to "0" as follows:
|
||||||
|
<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
|
||||||
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-IMAGE_DEVICE_TABLES'><filename>IMAGE_DEVICE_TABLES</filename></ulink>
|
||||||
|
variable defines the Device Table to use and should be set
|
||||||
|
in the machine or distro configuration file.
|
||||||
|
Alternatively, you can set this variable in your
|
||||||
|
<filename>local.conf</filename> configuration file.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If you do not define the
|
||||||
|
<filename>IMAGE_DEVICE_TABLES</filename> variable, the default
|
||||||
|
<filename>device_table-minimal.txt</filename> is used:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
IMAGE_DEVICE_TABLES = "device_table-mymachine.txt"
|
||||||
|
</literallayout>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The population is handled by the <filename>makedevs</filename>
|
||||||
|
utility during image creation:
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="devtmps-dev-management">
|
||||||
|
<title>Using <filename>devtmpfs</filename> and a Device Manager</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To use the dynamic method for device population, you need to
|
||||||
|
use (or be sure to set) the
|
||||||
|
<ulink url='&YOCTO_DOCS_REF_URL;#var-USE_DEVFS'><filename>USE_DEVFS</filename></ulink>
|
||||||
|
variable to "1", which is the default:
|
||||||
|
<literallayout class='monospaced'>
|
||||||
|
USE_DEVFS = "1"
|
||||||
|
</literallayout>
|
||||||
|
With this setting, the resulting <filename>/dev</filename>
|
||||||
|
is populated by the kernel using <filename>devtmpfs</filename>.
|
||||||
|
Make sure the corresponding kernel configuration variable
|
||||||
|
<filename>CONFIG_DEVTMPFS</filename> is set when building
|
||||||
|
you build 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>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To have more control over the device nodes, you can use a
|
||||||
|
device manager like <filename>udev</filename> or
|
||||||
|
<filename>busybox-mdev</filename>.
|
||||||
|
You choose the device manager by defining the
|
||||||
|
<filename>VIRTUAL-RUNTIME_dev_manager</filename> variable
|
||||||
|
in your machine or distro configuration file.
|
||||||
|
Alternatively, you can set this variable in your
|
||||||
|
<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">
|
<section id="platdev-appdev-srcrev">
|
||||||
<title>Using an External SCM</title>
|
<title>Using an External SCM</title>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user