| *********************************************************** | |
| The udev development has moved to: | |
| http://www.freedesktop.org/wiki/Software/systemd | |
| http://cgit.freedesktop.org/systemd/systemd/ | |
| This tree will no longer be updated after April 2012: | |
| http://thread.gmane.org/gmane.linux.hotplug.devel/17392 | |
| *********************************************************** | |
| 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 replacing 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. | |
| Tools and rules shipped by udev are not public API and may change at any time. | |
| Never call any private tool in /usr/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 /usr/lib/udev and the entire contents | |
| of the /run/udev directory are private to udev and do change whenever needed. | |
| Requirements: | |
| - Version 2.6.34 of the Linux kernel with sysfs, procfs, signalfd, inotify, | |
| unix domain sockets, networking and hotplug enabled | |
| - Some architectures might need a later kernel, that supports accept4(), | |
| or need to backport the accept4() syscall wiring in the kernel. | |
| - These options are required: | |
| CONFIG_DEVTMPFS=y | |
| CONFIG_HOTPLUG=y | |
| CONFIG_INOTIFY_USER=y | |
| CONFIG_NET=y | |
| CONFIG_PROC_FS=y | |
| CONFIG_SIGNALFD=y | |
| CONFIG_SYSFS=y | |
| CONFIG_SYSFS_DEPRECATED*=n | |
| CONFIG_UEVENT_HELPER_PATH="" | |
| - These options might be needed: | |
| CONFIG_BLK_DEV_BSG=y (SCSI devices) | |
| CONFIG_TMPFS_POSIX_ACL=y (user ACLs for device nodes) | |
| - The /dev directory needs the 'devtmpfs' filesystem mounted. | |
| Udev only manages the permissions and ownership of the | |
| kernel-provided device nodes, and possibly creates additional symlinks. | |
| - Udev requires /run to be writable, which is usually done by mounting a | |
| 'tmpfs' filesystem. | |
| - This version of udev does not work properly with the CONFIG_SYSFS_DEPRECATED* | |
| option enabled. | |
| - 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, and the sysfs filesystem must | |
| be mounted at /sys. No other locations are supported by a standard | |
| udev installation. | |
| - The default rule sset requires the following group names resolvable at udev startup: | |
| disk, cdrom, floppy, tape, audio, video, lp, tty, dialout, and kmem. | |
| Especially in LDAP setups, it is required that getgrnam() be able to resolve | |
| these group names with only the rootfs mounted and while no network is | |
| available. | |
| - Some udev extras have external dependencies like: | |
| libglib2, usbutils, pciutils, and gperf. | |
| All these extras can be disabled with configure options. | |
| Setup: | |
| - The udev daemon should be started to handle device events sent by the kernel. | |
| During bootup, the events for already existing devices can be replayed, so | |
| that they are configured by udev. The systemd service files contain the | |
| needed commands to start the udev daemon and the coldplug sequence. | |
| - Restarting the daemon never applies any rules to existing devices. | |
| - New/changed rule files are picked up automatically; there is usually no | |
| daemon restart or signal needed. | |
| Operation: | |
| - Based on events the kernel sends out on device creation/removal, udev | |
| creates/removes device nodes and symlinks in the /dev directory. | |
| - All kernel events are matched against a set of specified rules, which | |
| possibly hook into the event processing and load required kernel | |
| modules to set up devices. For all devices, the kernel exports a major/minor | |
| number; if needed, udev creates a device node with the default kernel | |
| device 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 man pages: | |
| http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/ | |
| Please direct any comment/question to the linux-hotplug mailing list at: | |
| linux-hotplug@vger.kernel.org |