NEWS revision e8c84c98b9452dd1f4fe738f7e12149e0198dff6
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringDevice nodes can be watched for changes with inotify with OPTIONS="watch".
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringIf closed after being opened for writing, a "change" uevent will occur.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poettering/dev/disk/by-{label,uuid}/* symlinks will be automatically updated.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringThe udevadm test command has no longer a --force option, nodes and symlinks
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringare always updated with a test run now.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringThe udevd daemon can be started with --resolve-names=never to avoid all user
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringand group lookups (e.g. in cut-down systems) or --resolve-names=late to
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringlookup user and groups every time events are handled.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringWe are currently merging the Ubuntu rules in the udev default rules,
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringand get one step closer to provide a common Linux /dev setup, regarding
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringdevice names, symlinks, and default device permissions. On udev startup,
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringwe now expect the following groups to be resolvable to their ids with
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringglibc's getgrnam():
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poettering disk, cdrom, floppy, tape, audio, video, lp, tty, dialout, kmem.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringLDAP setups need to make sure, that these groups are always resolvable at
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringbootup, with only the rootfs mounted, and without network access available.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringSome systems may need to add some new, currently not used groups, or need
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringto add some users to new groups, but the cost of this change is minimal,
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringcompared to the pain the current, rather random, differences between the
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringvarious distributions cause for upstream projects and third-party vendors.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringIn general, "normal" users who log into a machine should never be a member
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringof any such group, but the device-access should be managed by dynamic ACLs,
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringwhich get added and removed for the specific users on login/logout and
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringsession activity/inactivity. These groups are only provided for custom setups,
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringand mainly system services, to allow proper privilege separation.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringA video-streaming daemon uid would be a member of "audio" and "video", to get
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringaccess to the sound and video devices, but no "normal" user should ever belong
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringto the "audio" group, because he could listen to the built-in microphone with
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringany ssh-session established from the other side of the world.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poettering/dev/serial/by-{id,path}/ now contains links for ttyUSB devices,
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringwhich do not depend on the kernel device name. As usual, unique
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringdevices - only a single one per product connected, or a real
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringUSB serial number in the device - are always found with the same
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringname in the by-id/ directory.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringCompletely identical devices may overwrite their names in by-id/
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringand can only be found reliably in the by-path/ directory. Devices
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringspecified by by-path/ must not change their connection, like the
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringUSB port number they are plugged in, to keep their name.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringTo support some advanced features, Linux 2.6.22 is the oldest supported
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringversion now. The kernel config with enabled SYSFS_DEPRECATED is no longer
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringsupported. Older kernels should still work, and devices nodes should be
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringreliably created, but some rules and libudev will not work correctly because
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poetteringthe old kernels do not provide the expected information or interfaces.
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringFix for a possible segfault while swapping network interface names in udev
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringversions 131-134.
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringThe group "video" is part of the default rules now.
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringBugfix for kernels using SYSFS_DEPRECATED* option and finding parent
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringblock devices in some cases. No common distro uses this option anymore,
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringand we do not get enough testing for this and recent udev versions. If
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringthis option is not needed to run some old distro with a new kernel,
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringit should be disabled in the kernel config.
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringBugfix for the $links substitution variable, which may crash if no links
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringare created. This should not happen in usual setups because we always
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringcreate /dev/{block,char}/ links.
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringThe strings of the parsed rules, which are kept in memory, no longer
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringcontain duplicate entries, or duplicate tails of strings. This, and the
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringnew rules parsing/matching code reduces the total in-memory size of
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringa huge distro rule sets to 0.08 MB, compared to the 1.2MB of udev
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringThe export of DEVTYPE=disk/partition got removed from the default
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringrules. This value is available from the kernel. The pnp shell script
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringmodprobe hack is removed from the default rules. ACPI devices have _proper_
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringmodalias support and take care of the same functionality.
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringInstallations which support old kernels, but install current default
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringudev rules may want to add that to the compat rules file.
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringLibvolume_id now always probes for all known filesystems, and does not
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringstop at the first match. Some filesystems are marked as "exclusive probe",
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringand if any other filesytem type matches at the same time, libvolume_id
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringwill, by default, not return any probing result. This is intended to prevent
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringmis-detection with conflicting left-over signatures found from earlier
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringfile system formats. That way, we no longer depend on the probe-order
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringin case of multiple competing signatures. In some setups the kernel allows
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringto mount a volume with just the old filesystem signature still in place.
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringThis may damage the new filesystem and cause data-loss, just by mounting
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringit. Because volume_id can not decide which one the correct signature is,
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringthe wrong signatures need to be removed manually from the volume, or the
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringvolume needs to be reformatted, to enable filesystem detection and possible
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringFix segfault if compiled without optimization and dbg() does not get
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringcompiled out and uses variables which are not available.
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringBugfixes. (And maybe new bugs. :))
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringThe rule matching engine got converted from a rule list to a token
c269cec334f940d82146f70d69125b1caef08baaLennart Poetteringarray which reduced the in-memory rules representation of a full
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringfeatured distros with thousends of udev rules from 1.2MB to 0.12 MB.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringLimits like 5 ENV and ATTR matches, and one single instance for most
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringother keys per rule are gone.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringThe NAME assignment is no longer special cased. If later rules assign
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringa NAME value again, the former value will be overwritten. As usual
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringfor most other keys, the NAME value can be protected by doing a final
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringassignment with NAME:="<value>".
c269cec334f940d82146f70d69125b1caef08baaLennart PoetteringAll udev code now uses libudev, which is also exported. The library
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringis still under development, marked as experimental, and its interface
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringmay change as long as the DeviceKit integration is not finished.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringMany thanks to Alan Jenkins for his continuous help, and finding and
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringoptimizing some of the computing expensive parts.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringKernel devices and device nodes are connected now by reverse indizes in
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poettering/sys and /dev. A device number retrieved by a stat() or similar, the
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringkernel device directory can be found by looking up:
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poettering /sys/dev/{block,char}/<maj>:<min>
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringand the device node of the same device by looking up:
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poettering /dev/{block,char}/<maj>:<min>
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringFix recently introduced bug, which caused a compilation without large
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringfile support, where vol_id does not recognize raid signatures at the end
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringFirewire disks now create both, by-id/scsi-* and by-id/ieee-* links.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringSeems some kernel versions prevent the creation of the ieee-* links,
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringso people used the scsi-* link which disappeared now.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringMore libudev work. Almost all udevadm functionality comes from libudev
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringudevadm trigger has a new option --type, which allows to trigger events
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringfor "devices", for "subsystems", or "failed" devices. The old option
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poettering--retry-failed" still works, but is no longer mentioned in the man page.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringThe udevadm info --device-id-of-file= output has changed to use
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringthe obvious format. Possible current users should use the --export
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringoption which is not affected.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringThe old udev commands symlinks to udevadm are not installed, if
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringthese symlinks are used, a warning is printed.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringOptical drive's media is no longer probed for raid signatures,
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringreading the end of the device causes some devices to malfunction.
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart PoetteringAlso the offset of the last session found is used now to probe
c4f1b86299c4ce2a62ce845bc48f2794f5459762Lennart Poetteringfor the filesystem.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringThe volume_id library got a major version number update to 1,
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringsome deprecated functions are removed.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringA shared library "libudev" gets installed now to provide access
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringto udev device information. DeviceKit, the successor of HAL, will
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringneed this library to access the udev database and search sysfs for
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringThe library is currently in an experimental state, also the API is
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringexpected to change, as long as the DeviceKit integration is not
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringWe use ./configure now. See INSTALL for details. Current
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering "/usr" - prefix for man pages, include files
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering --exec-prefix=
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering "" - the root filesystem, prefix for libs and binaries
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering --with-libdir-name=
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering "lib" - directory name for libraries, not a path name
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering multilib 64bit systems may use "lib64" instead of "lib"
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering --enable-debug
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering compile-in verbose debug messages
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering --disable-logging
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering disable all logging and compile-out all log strings
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering --with-selinux
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering link against SELInux libraries, to set the expected context
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering for created files
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringIn the default rules, the group "disk" gets permissions 0660 instead
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringof 0640. One small step closer to unify distro rules. Some day, all
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringdistros hopefully end up with the same set of rules.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringNo symlinks to udevadm are installed anymore, if they are still needed,
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringthey should be provided by the package.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringDefault udev rules, which are not supposed to be edited by the user, should
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringbe placed in /lib/udev/rules.d/ now, to make it clear that they are private to
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringthe udev package and will be replaced with an update. Udev will pick up rule
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering /lib/udev/rules.d/ - default installed rules
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering /etc/udev/rules.d/ - user rules + on-the-fly generated rules
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering /dev/.udev/rules.d/ - temporary non-persistent rules created after bootup
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringIt does not matter in which directory a rule file lives, all files are sorted
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringin lexical order.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringTo help creating /dev/root, we have now:
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poettering $ udevadm info --export --export-prefix="ROOT_" --device-id-of-file=/
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringIn case the current --device-id-of-file is already used, please switch to
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringthe --export format version, it saves the output parsing and the old
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringformat will be changed to use ':' as a separator, like the format in the
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringsysfs 'dev' file.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringFix cdrom_id to properly recognize blank media.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringTape drive id-data is queried from /dev/bsg/* instead of the tape
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringnodes. This avoids rewinding tapes on open().
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringThe symlinks udevcontrol and udevtrigger are no longer installed by
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringThe scsi_id program does not depend on sysfs anymore. It can speak
91ac74250149a29122b2291c5393dec4592430d4Kay SieversSGv4 now, so /dev/bsg/* device nodes can be used, to query SCSI device
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringdata, which should solve some old problems with tape devices, where
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringwe better do not open all tape device nodes to identify the device.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringThe cdrom_id program is replaced by an advanced version, which can
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringdetect most common device types, and also properties of the inserted
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringmedia. This is part of moving some basic functionality from HAL into
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringudev (and the kernel).
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringThe last WAIT_FOR_SYSFS rule is removed from the default rules.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringThe symlinks to udevadm for the debugging tools: udevmonitor and
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringudevtest are no longer created.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringThe symlinks to the udevadm man page for the old tool names are
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringno longer created.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringAbstract namespace sockets paths in RUN+="socket:@<path>" rules,
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringshould be prefixed with '@' to indicate that the path is not a
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringUdevstart is removed from the tree, it did not get installed for
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringa long time now, and is long replaced by trigger and settle.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringAll udev tools are merged into a single binary called udevadm.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringThe old names of the tools are built-in commands in udevadm now.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringSymlinks to udevadm, with the names of the old tools, provide
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringthe same functionality as the standalone tools. There is also
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringonly a single udevadm.8 man page left for all tools.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringTools like mkinitramfs should be checked, if they need to include
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringudevadm in the list of files.
2d938ac75d013f713c1225def78a53583af6a596Lennart PoetteringThe etc/udev/rules.d/ directory now contains a default set of basic
2d938ac75d013f713c1225def78a53583af6a596Lennart Poetteringudev rules. This initial version is the result of a rules file merge
2d938ac75d013f713c1225def78a53583af6a596Lennart Poetteringof Fedora and openSUSE. For these both distros only a few specific
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringrules are left in their own file, named after the distro. Rules which
2d1972857b7bd19b4a74a8f80865749a8082f32aKay Sieversare optionally installed, because they are only valid for a specific
2d1972857b7bd19b4a74a8f80865749a8082f32aKay Sieversarchitecture, or rules for subsystems which are not always used are
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringDynamic rules can be created in /dev/.udev/rules.d/ to trigger
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringactions by dynamically created rules.
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart PoetteringSYMLINK=="<value>" matches agains the entries in the list of
b5b4c94a67d90891a0225af0e08cf45dbc329377Lennart Poetteringcurrently defined symlinks. The links are not created in the
2d1972857b7bd19b4a74a8f80865749a8082f32aKay Sieversfilesystem at that point in time, but the values can be matched.
2d1972857b7bd19b4a74a8f80865749a8082f32aKay SieversRUN{ignore_error}+="<program>" will ignore any exit code from the
2d1972857b7bd19b4a74a8f80865749a8082f32aKay Sieversprogram and not record as a failed event.
4c8cd173305697f59adcebf980ad7babe751d38cLennart PoetteringFinal merge of patches/features from the Ubuntu package.
4c8cd173305697f59adcebf980ad7babe751d38cLennart PoetteringControl characters in filesystem label strings are no longer silenty
4c8cd173305697f59adcebf980ad7babe751d38cLennart Poetteringremoved, but hex-encoded, to be able to uniquely identify the device
4c8cd173305697f59adcebf980ad7babe751d38cLennart Poetteringby its symlink in /dev/disk/by-label/.
4c8cd173305697f59adcebf980ad7babe751d38cLennart PoetteringIf libvolume_id is used by mount(8), LABEL= will work as expected,
4c8cd173305697f59adcebf980ad7babe751d38cLennart Poetteringif slashes or other characters are used in the label string.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringTo test the existence of a file, TEST=="<file>" and TEST!="<file>"
187076d47907f7b3fcd61b2ef5eef9820915946aLennart Poetteringcan be specified now. The TEST key accepts an optional mode mask
187076d47907f7b3fcd61b2ef5eef9820915946aLennart PoetteringTEST{0100}=="<is executable file>".
187076d47907f7b3fcd61b2ef5eef9820915946aLennart PoetteringScsi_id now supports a mode without expecting scsi-specific sysfs
194bbe33382f5365be3865ed1779147cb680f1d3Kay Sieversentries to allow the extraction of cciss-device persistent properties.
07cd4fc16806783d3b6b3008db222ac6a024805cKay SieversIn the future, we may see uuid's which are just simple character
91cf7e5c37f97c6eb29966fac0afcbaa6662e05dTollef Fog Heenstrings (see the DDF Raid Specification). For that reason vol_id now
f13b388f97bc3ba8db844bd3413d510e2466a0b6Kay Sieversexports ID_FS_UUID_SAFE, just like ID_FS_LABEL_SAFE. For things like
f13b388f97bc3ba8db844bd3413d510e2466a0b6Kay Sieversthe creation of symlinks, the *_SAFE values ensure, that no control
64661ee70d5a10c6208a1cb66ecd8b158e2d8bc5Kay Sieversor whitespace characters are used in the filename.
2d13da8821b8197e62f819b5b996750800e910abKay SieversPossible users of libvolume_id, please use the volume_id_get_* functions.
2d13da8821b8197e62f819b5b996750800e910abKay SieversThe public struct will go away in a future release of the library.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringRemoval of useless extras/eventrecorder.sh.
c195956988799837b763ab1b9f078e5f0b7f26e6Kay SieversThe directory multiplexer for dev.d/ and hotplug.d are finally removed
c195956988799837b763ab1b9f078e5f0b7f26e6Kay Sieversfrom the udev package.
18b754d345ecb0b15e369978aaffa72e9814b86aKay SieversSymlinks can have priorities now, the priority is assigned to the device
18b754d345ecb0b15e369978aaffa72e9814b86aKay Sieversand specified with OPTIONS="link_priority=100". Devices with higher
18b754d345ecb0b15e369978aaffa72e9814b86aKay Sieverspriorities overwrite the symlinks of devices with lower priorities.
18b754d345ecb0b15e369978aaffa72e9814b86aKay SieversIf the device that currently owns the link, goes away, the symlink
18b754d345ecb0b15e369978aaffa72e9814b86aKay Sieverswill be removed, and recreated, pointing to the next device with the
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringhighest actual priority. This should make /dev/disk/by-{label,uuid,id}
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringmore reliable, if multiple devices contain the same metadata and overwrite
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringthese symlinks.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringThe dasd_id program is removed from the udev tree, and dasdinfo, with the
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringneeded rules, are part of the s390-tools now.
49f43d5f91a99b23f745726aa351d8f159774357Ville SkyttäPlease add KERNEL=="[0-9]*:[0-9]*" to the scsi wait-for-sysfs rule,
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringwe may get the scsi sysfs mess fixed some day, and this will only catch
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringthe devices we are looking for.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringUSB serial numbers for storage devices have the target:lun now appended,
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringto make it possibble to distinguish broken multi-lun devices with all
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringthe same SCSI identifiers.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringNote: The extra "run_directory" which searches and executes stuff in
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering/etc/hotplug.d/ and /etc/dev.d/ is long deprecated, and will be removed
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringwith the next release. Make sure, that you don't use it anymore, or
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringprovides your own implementation of that inefficient stuff.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringWe are tired of reports about a "slow udev", because these directories
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringcontain stuff, that runs with _every_ event, instead of using rules,
3943231cfeb3d76dc4ec0b9f845c3f874593a9deLennart Poetteringthat run programs only for the matching events.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringDRIVER== will match only for devices that actually have a real
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringdriver. DRIVERS== must be used, if parent devices should be
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringincluded in the match.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringLibvolume_id's "linux_raid" detection needed another fix.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringAdd additional check to volume_id detection of via_raid, cause
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringsome company decided to put a matching pattern all over the empty
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringstorage area of their music players.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringFix path_id for SAS devices.
3943231cfeb3d76dc4ec0b9f845c3f874593a9deLennart PoetteringThe udev daemon can be started with --debug-trace now, which will
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringexecute all events serialized to get a chance to catch a possible
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringaction that crashes the box.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringA warning is logged, if PHYSDEV* keys, the "device" link, or a parent
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringdevice attribute like $attr{../file} is used, only WAIT_FOR_SYSFS rules
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringare excluded from the warning. Referencing parent attributes directly
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringmay break when something in the kernel driver model changes. Udev will
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringjust find the attribute by walking up the parent chain.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringUdevtrigger now sorts the list of devices depending on the device
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringdependency, so a "usb" device is triggered after the parent "pci"
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringRevert persistent-storage ata-serial '_' '-' replacement.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringUdevtrigger can now filter the list of devices to be triggered. Matches
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringfor subsystems or sysfs attributes can be specified.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringThe entries in /dev/.udev/queue and /dev/.udev/failed have changed to
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringzero-sized files to avoid pointing to /sys and confuse broken tools which
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringscan the /dev directory. To retry failed events, udevtrigger --retry-failed
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringshould be used now.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringThe rules and scripts to create udev rules for persistent network
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringdevices and optical drives are in the extras/rules_generator directory
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringnow. If you use something similar, please consider replacing your own
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringversion with this, to share the support effort. The rule_generator
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringinstalls its own rules into /etc/udev/rules.d.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringThe cdrom_id tool installs its own rule now in /etc/udev/rules.d, cause
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringthe rule_generator depends on cdrom_id to be called in an earlier rule.
f8c0a2cb695e3b8140b51cb40637a09ba6eff48eLennart PoetteringRenaming of some key names (the old names still work):
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringBUS -> SUBSYSTEMS, ID -> KERNELS, SYSFS -> ATTRS, DRIVER -> DRIVERS.
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering(The behavior of the key DRIVER will change soon in one of the next
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringreleases, to match only the event device, please switch to DRIVERS
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringinstead. If DRIVER is used, it will behave like DRIVERS, but an error
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringWith the new key names, we have a more consistent and simpler scheme.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringWe can match the properties of the event device only, with: KERNEL,
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringSUBSYSTEM, ATTR, DRIVER. Or include all the parent devices in the match,
3943231cfeb3d76dc4ec0b9f845c3f874593a9deLennart Poetteringwith: KERNELS, SUBSYSTEMS, ATTRS, DRIVERS. ID, BUS, SYSFS, DRIVER are no
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringlonger mentioned in the man page and should be switched in the rule
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringATTR{file}="value" can be used now, to write to a sysfs file of the
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringevent device. Instead of:
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering ..., SYSFS{type}=="0|7|14", RUN+="/bin/sh -c 'echo 60 > /sys$$DEVPATH/timeout'"
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering ..., ATTR{type}=="0|7|14", ATTR{timeout}="60"
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringAll the PHYSDEV* keys are deprecated and will be removed from a
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering PHYDEVPATH - is the path of a parent device and should not be
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering needed at all.
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering PHYSDEVBUS - is just a SUBSYSTEM value of a parent, and can be
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering matched with SUBSYSTEMS==
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering PHYSDEVDRIVER - for bus devices it is available as ENV{DRIVER}.
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering Newer kernels will have DRIVER in the environment,
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering for older kernels udev puts in. Class device will
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering no longer carry this property of a parent and
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poettering DRIVERS== can be used to match such a parent value.
ea5943d3862cc690daa76e2ad336737407ec711cLennart PoetteringNote that ENV{DRIVER} is only available for a few bus devices, where
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringthe driver is already bound at device event time. On coldplug, the
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringevents for a lot devices are already bound to a driver, and they will have
ea5943d3862cc690daa76e2ad336737407ec711cLennart Poetteringthat value set. But on hotplug, at the time the kernel creates the device,
79849bf9f47f9867c72c7eb76b981bb354d0e30eLennart Poetteringit can't know what driver may claim the device after that, therefore
79849bf9f47f9867c72c7eb76b981bb354d0e30eLennart Poetteringin most cases it will be empty.
79849bf9f47f9867c72c7eb76b981bb354d0e30eLennart PoetteringFailed events should now be re-triggered with:
79849bf9f47f9867c72c7eb76b981bb354d0e30eLennart Poettering udevtrigger --retry-failed.
79849bf9f47f9867c72c7eb76b981bb354d0e30eLennart PoetteringPlease switch to this command, so we keep the details of the /dev/.udev/failed/
79849bf9f47f9867c72c7eb76b981bb354d0e30eLennart Poetteringfiles private to the udev tools. We may need to switch the current symlink
79849bf9f47f9867c72c7eb76b981bb354d0e30eLennart Poetteringtarget, cause some obviously broken tools try to scan all files in /dev
79849bf9f47f9867c72c7eb76b981bb354d0e30eLennart Poetteringincluding /dev/.udev/, find the links to /sys and end up stat()'ing sysfs files
79849bf9f47f9867c72c7eb76b981bb354d0e30eLennart Poetteringmillion times. This takes ages on slow boxes.
16f1239e1ece27257c0deedcf01aa39474f66241Lennart PoetteringThe udevinfo attribute walk (-a) now works with giving a device node
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringname (-n) instead of a devpath (-p). The query now always works, also when
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringno database file was created by udev.
16f1239e1ece27257c0deedcf01aa39474f66241Lennart PoetteringThe built-in /etc/passwd /etc/group parser is removed, we always depend on
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringgetpwnam() and getgrnam() now. One of the next releases will depend on
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringfnmatch() and may use getopt_long().
16f1239e1ece27257c0deedcf01aa39474f66241Lennart PoetteringBugfixes and small improvements.
16f1239e1ece27257c0deedcf01aa39474f66241Lennart PoetteringFix path_id for recent kernels.
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poettering%e is finally gone.
16f1239e1ece27257c0deedcf01aa39474f66241Lennart PoetteringAdded support for swapping network interface names, by temporarily
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringrenaming the device and wait for the target name to become free.
16f1239e1ece27257c0deedcf01aa39474f66241Lennart PoetteringThe built-in MODALIAS key and substitution is removed.
16f1239e1ece27257c0deedcf01aa39474f66241Lennart PoetteringThe binary firmware helper is replaced by the usual simple
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringshell script. Udevsend is removed from the tree.
16f1239e1ece27257c0deedcf01aa39474f66241Lennart PoetteringBugfix release.
16f1239e1ece27257c0deedcf01aa39474f66241Lennart PoetteringSome more keys require the correct use of '==' and '=' depending
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringon the kind of operation beeing an assignment or a match. Rules
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringwith invalid operations are skipped and logged to syslog. Please
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringtest with udevtest if the parsing of your rules throws errors and
16f1239e1ece27257c0deedcf01aa39474f66241Lennart Poetteringfix possibly broken rules.
437b7dee328738b7aca89a9c7527f228ff8f2d34Lennart PoetteringProvide "udevsettle" to wait for all current udev events to finish.
437b7dee328738b7aca89a9c7527f228ff8f2d34Lennart PoetteringIt also watches the current kernel netlink queue by comparing the
437b7dee328738b7aca89a9c7527f228ff8f2d34Lennart Poetteringeven sequence number to make sure that there are no current pending
437b7dee328738b7aca89a9c7527f228ff8f2d34Lennart Poetteringevents that have not already arrived in the daemon.
437b7dee328738b7aca89a9c7527f228ff8f2d34Lennart PoetteringFix rule to skip persistent rules for removable IDE devices, which
437b7dee328738b7aca89a9c7527f228ff8f2d34Lennart Poetteringalso skipped optical IDE drives.
437b7dee328738b7aca89a9c7527f228ff8f2d34Lennart PoetteringAll *_id program are installed in /lib/udev/ by default now.
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart PoetteringNo binary is stripped anymore as this should be done in the
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart Poetteringpackaging process and not at build time.
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart Poetteringlibvolume_id is provided as a shared library now and vol_id is
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart Poetteringlinked against it. Also one of the next HAL versions will require
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart Poetteringthis library, and the HAL build process will also require the
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart Poetteringheader file to be installed. The copy of the same code in HAL will
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart Poetteringbe removed to have only a single copy left on the system.
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart PoetteringAdd persistent links for SCSI tapes. The rules file is renamed
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart PoetteringCreate persistent path for usb devices. Can be used for all sorts
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart Poetteringof devices that can't be distinguished by other properties like
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart Poetteringmultiple identical keyboards and mice connected to the same box.
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart PoetteringProvide "udevtrigger" program to request events on coldplug. The
204fa33c82588c47ebeef3f8c4c0b7da750e37f7Lennart Poetteringshell script is much too slow with thousends of devices.
e0d25329b23a43332ea340f9907721873a316f4eKay SieversFix persistent disk rules to exclude removable IDE drives.
e0d25329b23a43332ea340f9907721873a316f4eKay SieversWarn if %e, $modalias or MODALIAS is used.
b13df9644bc6d4823b5a84e8a6bbf3bbb2c207c2Lennart PoetteringFix queue export, which wasn't correct for subsequent add/remove
b13df9644bc6d4823b5a84e8a6bbf3bbb2c207c2Lennart Poetteringevents for the same device.
b13df9644bc6d4823b5a84e8a6bbf3bbb2c207c2Lennart PoetteringFix cramfs detection on big endian.
b13df9644bc6d4823b5a84e8a6bbf3bbb2c207c2Lennart PoetteringMake WAIT_FOR_SYSFS usable in "normal" rules and silent if the whole
ccd07a083e8040a5bb091c5036ab1b4493ff8363Lennart Poetteringdevice goes away.
353e12c2f4a9e96a47eb80b80d2ffb7bc1d44a1bLennart PoetteringIf BUS== and SYSFS{}== have been used in the same rule, the sysfs
353e12c2f4a9e96a47eb80b80d2ffb7bc1d44a1bLennart Poetteringattributes were only checked at the parent device that matched the
353e12c2f4a9e96a47eb80b80d2ffb7bc1d44a1bLennart Poetteringby BUS requested subsystem. Fix it to also look at the device we
b13df9644bc6d4823b5a84e8a6bbf3bbb2c207c2Lennart Poetteringreceived the event for.
b13df9644bc6d4823b5a84e8a6bbf3bbb2c207c2Lennart PoetteringBuild variable CROSS has changed to CROSS_COMPILE to match the kernel
d26e4270409506cd398875216413b651d6ee7de6Lennart PoetteringFix a bug where NAME="" would prevent RUN from beeing executed.
d26e4270409506cd398875216413b651d6ee7de6Lennart PoetteringRUN="/bin/program" does not longer automatically add the subsystem
d26e4270409506cd398875216413b651d6ee7de6Lennart Poetteringas the first parameter. This is from the days of /sbin/hotplug
d26e4270409506cd398875216413b651d6ee7de6Lennart Poetteringwhich is dead now and it's just confusing to need to add a space at
d26e4270409506cd398875216413b651d6ee7de6Lennart Poetteringthe end of the program name to prevent this.
d26e4270409506cd398875216413b651d6ee7de6Lennart PoetteringIf you use rules that need the subsystem as the first parameter,
d26e4270409506cd398875216413b651d6ee7de6Lennart Poetteringlike the old "udev_run_hotlugd" and "udev_run_devd", add the subsystem
d26e4270409506cd398875216413b651d6ee7de6Lennart Poetteringto the key like RUN+="/bin/program $env{SUBSYSTEM}".
b13df9644bc6d4823b5a84e8a6bbf3bbb2c207c2Lennart PoetteringThe udev man page has moved to udev(7) as it does not describe a command
b13df9644bc6d4823b5a84e8a6bbf3bbb2c207c2Lennart Poetteringanymore. The programs udev, udevstart and udevsend are no longer installed
b13df9644bc6d4823b5a84e8a6bbf3bbb2c207c2Lennart Poetteringby default and must be copied manually, if they should be installed or
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringincluded in a package.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringFix a bug where "ignore_device" could run earlier collected RUN keys before
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringthe ignore rule was applied.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringMore preparation for future sysfs changes. usb_id and scsi_id no longer
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringdepend on a magic order of devices in the /devices chain. Specific devices
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringshould be requested by their subsytem.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringThis will always find the scsi parent device without depending on a specific
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering dev = sysfs_device_get(devpath);
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering dev_usb = sysfs_device_get_parent_with_subsystem(dev, "scsi");
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringThe "device" link in the current sysfs layout will be automatically
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering_resolved_ as a parent and in the new sysfs layout it will just _be_ the
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringparent in the devpath. If a device is requested by it's symlink, like all
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringclass devices in the new sysfs layout will look like, it gets automatically
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringresolved and substituted with the real devpath and not the symlink path.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringA similar logic must be applied to _all_ sysfs users, including
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringscripts, that search along parent devices in sysfs. The explicit use of
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringthe "device" link must be avoided. With the future sysfs layout all
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringDEVPATH's will start with /devices/ and have a "subsystem" symlink poiting
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringback to the "class" or the "bus". The layout of the parent devices in
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering/devices is not necessarily expected to be stable across kernel releases and
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringsearching for parents by their subsystem should make sysfs users tolerant
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringfor changed parent chains.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringPrepare udev to work with the experimental kernel patch, that moves
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering/sys/class devices to /sys/devices and /sys/block to /sys/class/block.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringClarify BUS, ID, $id usage and fix $id behavior. This prepares for
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringmoving the class devices to /sys/devices.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringThanks again to Marco for help finding a hopefully nice compromise
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringto make %b simpler and working again.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringComplete removal of libsysfs, replaced by simple helper functions
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringwhich are much simpler and a bit faster. The udev daemon operatesentirely
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringon event parameters and does not use sysfs for simple rules anymore.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringPlease report any new bugs/problems, that may be caused by this big
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringchange. They will be fixed immediately.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringThe enumeration format character '%e' is deprecated and will be
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringremoved sometimes from a future udev version. It never worked correctly
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringoutside of udevstart, so we can't use it with the new parallel
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringcoldplug. A simple enumeration is as useless as the devfs naming
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringscheme, just get rid of both if you still use it.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringMODALIAS and $modalias is not needed and will be removed from one of
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringthe next udev versions, replace it in all rules with ENV{MODALIAS} or
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringthe sysfs "modalias" value.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringThanks a lot to Marco for all his help on finding and fixing bugs.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringLet scsi_id request libata drive serial numbers from page 0x80.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringRenamed etc/udev/persistent.rules to persistent-disk.rules and
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringadded /dev/disk/by-name/* for device mapper device names.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringRemoved %e from the man page. It never worked reliably outside
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringof udevstart and udevstart is no longer recommended to use.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringSymlinks are now exported to the event environment. Hopefully it's no
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringlonger needed to run udevinfo from an event process, like it was
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringmentioned on the hotplug list:
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering UDEV [1134776873.702967] add@/block/sdb
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering DEVLINKS=/dev/disk/by-id/usb-IBM_Memory_Key_0218B301030027E8 /dev/disk/by-path/usb-0218B301030027E8:0:0:0
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringFix a problem if udevsend is used as the hotplug handler and tries to use
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringsyslog, which causes a "vc" event loop. 2.6.15 will make udevsend obsolete
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringand this kind of problems will hopefully go away soon.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringAll built-in logic to work around bad sysfs timing is removed with this
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringversion. The need to wait for sysfs files is almost fixed with a kernel
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringversion that doesn't work with this udev version anyway. Until we fix
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringthe timing of the "bus" link creation, the former integrated logic should
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringbe emulated by a rule placed before all other rules:
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringThe option "udev_db" does no longer exist. All udev state will be in
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poettering/$udev_root/.udev/ now, there is no longer an option to set this
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringto anything else.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringIf the init script or something else used this value, just depend on
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringthis hardcoded path. But remember _all_content_ of this directory is
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringstill private to udev and can change at any time.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringDefault location for rule sripts and helper programs is now: /lib/udev/.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringEverything that is not useful on the commandline should go into this
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringdirectory. Some of the helpers in the extras folder are installed there
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringnow. The rules need to be changed, to find the helpers there.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringAlso /lib/udev/devices is recommended as a directory where packages or
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringthe user can place real device nodes, which get copied over to /dev at
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringevery boot. This should replace the various solutions with custom config
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringUdevsend does no longer start the udev daemon. This must be done with
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringthe init script that prepares /dev on tmpfs and creates the initial nodes,
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringbefore starting the daemon.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringSilent a too verbose error logging for the old hotplug.d/ dev.d/
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringThe copy of klibc is removed. A systemwide installed version of klibc
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringshould be used to build a klibc udev now.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringNAME="" will not create any nodes, but execute RUN keys. To completely
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringignore an event the OPTION "ignore_device" should be used.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringAfter removal of the reorder queue, events with a TIMEOUT can be executed
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringwithout any queuing now.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringFixed bug in udevd, if inotify is not available. We depend on netlink
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringuevents now, kernels without that event source will not work with that
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringversion of udev anymore.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringThe rule parsing happens now in the daemon once at startup, all udev
220a21d38f675eb835f5758e3d23e896573aa5eaLennart Poetteringevent processes inherit the already parsed rules from the daemon.
220a21d38f675eb835f5758e3d23e896573aa5eaLennart PoetteringIt is shipped with SUSE10.0 and reduces heavily the system load at
Kernel 2.6.15 will have symlinks at /class/input pointing to the real
Fix a stupid typo in extras/run_directory for "make install".
/dev/disk/by-label/* links, because we import untrusted data and
have stdin/stdout/stderr, which broke the forked tools in some
The new run_program() uncovered it, because /dev/null was not
persistent disk rules in /dev/disk/by-*/* on your distro, just
RUN+="socket:/org/freedesktop/hal/udev_event"
echo "" > /proc/sys/kernel/hotplug
make EXTRAS=extras/run_directory/
RUN+="/sbin/udev_run_hotplugd"
ACTION="add", DEVPATH="/devices/*", MODALIAS=="?*", RUN+="/sbin/modprobe $modalias"
needs to be documented, for now it's only visible in udev_rules_parse.c.
KERNEL="hd*[!0-9]", IMPORT="/sbin/ata_id --export $tempnode"
KERNEL="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_MODEL}_$env{ID_SERIAL}"
kay@pim:~> tree /dev/disk
handling. This is meant as a general replacement for the dev.d/-directories
We support log priority levels now. The value udev_log in udev.conf is used
make USE_KLIBC=true KLCC=/usr/bin/klcc all