udev - Linux userspace device management

Integrating udev in the system has complex dependencies and may differ from
distribution to distribution. A system may not be able to boot up or work
reliably without a properly installed udev version. The upstream udev project
does not recommend to replace a distro's udev installation with the upstream
version.

The upstream udev project's set of default rules may require a most recent
kernel release to work properly. This is currently version 2.6.31.

Tools and rules shipped by udev are not public API and may change at any time.
Never call any private tool in /lib/udev from any external application, it might
just go away in the next release. Access to udev information is only offered
by udevadm and libudev. Tools and rules in /lib/udev, and the entire content of
the /dev/.udev directory is private to udev and does change whenever needed.

Requirements:
  - Version 2.6.27 of the Linux kernel with sysfs, procfs, signalfd, inotify,
    unix domain sockets, networking and hotplug enabled:
      CONFIG_HOTPLUG=y
      CONFIG_UEVENT_HELPER_PATH=""
      CONFIG_NET=y
      CONFIG_UNIX=y
      CONFIG_SYSFS=y
      CONFIG_SYSFS_DEPRECATED*=n
      CONFIG_PROC_FS=y
      CONFIG_TMPFS=y
      CONFIG_INOTIFY_USER=y
      CONFIG_SIGNALFD=y
      CONFIG_TMPFS_POSIX_ACL=y (user ACLs for device nodes)
      CONFIG_BLK_DEV_BSG=y (SCSI devices)

  - Udev will not work with the CONFIG_SYSFS_DEPRECATED* option.

  - Unix domain sockets (CONFIG_UNIX) as a loadable kernel module may work,
    but it is not supported.

  - The deprecated hotplug helper /sbin/hotplug should be disabled in the
    kernel configuration, it is not needed today, and may render the system
    unusable because the kernel may create too many processes in parallel
    so that the system runs out-of-memory.

  - The proc filesystem must be mounted on /proc, the sysfs filesystem must
    be mounted at /sys. No other locations are supported by a standard
    udev installation.

  - The system must have the following group names resolvable at udev startup:
      disk, cdrom, floppy, tape, audio, video, lp, tty, dialout, kmem.
    Especially in LDAP setups, it is required, that getgrnam() is able to resolve
    these group names with only the rootfs mounted, and while no network is
    available.

  - To build all 'udev extras', libacl, libglib2, libusb, usbutils, pciutils,
    gperf are needed. These dependencies can be disabled with the
    --disable-extras configure option.

Setup:
  - At bootup, the /dev directory should get the 'devtmpfs' filesystem
    mounted. Udev will manage permissions and ownership of the kernel-created
    device nodes, and possibly create additional symlinks. If needed, udev also
    works on an empty 'tmpfs' filesystem, but some static device nodes like
    /dev/null, /dev/console, /dev/kmsg are needed to be able to start udev itself.

  - The udev daemon should be started to handle device events sent by the kernel.
    During bootup, the kernel can be asked to send events for all already existing
    devices, to apply the configuration to these devices. This is usually done by:
      /sbin/udevadm trigger --type=subsystems
      /sbin/udevadm trigger --type=devices

  - Restarting the daemon does never apply any rules to existing devices.

  - New/changed rule files are picked up automatically, there is no daemon
    restart or signal needed.

Operation:
  - Udev creates/removes device nodes in /dev, based on events the kernel
    sends out on device creation/removal.

  - All kernel events are matched against a set of specified rules, which
    possibly hook into the event processing and load required kernel
    modules to setup devices. For all devices the kernel exports a major/minor
    number, if needed, udev will create a device node with the default kernel
    name. If specified, udev applies permissions/ownership to the device
    node, creates additional symlinks pointing to the node, and executes
    programs to handle the device.

  - The events udev handles, and the information udev merges into its device
    database, can be accessed with libudev:
      http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/
      http://www.kernel.org/pub/linux/utils/kernel/hotplug/gudev/

For more details about udev and udev rules see the udev(7) man page.

Please direct any comment/question to the linux-hotplug mailing list at:
  linux-hotplug@vger.kernel.org
