README revision cb936a3961f37ccb8eef0c505b8fffa6711c57be
a8a1a43f482af480c375a97921df6b42452c7092David Herrmannudev - Linux userspace device management
337eebb936be1da1215535e866965ce54c82d755Lennart PoetteringIntegrating udev in the system has complex dependencies and may differ from
652e737517bbbae692923246aeb687e2d1f314efZbigniew Jędrzejewski-Szmekdistribution to distribution. A system may not be able to boot up or work
0e0320e04500d1e68630b3973714f14cfb7b3450Lennart Poetteringreliably without a properly installed udev version. The upstream udev project
652e737517bbbae692923246aeb687e2d1f314efZbigniew Jędrzejewski-Szmekdoes not recommend replacing a distro's udev installation with the upstream
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart PoetteringThe upstream udev project's set of default rules may require a most recent
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poetteringkernel release to work properly. This is currently version 2.6.31.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart PoetteringTools and rules shipped by udev are not public API and may change at any time.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart PoetteringNever call any private tool in /lib/udev from any external application; it might
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poetteringjust go away in the next release. Access to udev information is only offered
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poetteringby udevadm and libudev. Tools and rules in /lib/udev and the entire contents of
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poetteringthe /dev/.udev directory are private to udev and do change whenever needed.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering - Version 2.6.27 of the Linux kernel with sysfs, procfs, signalfd, inotify,
0e0320e04500d1e68630b3973714f14cfb7b3450Lennart Poettering unix domain sockets, networking and hotplug enabled:
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering CONFIG_HOTPLUG=y
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering CONFIG_UEVENT_HELPER_PATH=""
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering CONFIG_SYSFS=y
c18c2a0ea15820c49226aa05f294f5d5c1417263WaLyong Cho CONFIG_SYSFS_DEPRECATED*=n
a8a1a43f482af480c375a97921df6b42452c7092David Herrmann CONFIG_PROC_FS=y
418b9be50018303cde79b423d4701b7fd86ddbdcLennart Poettering CONFIG_TMPFS=y
93a1d735aca5584a005d851f12cb0b8c7bb5e5caLennart Poettering CONFIG_INOTIFY_USER=y
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering CONFIG_SIGNALFD=y
a1405db67c9fa6e8d734933cc7dd208bdb703caeDidier Roche CONFIG_TMPFS_POSIX_ACL=y (user ACLs for device nodes)
0e0320e04500d1e68630b3973714f14cfb7b3450Lennart Poettering CONFIG_BLK_DEV_BSG=y (SCSI devices)
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering - Udev does not work with the CONFIG_SYSFS_DEPRECATED* option.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering - Unix domain sockets (CONFIG_UNIX) as a loadable kernel module may work,
3d7415f43f0fe6a821d7bc4a341ba371e8a30ef3Lennart Poettering but it is not supported.
ad95fd1d2b9c6344864857c2ba7634fd87753f8eZbigniew Jędrzejewski-Szmek - The deprecated hotplug helper /sbin/hotplug should be disabled in the
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering kernel configuration, it is not needed today, and may render the system
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering unusable because the kernel may create too many processes in parallel
ad95fd1d2b9c6344864857c2ba7634fd87753f8eZbigniew Jędrzejewski-Szmek so that the system runs out-of-memory.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering - The proc filesystem must be mounted on /proc, and the sysfs filesystem must
0e0320e04500d1e68630b3973714f14cfb7b3450Lennart Poettering be mounted at /sys. No other locations are supported by a standard
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering udev installation.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering - The system must have the following group names resolvable at udev startup:
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering disk, cdrom, floppy, tape, audio, video, lp, tty, dialout, and kmem.
3a67e927e3be7efb8edf314a31aa4f8f5cba4f53Tom Gundersen Especially in LDAP setups, it is required that getgrnam() be able to resolve
ad95fd1d2b9c6344864857c2ba7634fd87753f8eZbigniew Jędrzejewski-Szmek these group names with only the rootfs mounted and while no network is
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering - The 'udev extras' has the following dependencies:
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering libacl, libglib2, libusb, usbutils, pciutils, and gperf.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering These dependencies can be disabled with the --disable-extras configure option.
091a364c802e34a58f3260c9cb5db9b75c62215cTom Gundersen - At bootup, the /dev directory should get the 'devtmpfs' filesystem
defa8e675b2903ad53e093bb2847c7256f0779a5Dimitri John Ledkov mounted. Udev manages the permissions and ownership of the kernel-created
42483a747489ff46aed3588b78bf4b9480dbeaf7Ivan Shapovalov device nodes, and udev possibly creates additional symlinks. If needed, udev also
d35c1bb1f4b90993124f817f6f54a933e3be5f6bLennart Poettering works on an empty 'tmpfs' filesystem, but some static device nodes like
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering /dev/null, /dev/console, /dev/kmsg are needed to be able to start udev itself.
ecde7065f7b11a7a226d2f7b0e90e998a6347a59Lennart Poettering - The udev daemon should be started to handle device events sent by the kernel.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering During bootup, the kernel can be asked to send events for all already existing
a91df40e69fec72cc98c9829721fa5153da28bc2Kay Sievers devices so that they too can be configured by udev. This is usually done by:
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering /sbin/udevadm trigger --type=subsystems
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering /sbin/udevadm trigger --type=devices
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering - Restarting the daemon never applies any rules to existing devices.
f13b388f97bc3ba8db844bd3413d510e2466a0b6Kay Sievers - New/changed rule files are picked up automatically; there is no daemon
f13b388f97bc3ba8db844bd3413d510e2466a0b6Kay Sievers restart or signal needed.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering - Udev creates/removes device nodes in /dev, based on events the kernel
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering sends out on device creation/removal.
7c9a6f906308a6474f1ebb98058c4a33a02c33f1Lennart Poettering - All kernel events are matched against a set of specified rules, which
08c51903fb895e836866b8e7a09f0523b72b9aafMarc-Antoine Perennou possibly hook into the event processing and load required kernel
modules to setup devices. For all devices the kernel exports a major/minor
name. If specified, udev applies permissions/ownership to the device
Please direct any comment/question to the linux-hotplug mailing list at: