1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- .. SPDX-License-Identifier: CC-BY-SA-2.0-UK
- .. _device-manager:
- 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
- :term:`VIRTUAL-RUNTIME_dev_manager <VIRTUAL-RUNTIME>` 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"
|