mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00

A 500 KB source file is always harder to manage, and can have section title conflicts. So, the "Common Tasks" document is gone and all its constituents are moved up one level. You now have 40 chapters in the Development Tasks Manual. (From yocto-docs rev: 8a45bc469411410020b8e688c137395fcaf3761b) Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
73 lines
2.4 KiB
ReStructuredText
73 lines
2.4 KiB
ReStructuredText
.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
|
|
|
|
Selecting a Device Manager
|
|
**************************
|
|
|
|
The Yocto Project provides multiple ways to manage the device manager
|
|
(``/dev``):
|
|
|
|
- Persistent and Pre-Populated ``/dev``: For this case, the ``/dev``
|
|
directory is persistent and the required device nodes are created
|
|
during the build.
|
|
|
|
- Use ``devtmpfs`` with a Device Manager: For this case, the ``/dev``
|
|
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 ``udev`` or ``busybox-mdev``.
|
|
|
|
Using Persistent and Pre-Populated ``/dev``
|
|
===========================================
|
|
|
|
To use the static method for device population, you need to set the
|
|
:term:`USE_DEVFS` variable to "0"
|
|
as follows::
|
|
|
|
USE_DEVFS = "0"
|
|
|
|
The content of the resulting ``/dev`` directory is defined in a Device
|
|
Table file. The
|
|
:term:`IMAGE_DEVICE_TABLES`
|
|
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 ``local.conf`` configuration file.
|
|
|
|
If you do not define the :term:`IMAGE_DEVICE_TABLES` variable, the default
|
|
``device_table-minimal.txt`` is used::
|
|
|
|
IMAGE_DEVICE_TABLES = "device_table-mymachine.txt"
|
|
|
|
The population is handled by the ``makedevs`` utility during image
|
|
creation:
|
|
|
|
Using ``devtmpfs`` and a Device Manager
|
|
=======================================
|
|
|
|
To use the dynamic method for device population, you need to use (or be
|
|
sure to set) the :term:`USE_DEVFS`
|
|
variable to "1", which is the default::
|
|
|
|
USE_DEVFS = "1"
|
|
|
|
With this
|
|
setting, the resulting ``/dev`` directory is populated by the kernel
|
|
using ``devtmpfs``. Make sure the corresponding kernel configuration
|
|
variable ``CONFIG_DEVTMPFS`` is set when building you build a Linux
|
|
kernel.
|
|
|
|
All devices created by ``devtmpfs`` will be owned by ``root`` and have
|
|
permissions ``0600``.
|
|
|
|
To have more control over the device nodes, you can use a device manager
|
|
like ``udev`` or ``busybox-mdev``. You choose the device manager by
|
|
defining the ``VIRTUAL-RUNTIME_dev_manager`` variable in your machine or
|
|
distro configuration file. Alternatively, you can set this variable in
|
|
your ``local.conf`` configuration file::
|
|
|
|
VIRTUAL-RUNTIME_dev_manager = "udev"
|
|
|
|
# Some alternative values
|
|
# VIRTUAL-RUNTIME_dev_manager = "busybox-mdev"
|
|
# VIRTUAL-RUNTIME_dev_manager = "systemd"
|
|
|