NEWS revision 6d837a5348e7b38cb122405290b7bc3c17d069aa
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringTo support DEVPATH strings larger than the maximum file name length, the
69beda1f75070b36d0562e4050cd567bf2da5a87Kay Sieversprivate udev database format has changed. If some software still reads the
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringprivate files in /dev/.udev/, which it shouldn't, now it's time to fix it.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringPlease do not port anything to the new format again, everything in /dev/.udev
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringis and always was private to udev, and may and will change any time without
69beda1f75070b36d0562e4050cd567bf2da5a87Kay Sieversprior notice.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringNAME="%k" causes a warning now. It's is and always was completely superfluous.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringIt will break kernel supplied DEVNAMEs and therefore it needs to be removed
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringfrom all rules.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringSymlinks to udevadm with the old command names are no longer resolved to
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringthe udevadm commands.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringThe udevadm trigger "--retry-failed" option, which is replaced since quite
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringa while by "--type=failed" is removed.
69beda1f75070b36d0562e4050cd567bf2da5a87Kay SieversThe failed tracking was not working at all for a few releases. The RUN
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringoption "ignore_error" is replaced by a "fail_event_on_error" option, and the
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringdefault is not to track any failing RUN executions.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringNew keymaps, new modem, hid2hci updated.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringFix possible crash in udevd when worker processes are busy, rules are
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringchanged at the same time, and workers get killed to reload the rules.
499b604b21c02ee64c8590a76d7900d64d7a5cb7Zbigniew Jędrzejewski-SzmekProperties set with ENV{.FOO}="bar" are marked private by starting the
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringname with a '.'. They will not be stored in the database, and not be
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringexported with the event.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringFirmware files are looked up in:
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringATA devices switched the property from ID_BUS=scsi to ID_BUS=ata.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringata_id, instead of scsi_id, is the default tool now for ATA devices.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringThe configure options have changed because another library needs to be
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringinstalled in a different location. Instead of exec_prefix and udev_prefix,
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringlibdir, rootlibdir and libexecdir are used. The Details are explained in
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringthe README file.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringEvent processes now get re-used after they handled an event. This reduces
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringthe number of forks and the pressure on the CPU significantly, because
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringcloned event processes no longer cause page faults in the main daemon.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringAfter the events have settled, a few worker processes stay around for
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringfuture events, all others get cleaned up.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringTo be able to use signalfd(), udev depends on kernel version 2.6.25 now.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringAlso inotify support is mandatory now to run udev.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringThe format of the queue exported by the udev damon has changed. There is
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringno longer a /dev/.udev/queue/ directory. The current event queue can be
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringaccessed with udevadm settle and libudedv.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringLibudev does not have the unstable API header anymore. From now on,
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringincompatible changes will be handled by bumping the library major version.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringTo build udev from the git tree gtk-doc is needed now. The tarballs will
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringbuild without it and contain the pre-built documentation. An online copy
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringis available here:
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poettering http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringThe tools from the udev-extras repository have been merged into the main
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringudev repository. Some of the extras have larger external dependencies, and
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringthey can be disabled with the configure switch --disable-extras.
68dd0956ef9d607e6ff9aea15883a2c290a33c2aTom GundersenThe program vol_id and the library libvolume_id are removed from the
68dd0956ef9d607e6ff9aea15883a2c290a33c2aTom Gundersenrepository. Libvolume_id is merged with libblkid from the util-linux-ng
68dd0956ef9d607e6ff9aea15883a2c290a33c2aTom Gundersenpackage. Persistent disk links for label and uuid depend on the
68dd0956ef9d607e6ff9aea15883a2c290a33c2aTom Gundersenutil-linux-ng version (2.15) of blkid now. Older versions of blkid
68dd0956ef9d607e6ff9aea15883a2c290a33c2aTom Gundersencan not be used with udev.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringLibudev allows to subscribe to udev events. To prevent unwanted messages
499b604b21c02ee64c8590a76d7900d64d7a5cb7Zbigniew Jędrzejewski-Szmekto be delivered, and waking up the subscribing process, a filter can be
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringinstalled, to drop messages inside a kernel socket filter. The filters
69beda1f75070b36d0562e4050cd567bf2da5a87Kay Sieversmatch on the <subsytem>:<devtype> properties of the device.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poettering This is part of the ongoing effort to replace HAL, and switch current
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringusers over to directly use libudev.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poettering Libudev is still marked as experimental, and its interface might
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringeventually change if needed, but no major changes of the currently exported
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringinterface are expected anymore, and a first stable release should happen
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringA too old kernel (2.6.21) or a kernel with CONFIG_SYSFS_DEPRECATED
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringis not supported since while and udevd will log an error message at
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringstartup. It should still be able to boot-up, but advanced rules and system
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringservices which depend on the information not available in the old sysfs
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringformat will fail to work correctly.
6936cd8926b6935364874b3701e86fe823e8c4ceLennart PoetteringDVB device naming is supplied by the kernel now. In case older kernels
6936cd8926b6935364874b3701e86fe823e8c4ceLennart Poetteringneed to be supported, the old shell script should be added to a compat
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringThe processed udev events get send back to the netlink socket. Libudev
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringprovides access to these events. This is work-in-progress, to replace
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringthe DeviceKit daemon functionality directly with libudev. There are
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringupcoming kernel changes to allow non-root users to subcribe to these
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poettering"udevadm settle" now optionally accepts a range of events to wait for,
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringinstead of waiting for "all" events.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringThe installed watch for block device metadata changes is now removed
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringduring event hadling, because some (broken) tools may be called from udev
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringrules and (wrongly) open the device with write access. After the finished
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringevent handling the watch is restored.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringDevice nodes can be watched for changes with inotify with OPTIONS="watch".
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringIf closed after being opened for writing, a "change" uevent will occur.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poettering/dev/disk/by-{label,uuid}/* symlinks will be automatically updated.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringThe udevadm test command has no longer a --force option, nodes and symlinks
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringare always updated with a test run now.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringThe udevd daemon can be started with --resolve-names=never to avoid all user
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringand group lookups (e.g. in cut-down systems) or --resolve-names=late to
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringlookup user and groups every time events are handled.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringWe are currently merging the Ubuntu rules in the udev default rules,
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringand get one step closer to provide a common Linux /dev setup, regarding
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringdevice names, symlinks, and default device permissions. On udev startup,
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringwe now expect the following groups to be resolvable to their ids with
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringglibc's getgrnam():
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poettering disk, cdrom, floppy, tape, audio, video, lp, tty, dialout, kmem.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringLDAP setups need to make sure, that these groups are always resolvable at
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringbootup, with only the rootfs mounted, and without network access available.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringSome systems may need to add some new, currently not used groups, or need
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringto add some users to new groups, but the cost of this change is minimal,
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringcompared to the pain the current, rather random, differences between the
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringvarious distributions cause for upstream projects and third-party vendors.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringIn general, "normal" users who log into a machine should never be a member
b8bde11658366290521e3d03316378b482600323Jan Engelhardtof any such group, but the device-access should be managed by dynamic ACLs,
b8bde11658366290521e3d03316378b482600323Jan Engelhardtwhich get added and removed for the specific users on login/logout and
b8bde11658366290521e3d03316378b482600323Jan Engelhardtsession activity/inactivity. These groups are only provided for custom setups,
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringand mainly system services, to allow proper privilege separation.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringA video-streaming daemon uid would be a member of "audio" and "video", to get
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringaccess to the sound and video devices, but no "normal" user should ever belong
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringto the "audio" group, because he could listen to the built-in microphone with
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringany ssh-session established from the other side of the world.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poettering/dev/serial/by-{id,path}/ now contains links for ttyUSB devices,
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringwhich do not depend on the kernel device name. As usual, unique
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringdevices - only a single one per product connected, or a real
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringUSB serial number in the device - are always found with the same
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringname in the by-id/ directory.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringCompletely identical devices may overwrite their names in by-id/
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringand can only be found reliably in the by-path/ directory. Devices
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringspecified by by-path/ must not change their connection, like the
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringUSB port number they are plugged in, to keep their name.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringTo support some advanced features, Linux 2.6.22 is the oldest supported
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringversion now. The kernel config with enabled SYSFS_DEPRECATED is no longer
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringsupported. Older kernels should still work, and devices nodes should be
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringreliably created, but some rules and libudev will not work correctly because
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringthe old kernels do not provide the expected information or interfaces.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringFix for a possible segfault while swapping network interface names in udev
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringversions 131-134.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringThe group "video" is part of the default rules now.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringBugfix for kernels using SYSFS_DEPRECATED* option and finding parent
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringblock devices in some cases. No common distro uses this option anymore,
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringand we do not get enough testing for this and recent udev versions. If
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringthis option is not needed to run some old distro with a new kernel,
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringit should be disabled in the kernel config.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringBugfix for the $links substitution variable, which may crash if no links
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringare created. This should not happen in usual setups because we always
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringcreate /dev/{block,char}/ links.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringThe strings of the parsed rules, which are kept in memory, no longer
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringcontain duplicate entries, or duplicate tails of strings. This, and the
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringnew rules parsing/matching code reduces the total in-memory size of
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringa huge distro rule sets to 0.08 MB, compared to the 1.2MB of udev
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringThe export of DEVTYPE=disk/partition got removed from the default
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringrules. This value is available from the kernel. The pnp shell script
b8bde11658366290521e3d03316378b482600323Jan Engelhardtmodprobe hack is removed from the default rules. ACPI devices have _proper_
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringmodalias support and take care of the same functionality.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringInstallations which support old kernels, but install current default
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringudev rules may want to add that to the compat rules file.
b8bde11658366290521e3d03316378b482600323Jan EngelhardtLibvolume_id now always probes for all known filesystems, and does not
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringstop at the first match. Some filesystems are marked as "exclusive probe",
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringand if any other filesytem type matches at the same time, libvolume_id
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringwill, by default, not return any probing result. This is intended to prevent
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardtmis-detection with conflicting left-over signatures found from earlier
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardtfile system formats. That way, we no longer depend on the probe-order
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringin case of multiple competing signatures. In some setups the kernel allows
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringto mount a volume with just the old filesystem signature still in place.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringThis may damage the new filesystem and cause data-loss, just by mounting
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringit. Because volume_id can not decide which one the correct signature is,
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringthe wrong signatures need to be removed manually from the volume, or the
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringvolume needs to be reformatted, to enable filesystem detection and possible
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringFix segfault if compiled without optimization and dbg() does not get
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringcompiled out and uses variables which are not available.
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringBugfixes. (And maybe new bugs. :))
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart PoetteringThe rule matching engine got converted from a rule list to a token
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringarray which reduced the in-memory rules representation of a full
51c61cda1a542c9e999bfdc6aab4a029c0ae7f5aLennart Poetteringfeatured distros with thousends of udev rules from 1.2MB to 0.12 MB.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringLimits like 5 ENV and ATTR matches, and one single instance for most
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringother keys per rule are gone.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringThe NAME assignment is no longer special cased. If later rules assign
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringa NAME value again, the former value will be overwritten. As usual
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringfor most other keys, the NAME value can be protected by doing a final
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringassignment with NAME:="<value>".
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringAll udev code now uses libudev, which is also exported. The library
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringis still under development, marked as experimental, and its interface
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringmay change as long as the DeviceKit integration is not finished.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringMany thanks to Alan Jenkins for his continuous help, and finding and
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringoptimizing some of the computing expensive parts.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringKernel devices and device nodes are connected now by reverse indizes in
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering/sys and /dev. A device number retrieved by a stat() or similar, the
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringkernel device directory can be found by looking up:
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering /sys/dev/{block,char}/<maj>:<min>
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringand the device node of the same device by looking up:
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering /dev/{block,char}/<maj>:<min>
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringFix recently introduced bug, which caused a compilation without large
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringfile support, where vol_id does not recognize raid signatures at the end
b8bde11658366290521e3d03316378b482600323Jan EngelhardtFirewire disks now create both, by-id/scsi-* and by-id/ieee-* links.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringSeems some kernel versions prevent the creation of the ieee-* links,
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringso people used the scsi-* link which disappeared now.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringMore libudev work. Almost all udevadm functionality comes from libudev
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringudevadm trigger has a new option --type, which allows to trigger events
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringfor "devices", for "subsystems", or "failed" devices. The old option
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering--retry-failed" still works, but is no longer mentioned in the man page.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringThe udevadm info --device-id-of-file= output has changed to use
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringthe obvious format. Possible current users should use the --export
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringoption which is not affected.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringThe old udev commands symlinks to udevadm are not installed, if
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringthese symlinks are used, a warning is printed.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringOptical drive's media is no longer probed for raid signatures,
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringreading the end of the device causes some devices to malfunction.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringAlso the offset of the last session found is used now to probe
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringfor the filesystem.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringThe volume_id library got a major version number update to 1,
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringsome deprecated functions are removed.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringA shared library "libudev" gets installed now to provide access
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringto udev device information. DeviceKit, the successor of HAL, will
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringneed this library to access the udev database and search sysfs for
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringThe library is currently in an experimental state, also the API is
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringexpected to change, as long as the DeviceKit integration is not
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringWe use ./configure now. See INSTALL for details. Current
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering "/usr" - prefix for man pages, include files
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering --exec-prefix=
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering "" - the root filesystem, prefix for libs and binaries
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering --with-libdir-name=
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering "lib" - directory name for libraries, not a path name
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering multilib 64bit systems may use "lib64" instead of "lib"
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering --enable-debug
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering compile-in verbose debug messages
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering --disable-logging
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering disable all logging and compile-out all log strings
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering --with-selinux
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering link against SELInux libraries, to set the expected context
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering for created files
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringIn the default rules, the group "disk" gets permissions 0660 instead
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringof 0640. One small step closer to unify distro rules. Some day, all
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringdistros hopefully end up with the same set of rules.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringNo symlinks to udevadm are installed anymore, if they are still needed,
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringthey should be provided by the package.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringDefault udev rules, which are not supposed to be edited by the user, should
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringbe placed in /lib/udev/rules.d/ now, to make it clear that they are private to
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringthe udev package and will be replaced with an update. Udev will pick up rule
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering /lib/udev/rules.d/ - default installed rules
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering /etc/udev/rules.d/ - user rules + on-the-fly generated rules
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering /dev/.udev/rules.d/ - temporary non-persistent rules created after bootup
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringIt does not matter in which directory a rule file lives, all files are sorted
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringin lexical order.
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringTo help creating /dev/root, we have now:
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poettering $ udevadm info --export --export-prefix="ROOT_" --device-id-of-file=/
699b6b3491dc265ead79602404ad67ccdacae302Lennart PoetteringIn case the current --device-id-of-file is already used, please switch to
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringthe --export format version, it saves the output parsing and the old
13b28d822462e9a0a7130ad40bed08cb380082f0Lennart Poetteringformat will be changed to use ':' as a separator, like the format in the
699b6b3491dc265ead79602404ad67ccdacae302Lennart Poetteringsysfs 'dev' file.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringFix cdrom_id to properly recognize blank media.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringTape drive id-data is queried from /dev/bsg/* instead of the tape
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringnodes. This avoids rewinding tapes on open().
ed28905eecf631916f03edd0a7dfad8b0a177990Kay SieversThe symlinks udevcontrol and udevtrigger are no longer installed by
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringThe scsi_id program does not depend on sysfs anymore. It can speak
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringSGv4 now, so /dev/bsg/* device nodes can be used, to query SCSI device
ed28905eecf631916f03edd0a7dfad8b0a177990Kay Sieversdata, which should solve some old problems with tape devices, where
b8bde11658366290521e3d03316378b482600323Jan Engelhardtwe better do not open all tape device nodes to identify the device.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringThe cdrom_id program is replaced by an advanced version, which can
d27893efdf652c6d85ea590fa0b7c2b88f817083Lennart Poetteringdetect most common device types, and also properties of the inserted
949138ccc3417748b0978980e4a1c67955dd4ba4Ansgar Burchardtmedia. This is part of moving some basic functionality from HAL into
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringudev (and the kernel).
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringThe last WAIT_FOR_SYSFS rule is removed from the default rules.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringThe symlinks to udevadm for the debugging tools: udevmonitor and
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringudevtest are no longer created.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringThe symlinks to the udevadm man page for the old tool names are
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringno longer created.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringAbstract namespace sockets paths in RUN+="socket:@<path>" rules,
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringshould be prefixed with '@' to indicate that the path is not a
ed28905eecf631916f03edd0a7dfad8b0a177990Kay SieversUdevstart is removed from the tree, it did not get installed for
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringa long time now, and is long replaced by trigger and settle.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringAll udev tools are merged into a single binary called udevadm.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringThe old names of the tools are built-in commands in udevadm now.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringSymlinks to udevadm, with the names of the old tools, provide
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringthe same functionality as the standalone tools. There is also
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringonly a single udevadm.8 man page left for all tools.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringTools like mkinitramfs should be checked, if they need to include
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringudevadm in the list of files.
d27893efdf652c6d85ea590fa0b7c2b88f817083Lennart PoetteringThe etc/udev/rules.d/ directory now contains a default set of basic
d27893efdf652c6d85ea590fa0b7c2b88f817083Lennart Poetteringudev rules. This initial version is the result of a rules file merge
b8bde11658366290521e3d03316378b482600323Jan Engelhardtof Fedora and openSUSE. For these both distros only a few specific
d27893efdf652c6d85ea590fa0b7c2b88f817083Lennart Poetteringrules are left in their own file, named after the distro. Rules which
d27893efdf652c6d85ea590fa0b7c2b88f817083Lennart Poetteringare optionally installed, because they are only valid for a specific
b8bde11658366290521e3d03316378b482600323Jan Engelhardtarchitecture, or rules for subsystems which are not always used are
d27893efdf652c6d85ea590fa0b7c2b88f817083Lennart PoetteringDynamic rules can be created in /dev/.udev/rules.d/ to trigger
13b28d822462e9a0a7130ad40bed08cb380082f0Lennart Poetteringactions by dynamically created rules.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringSYMLINK=="<value>" matches agains the entries in the list of
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringcurrently defined symlinks. The links are not created in the
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringfilesystem at that point in time, but the values can be matched.
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart PoetteringRUN{ignore_error}+="<program>" will ignore any exit code from the
43c71255b3db02916f4f70afa18bab196c6f4a45Lennart Poetteringprogram and not record as a failed event.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringFinal merge of patches/features from the Ubuntu package.
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. JohnControl characters in filesystem label strings are no longer silenty
4670e9d5f23fc39360c086fb58eadf8b157ee205Jan Engelhardtremoved, but hex-encoded, to be able to uniquely identify the device
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmekby its symlink in /dev/disk/by-label/.
4670e9d5f23fc39360c086fb58eadf8b157ee205Jan EngelhardtIf libvolume_id is used by mount(8), LABEL= will work as expected,
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmekif slashes or other characters are used in the label string.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringTo test the existence of a file, TEST=="<file>" and TEST!="<file>"
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringcan be specified now. The TEST key accepts an optional mode mask
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan EngelhardtTEST{0100}=="<is executable file>".
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringScsi_id now supports a mode without expecting scsi-specific sysfs
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardtentries to allow the extraction of cciss-device persistent properties.
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. JohnIn the future, we may see uuid's which are just simple character
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringstrings (see the DDF Raid Specification). For that reason vol_id now
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringexports ID_FS_UUID_SAFE, just like ID_FS_LABEL_SAFE. For things like
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthe creation of symlinks, the *_SAFE values ensure, that no control
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardtor whitespace characters are used in the filename.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringPossible users of libvolume_id, please use the volume_id_get_* functions.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe public struct will go away in a future release of the library.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringRemoval of useless extras/eventrecorder.sh.
dfb08b058401d56c395f4f2d20ff214d31a277e5Zbigniew Jędrzejewski-SzmekThe directory multiplexer for dev.d/ and hotplug.d are finally removed
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringfrom the udev package.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringSymlinks can have priorities now, the priority is assigned to the device
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringand specified with OPTIONS="link_priority=100". Devices with higher
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardtpriorities overwrite the symlinks of devices with lower priorities.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringIf the device that currently owns the link, goes away, the symlink
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringwill be removed, and recreated, pointing to the next device with the
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringhighest actual priority. This should make /dev/disk/by-{label,uuid,id}
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringmore reliable, if multiple devices contain the same metadata and overwrite
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthese symlinks.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe dasd_id program is removed from the udev tree, and dasdinfo, with the
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringneeded rules, are part of the s390-tools now.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringPlease add KERNEL=="[0-9]*:[0-9]*" to the scsi wait-for-sysfs rule,
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringwe may get the scsi sysfs mess fixed some day, and this will only catch
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. Johnthe devices we are looking for.
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-SzmekUSB serial numbers for storage devices have the target:lun now appended,
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringto make it possibble to distinguish broken multi-lun devices with all
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthe same SCSI identifiers.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringNote: The extra "run_directory" which searches and executes stuff in
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering/etc/hotplug.d/ and /etc/dev.d/ is long deprecated, and will be removed
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringwith the next release. Make sure, that you don't use it anymore, or
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringprovides your own implementation of that inefficient stuff.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringWe are tired of reports about a "slow udev", because these directories
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringcontain stuff, that runs with _every_ event, instead of using rules,
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthat run programs only for the matching events.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringDRIVER== will match only for devices that actually have a real
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringdriver. DRIVERS== must be used, if parent devices should be
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringincluded in the match.
7e95eda5b36f4a5259e1e86989b5aee824d83d03Patrik FlyktLibvolume_id's "linux_raid" detection needed another fix.
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. JohnAdd additional check to volume_id detection of via_raid, cause
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringsome company decided to put a matching pattern all over the empty
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringstorage area of their music players.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringFix path_id for SAS devices.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe udev daemon can be started with --debug-trace now, which will
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringexecute all events serialized to get a chance to catch a possible
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringaction that crashes the box.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringA warning is logged, if PHYSDEV* keys, the "device" link, or a parent
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringdevice attribute like $attr{../file} is used, only WAIT_FOR_SYSFS rules
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringare excluded from the warning. Referencing parent attributes directly
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringmay break when something in the kernel driver model changes. Udev will
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardtjust find the attribute by walking up the parent chain.
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. JohnUdevtrigger now sorts the list of devices depending on the device
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringdependency, so a "usb" device is triggered after the parent "pci"
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringRevert persistent-storage ata-serial '_' '-' replacement.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringUdevtrigger can now filter the list of devices to be triggered. Matches
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringfor subsystems or sysfs attributes can be specified.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe entries in /dev/.udev/queue and /dev/.udev/failed have changed to
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringzero-sized files to avoid pointing to /sys and confuse broken tools which
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringscan the /dev directory. To retry failed events, udevtrigger --retry-failed
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringshould be used now.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe rules and scripts to create udev rules for persistent network
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringdevices and optical drives are in the extras/rules_generator directory
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. Johnnow. If you use something similar, please consider replacing your own
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringversion with this, to share the support effort. The rule_generator
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringinstalls its own rules into /etc/udev/rules.d.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe cdrom_id tool installs its own rule now in /etc/udev/rules.d, cause
b97610038a122ff30e60b1996369ca4b979d8b19Kay Sieversthe rule_generator depends on cdrom_id to be called in an earlier rule.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringRenaming of some key names (the old names still work):
4670e9d5f23fc39360c086fb58eadf8b157ee205Jan EngelhardtBUS -> SUBSYSTEMS, ID -> KERNELS, SYSFS -> ATTRS, DRIVER -> DRIVERS.
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmek(The behavior of the key DRIVER will change soon in one of the next
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmekreleases, to match only the event device, please switch to DRIVERS
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringinstead. If DRIVER is used, it will behave like DRIVERS, but an error
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringWith the new key names, we have a more consistent and simpler scheme.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringWe can match the properties of the event device only, with: KERNEL,
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringSUBSYSTEM, ATTR, DRIVER. Or include all the parent devices in the match,
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringwith: KERNELS, SUBSYSTEMS, ATTRS, DRIVERS. ID, BUS, SYSFS, DRIVER are no
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringlonger mentioned in the man page and should be switched in the rule
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringATTR{file}="value" can be used now, to write to a sysfs file of the
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringevent device. Instead of:
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering ..., SYSFS{type}=="0|7|14", RUN+="/bin/sh -c 'echo 60 > /sys$$DEVPATH/timeout'"
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmek ..., ATTR{type}=="0|7|14", ATTR{timeout}="60"
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringAll the PHYSDEV* keys are deprecated and will be removed from a
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering PHYDEVPATH - is the path of a parent device and should not be
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmek PHYSDEVBUS - is just a SUBSYSTEM value of a parent, and can be
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmek matched with SUBSYSTEMS==
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering PHYSDEVDRIVER - for bus devices it is available as ENV{DRIVER}.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering Newer kernels will have DRIVER in the environment,
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering for older kernels udev puts in. Class device will
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering no longer carry this property of a parent and
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardt DRIVERS== can be used to match such a parent value.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringNote that ENV{DRIVER} is only available for a few bus devices, where
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthe driver is already bound at device event time. On coldplug, the
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringevents for a lot devices are already bound to a driver, and they will have
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthat value set. But on hotplug, at the time the kernel creates the device,
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringit can't know what driver may claim the device after that, therefore
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringin most cases it will be empty.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringFailed events should now be re-triggered with:
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering udevtrigger --retry-failed.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringPlease switch to this command, so we keep the details of the /dev/.udev/failed/
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringfiles private to the udev tools. We may need to switch the current symlink
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringtarget, cause some obviously broken tools try to scan all files in /dev
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringincluding /dev/.udev/, find the links to /sys and end up stat()'ing sysfs files
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringmillion times. This takes ages on slow boxes.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe udevinfo attribute walk (-a) now works with giving a device node
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringname (-n) instead of a devpath (-p). The query now always works, also when
8e420494bc59d8b9d43e6d34d8ec8bb765946c74Lennart Poetteringno database file was created by udev.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe built-in /etc/passwd /etc/group parser is removed, we always depend on
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringgetpwnam() and getgrnam() now. One of the next releases will depend on
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringfnmatch() and may use getopt_long().
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringBugfixes and small improvements.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringFix path_id for recent kernels.
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmek%e is finally gone.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringAdded support for swapping network interface names, by temporarily
c0c5af00bec95567435bdfb818c69b2b669adfedDaniel Buchrenaming the device and wait for the target name to become free.
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan EngelhardtThe built-in MODALIAS key and substitution is removed.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe binary firmware helper is replaced by the usual simple
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringshell script. Udevsend is removed from the tree.
6300b3eca9e5261b73bd7f1bb9735992b127cd80Lennart PoetteringBugfix release.
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan EngelhardtSome more keys require the correct use of '==' and '=' depending
6300b3eca9e5261b73bd7f1bb9735992b127cd80Lennart Poetteringon the kind of operation beeing an assignment or a match. Rules
6300b3eca9e5261b73bd7f1bb9735992b127cd80Lennart Poetteringwith invalid operations are skipped and logged to syslog. Please
6300b3eca9e5261b73bd7f1bb9735992b127cd80Lennart Poetteringtest with udevtest if the parsing of your rules throws errors and
6300b3eca9e5261b73bd7f1bb9735992b127cd80Lennart Poetteringfix possibly broken rules.
6300b3eca9e5261b73bd7f1bb9735992b127cd80Lennart PoetteringProvide "udevsettle" to wait for all current udev events to finish.
6300b3eca9e5261b73bd7f1bb9735992b127cd80Lennart PoetteringIt also watches the current kernel netlink queue by comparing the
6300b3eca9e5261b73bd7f1bb9735992b127cd80Lennart Poetteringeven sequence number to make sure that there are no current pending
6300b3eca9e5261b73bd7f1bb9735992b127cd80Lennart Poetteringevents that have not already arrived in the daemon.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringFix rule to skip persistent rules for removable IDE devices, which
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringalso skipped optical IDE drives.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringAll *_id program are installed in /lib/udev/ by default now.
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. JohnNo binary is stripped anymore as this should be done in the
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. Johnpackaging process and not at build time.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringlibvolume_id is provided as a shared library now and vol_id is
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringlinked against it. Also one of the next HAL versions will require
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardtthis library, and the HAL build process will also require the
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringheader file to be installed. The copy of the same code in HAL will
ad42cf7308c45fb8a77c15b313f45361c5ea8fb5Kay Sieversbe removed to have only a single copy left on the system.
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. JohnAdd persistent links for SCSI tapes. The rules file is renamed
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan EngelhardtCreate persistent path for usb devices. Can be used for all sorts
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringof devices that can't be distinguished by other properties like
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. Johnmultiple identical keyboards and mice connected to the same box.
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. JohnProvide "udevtrigger" program to request events on coldplug. The
ad42cf7308c45fb8a77c15b313f45361c5ea8fb5Kay Sieversshell script is much too slow with thousends of devices.
ad42cf7308c45fb8a77c15b313f45361c5ea8fb5Kay SieversFix persistent disk rules to exclude removable IDE drives.
ad42cf7308c45fb8a77c15b313f45361c5ea8fb5Kay SieversWarn if %e, $modalias or MODALIAS is used.
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan EngelhardtFix queue export, which wasn't correct for subsequent add/remove
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringevents for the same device.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringFix cramfs detection on big endian.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringMake WAIT_FOR_SYSFS usable in "normal" rules and silent if the whole
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardtdevice goes away.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringIf BUS== and SYSFS{}== have been used in the same rule, the sysfs
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringattributes were only checked at the parent device that matched the
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringby BUS requested subsystem. Fix it to also look at the device we
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringreceived the event for.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringBuild variable CROSS has changed to CROSS_COMPILE to match the kernel
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringFix a bug where NAME="" would prevent RUN from beeing executed.
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-SzmekRUN="/bin/program" does not longer automatically add the subsystem
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmekas the first parameter. This is from the days of /sbin/hotplug
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringwhich is dead now and it's just confusing to need to add a space at
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmekthe end of the program name to prevent this.
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-SzmekIf you use rules that need the subsystem as the first parameter,
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmeklike the old "udev_run_hotlugd" and "udev_run_devd", add the subsystem
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringto the key like RUN+="/bin/program $env{SUBSYSTEM}".
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-SzmekThe udev man page has moved to udev(7) as it does not describe a command
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmekanymore. The programs udev, udevstart and udevsend are no longer installed
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmekby default and must be copied manually, if they should be installed or
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringincluded in a package.
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. JohnFix a bug where "ignore_device" could run earlier collected RUN keys before
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthe ignore rule was applied.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringMore preparation for future sysfs changes. usb_id and scsi_id no longer
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringdepend on a magic order of devices in the /devices chain. Specific devices
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardtshould be requested by their subsytem.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThis will always find the scsi parent device without depending on a specific
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering dev = sysfs_device_get(devpath);
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. John dev_usb = sysfs_device_get_parent_with_subsystem(dev, "scsi");
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe "device" link in the current sysfs layout will be automatically
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering_resolved_ as a parent and in the new sysfs layout it will just _be_ the
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmekparent in the devpath. If a device is requested by it's symlink, like all
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringclass devices in the new sysfs layout will look like, it gets automatically
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringresolved and substituted with the real devpath and not the symlink path.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringA similar logic must be applied to _all_ sysfs users, including
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringscripts, that search along parent devices in sysfs. The explicit use of
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. Johnthe "device" link must be avoided. With the future sysfs layout all
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-SzmekDEVPATH's will start with /devices/ and have a "subsystem" symlink poiting
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-Szmekback to the "class" or the "bus". The layout of the parent devices in
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering/devices is not necessarily expected to be stable across kernel releases and
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringsearching for parents by their subsystem should make sysfs users tolerant
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringfor changed parent chains.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringPrepare udev to work with the experimental kernel patch, that moves
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering/sys/class devices to /sys/devices and /sys/block to /sys/class/block.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringClarify BUS, ID, $id usage and fix $id behavior. This prepares for
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringmoving the class devices to /sys/devices.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThanks again to Marco for help finding a hopefully nice compromise
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringto make %b simpler and working again.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringComplete removal of libsysfs, replaced by simple helper functions
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringwhich are much simpler and a bit faster. The udev daemon operatesentirely
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringon event parameters and does not use sysfs for simple rules anymore.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringPlease report any new bugs/problems, that may be caused by this big
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringchange. They will be fixed immediately.
8e420494bc59d8b9d43e6d34d8ec8bb765946c74Lennart PoetteringThe enumeration format character '%e' is deprecated and will be
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringremoved sometimes from a future udev version. It never worked correctly
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringoutside of udevstart, so we can't use it with the new parallel
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringcoldplug. A simple enumeration is as useless as the devfs naming
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. Johnscheme, just get rid of both if you still use it.
1e190502e78cea1f8bcb62e6d390305c89e41e6aZbigniew Jędrzejewski-SzmekMODALIAS and $modalias is not needed and will be removed from one of
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthe next udev versions, replace it in all rules with ENV{MODALIAS} or
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthe sysfs "modalias" value.
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan EngelhardtThanks a lot to Marco for all his help on finding and fixing bugs.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringLet scsi_id request libata drive serial numbers from page 0x80.
6afc95b73605833e6e966af1c466b5c08feb953fLennart PoetteringRenamed etc/udev/persistent.rules to persistent-disk.rules and
70a44afee385c4afadaab9a002b3f9dd44aedf4aJan Engelhardtadded /dev/disk/by-name/* for device mapper device names.
b8bde11658366290521e3d03316378b482600323Jan EngelhardtRemoved %e from the man page. It never worked reliably outside
6afc95b73605833e6e966af1c466b5c08feb953fLennart Poetteringof udevstart and udevstart is no longer recommended to use.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringSymlinks are now exported to the event environment. Hopefully it's no
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringlonger needed to run udevinfo from an event process, like it was
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringmentioned on the hotplug list:
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering UDEV [1134776873.702967] add@/block/sdb
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering DEVLINKS=/dev/disk/by-id/usb-IBM_Memory_Key_0218B301030027E8 /dev/disk/by-path/usb-0218B301030027E8:0:0:0
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringFix a problem if udevsend is used as the hotplug handler and tries to use
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringsyslog, which causes a "vc" event loop. 2.6.15 will make udevsend obsolete
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringand this kind of problems will hopefully go away soon.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringAll built-in logic to work around bad sysfs timing is removed with this
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardtversion. The need to wait for sysfs files is almost fixed with a kernel
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. Johnversion that doesn't work with this udev version anyway. Until we fix
b8bde11658366290521e3d03316378b482600323Jan Engelhardtthe timing of the "bus" link creation, the former integrated logic should
b8bde11658366290521e3d03316378b482600323Jan Engelhardtbe emulated by a rule placed before all other rules:
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poettering ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe option "udev_db" does no longer exist. All udev state will be in
4c2413bffa7861bd3c4b3589c821ab7e0ac51c83Jan Engelhardt/$udev_root/.udev/ now, there is no longer an option to set this
8b7d0494a3fe35209d4db0d1b9e065e7e5cc9875Jason St. Johnto anything else.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringIf the init script or something else used this value, just depend on
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthis hardcoded path. But remember _all_content_ of this directory is
210054d76cf4d294533aa09256d375e33b52569fKay Sieversstill private to udev and can change at any time.
210054d76cf4d294533aa09256d375e33b52569fKay SieversDefault location for rule sripts and helper programs is now: /lib/udev/.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringEverything that is not useful on the commandline should go into this
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringdirectory. Some of the helpers in the extras folder are installed there
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringnow. The rules need to be changed, to find the helpers there.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringAlso /lib/udev/devices is recommended as a directory where packages or
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthe user can place real device nodes, which get copied over to /dev at
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringevery boot. This should replace the various solutions with custom config
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringUdevsend does no longer start the udev daemon. This must be done with
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringthe init script that prepares /dev on tmpfs and creates the initial nodes,
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringbefore starting the daemon.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringSilent a too verbose error logging for the old hotplug.d/ dev.d/
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringThe copy of klibc is removed. A systemwide installed version of klibc
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringshould be used to build a klibc udev now.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringNAME="" will not create any nodes, but execute RUN keys. To completely
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart Poetteringignore an event the OPTION "ignore_device" should be used.
e49b5aada0df13c9e8fce7338ae34e075dd7ccd1Lennart PoetteringAfter removal of the reorder queue, events with a TIMEOUT can be executed
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringwithout any queuing now.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringFixed bug in udevd, if inotify is not available. We depend on netlink
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringuevents now, kernels without that event source will not work with that
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringversion of udev anymore.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringThe rule parsing happens now in the daemon once at startup, all udev
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringevent processes inherit the already parsed rules from the daemon.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringIt is shipped with SUSE10.0 and reduces heavily the system load at
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringstartup. The option to save precompiled rules and let the udev process
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringpick the them up is removed, as it's no longer needed.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringKernel 2.6.15 will have symlinks at /class/input pointing to the real
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringdevice. Libsysfs is changed to "translate" the requested link into the
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringreal device path, as it would happen with the hotplug event. Otherwise
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringdevice removal and the udev database will not work.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringUsing 'make STRIPCMD=' will leave the binaries unstripped for debugging
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringA few improvements for vol_id, the filesytem probing code.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringFix a stupid typo in extras/run_directory for "make install".
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringscsi_id creates the temporary devnode now in /dev for usage with a
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringnon-writable /tmp directory.
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan EngelhardtThe uevent kernel socket buffer can carry app. 50.000 events now,
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringlet's see who can break this again. :)
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringThe upcoming kernel will have a new input driver core integration.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringSome class devices are now symlinks to the real device. libsysfs
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringneeds a fix for this to work correctly. Udevstart of older udev
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringversions will _not_ create these devices!
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringFix a 'install' target in the Makefile, that prevents EXTRAS from
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringbeeing installed.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringA bunch of mostly trivial bugfixes. From now on no node name or
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringsymlink name can contain any character than plain whitelisted ascii
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringcharacters or validated utf8 byte-streams. This is needed for the
cd4010b37349413db1e553e213e62e654ca28113Lennart Poettering/dev/disk/by-label/* links, because we import untrusted data and
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringexport it to the filesystem.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringMore bugfixes. If udevd was started from the kernel, we don't
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringhave stdin/stdout/stderr, which broke the forked tools in some
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringBugfix. udevstart event ordering was broken for a long time.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringThe new run_program() uncovered it, because /dev/null was not
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringavailable while we try to run external programs.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringNow udevstart should create it before we run anything.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringMinor bugfixes and some distro rules updates. If you don't have the
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringpersistent disk rules in /dev/disk/by-*/* on your distro, just
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringgrab it from here. :)
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringWe can use socket communication now to pass events from udev to
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringother programs:
cd4010b37349413db1e553e213e62e654ca28113Lennart Poettering RUN+="socket:/org/freedesktop/hal/udev_event"
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringwill pass the whole udev event to the HAL daemon without the need
cd4010b37349413db1e553e213e62e654ca28113Lennart Poetteringfor a forked helper. (See ChangeLog for udevmonitor, as an example)
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringMostly bugfixes and see ChangeLog.
cd4010b37349413db1e553e213e62e654ca28113Lennart PoetteringThe test for the existence of an environment value should be
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering ENV{KEY}=="*" to ENV{KEY}=="?*"
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringbecause "*" will not fail anymore, if the key does not exist or
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart PoetteringBugfixes and a few tweaks described in the ChangeLog.
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart PoetteringMostly a Bugfix release.
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart PoetteringAdded WAIT_FOR_SYSFS="<attribute>" to be able to fight against the sysfs
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringtiming with custom rules.
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart PoetteringWe changed the internal rule storage format. Our large rule files took
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering2 MB of RAM, with the change we are down to 99kB.
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart PoetteringIf the device-node has been created with default name and no symlink or
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringoptions are to remenber, it is not longer stored in the udevdb. HAL will
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringneed to be updated to work correctly with that change.
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart PoetteringTo overrride optimization flags, OPTFLAGS may be used now.
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart PoetteringBugfix release.
f3a165b05d117b9a9657076fed6b265eb40d5ba3Kay SieversMajor changes happened with this release. The goal is to take over the
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringcomplete kernel-event handling and provide a more efficient way to dispatch
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringkernel events. Replacing most of the current shell script logic and the
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringkernel forked helper with a netlink-daemon and a rule-based event handling.
387abf80ad40e4a6c2f4725c8eff4d66bf110d1fLennart Poetteringo udevd listens to netlink events now. The first valid netlink event
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering will make udevd ignore any message from udevsend that contains a
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering SEQNUM, to avoid duplicate events. The forked events can be disabled
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering For full support, the broken input-subsytem needs to be fixed, not to
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering bypass the driver core.
f3a165b05d117b9a9657076fed6b265eb40d5ba3Kay Sieverso /etc/dev.d/ + /etc/hotplug.d/ directory multiplexing is completely
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering removed from udev itself and must be emulated by calling small
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering helper binaries provided in the extras folder:
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering will build udev_run_devd and udev_run_hotplugd, which can be called
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering from a rule if needed:
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering The recommended way to handle this is to convert all the calls from
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering the directories to explicit udev rules and get completely rid of the
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering multiplexing. (To catch a ttyUSB event, you now no longer need to
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering fork and exit 300 tty script instances you are not interested in, it
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering is just one rule that matches exactly the device.)
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringo udev handles now _all_ events not just events for class and block
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering devices, this way it is possible to control the complete event
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering behavior with udev rules. Especially useful for rules like:
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering ACTION="add", DEVPATH="/devices/*", MODALIAS=="?*", RUN+="/sbin/modprobe $modalias"
387abf80ad40e4a6c2f4725c8eff4d66bf110d1fLennart Poetteringo As used in the modalias rule, udev supports now textual
387abf80ad40e4a6c2f4725c8eff4d66bf110d1fLennart Poettering substitution placeholder along with the usual format chars. This
387abf80ad40e4a6c2f4725c8eff4d66bf110d1fLennart Poettering needs to be documented, for now it's only visible in udev_rules_parse.c.
387abf80ad40e4a6c2f4725c8eff4d66bf110d1fLennart Poetteringo The rule keys support now more operations. This is documented in the
387abf80ad40e4a6c2f4725c8eff4d66bf110d1fLennart Poettering man page. It is possible to add values to list-keys like the SYMLINK
04bf3c1a60d82791e0320381e9268f727708f776Kay Sievers and RUN list with KEY+="value" and to clear the list by assigning KEY="".
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering Also "final"-assignments are supported by using KEY:="value", which will
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering prevent changing the key by any later rule.
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringo kernel 2.6.12 has the "detached_state" attribute removed from
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering sysfs, which was used to recognize sysfs population. We switched that
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering to wait for the "bus" link, which is only available in kernels after 2.6.11.
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering Running this udev version on older kernels may cause a short delay for
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poetteringo To provide infrastructure for persistent device naming, the id programs:
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering scsi_id, vol_id (former udev_volume_id), and ata_id (new) are able now
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering to export the probed data in environment key format:
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering ID_MODEL=HTS726060M9AT00
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering ID_SERIAL=MRH401M4G6UM9B
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering ID_REVISION=MH4OA6BA
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering The following rules:
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering KERNEL="hd*[!0-9]", IMPORT="/sbin/ata_id --export $tempnode"
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering KERNEL="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_MODEL}_$env{ID_SERIAL}"
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering kay@pim:~> tree /dev/disk
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering | |-- HTS726060M9AT00_MRH401M4G6UM9B -> ../../hda
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering | `-- IBM-Memory_Key -> ../../sda
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering | |-- swap -> ../../hda1
4f0be680b5323e037314cfbd3dba34f03e637c8fLennart Poettering | |-- date -> ../../sda1
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering | `-- home -> ../../hda3
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering |-- 2E08712B0870F2E7 -> ../../hda3
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering |-- 9352cfef-7687-47bc-a2a3-34cf136f72e1 -> ../../hda1
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering |-- E845-7A89 -> ../../sda1
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering `-- b2a61681-3812-4f13-a4ff-920d70604299 -> ../../hda2
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering The IMPORT= operation will import these keys in the environment and make
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering it available for later PROGRAM= and RUN= executed programs. The keys are
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering also stored in the udevdb and can be queried from there with one of the
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering next udev versions.
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poetteringo A few binaries are silently added to the repository, which can be used
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering to replay kernel events from initramfs instead of using coldplug. udevd
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering can be instructed now to queue-up events while the stored events from
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering initramfs are filled into the udevd-queue. This code is still under
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering development and there is no documentation now besides the code itself.
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering The additional binaries get compiled, but are not installed by default.
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poetteringo There is also a temporary fix for a performance problem where too many
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering events happen in parallel and every event needs to parse the rules.
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering udev can now read precompiled rules stored on disk. This is likely to be
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering replaced by a more elegant solution in a future udev version.
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart PoetteringWith kernel version 2.6.12, the sysfs file "detached_state" was removed.
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart PoetteringFix for libsysfs not to expect this file was added.
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringAll rules are applied now, but only the first matching rule with a NAME-key
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringwill be applied. All later rules with NAME-key are completely ignored. This
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringway system supplied symlinks or permissions gets applied to user-defined
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringPlease check your rules setup, if you may need to add OPTIONS="last_rule"
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringto some rules, to keep the old behavior.
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringThe rules are read on "remove"-events too. That makes is possible to match
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringwith keys that are available on remove (KERNEL, SUBSYSTEM, ID, ENV, ...) to
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringinstruct udev to ignore an event (OPTIONS="ignore_device").
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringThe new ACTION-key may be used to let a rule act only at a "remove"-event.
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringThe new RUN-key supports rule-based execution of programs after device-node
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringhandling. This is meant as a general replacement for the dev.d/-directories
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringto give fine grained control over the execution of programs.
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart PoetteringThe %s{}-sysfs format char replacement values are searched at any of the
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poetteringdevices in the device chain now, not only at the class-device.
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart PoetteringWe support log priority levels now. The value udev_log in udev.conf is used
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poetteringto determine what is printed to syslog. This makes it possible to
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poetteringrun a version with compiled-in debug messages in a production environment
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poetteringwhich is sometimes needed to find a bug.
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringIt is still possible to supress the inclusion of _any_ syslog usage with
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringUSE_LOG=false to create the smallest possible binaries if needed.
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart PoetteringThe configured udev_log value can be overridden with the environment variable
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart PoetteringPossible use of a system-wide klibc:
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poettering make USE_KLIBC=true KLCC=/usr/bin/klcc all
408f281bc7d65c86563f46e99e07efd1a1d9e03aLennart Poetteringwill link against an external klibc and our own version will be ignored.
28f5c779e5513ab1301ac103471009711b0961e0Kay SieversWe support an unlimited count of symlinks now.
28f5c779e5513ab1301ac103471009711b0961e0Kay SieversIf USE_STATIC=true is passed to a glibc build, we link statically and use
28f5c779e5513ab1301ac103471009711b0961e0Kay Sieversa built-in userdb parser to resolve user and group names.
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringThe PLACE= key is gone. It can be replaced by an ID= for a long time, because
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringwe walk up the chain of physical devices to find a match.
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringThe KEY="<value>" format supports '=', '==', '!=,' , '+=' now. This makes it
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringeasy to skip certain attribute matches without composing rules with weird
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringcharacter class negations like:
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poettering KERNEL="[!s][!c][!d]*"
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringthis can now be replaced with:
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poettering KERNEL!="scd*"
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringThe current simple '=' is still supported, and should work as it does today,
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringbut existing rules should be converted if possible, to be better readable.
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart PoetteringWe have new ENV{}== key now, to match against a maximum of 5 environment
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringudevstart is its own binary again, because we don't need co carry this araound
251cc8194228ac86c9a7a4c75a54a94cea2095c7Lennart Poetteringwith every forked event.