NEWS revision 8553cf06b93739c859534a85cc7ef1bdd8e33a5c
b3ae710c251d0ce5cf2cef63208e325497b5e323Zbigniew Jędrzejewski-SzmekFor some more advanced features Linux 2.6.22 is the oldest supported
b3ae710c251d0ce5cf2cef63208e325497b5e323Zbigniew Jędrzejewski-Szmekversion now. The kernel config with enabled SYSFS_DEPRECATED
f957632b960a0a42999b38ded7089fa602b41745Kay Sieversis no longer supported. Older kernels should still work, and devices
f957632b960a0a42999b38ded7089fa602b41745Kay Sieversnodes should be reliably created, but some rules and libudev will
f957632b960a0a42999b38ded7089fa602b41745Kay Sieversnot work correctly because the old kernels do not provide the expected
f957632b960a0a42999b38ded7089fa602b41745Kay Sieversinformation or interfaces.
20ffc4c4a9226b0e45cc02ad9c0108981626c0bbKay SieversWe are currently merging the Ubuntu rules in the udev default rules, and
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringget one step closer to provide a common Linux /dev setup regarding device
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringnames, symlinks, and default device permissions. On udev startup, we now
466784c8710e5cb0e0b86a16506d992d7ec5b619Kay Sieversexpect the following groups to be resolvable to their ids by glibc's
55d32caf94d8df547ca763be52b0c35bb6388606Lennart Poetteringgetgrnam(): "disk cdrom floppy tape audio video lp tty kmem".
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poettering/dev/serial/by-{id,path}/ now contains links for ttyUSB devices,
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringwhich do not depend on the kernel device name. As usual, unique
bafb15bab99887d1b6b8a35136531bac6c3876a6Lennart Poetteringdevices - only a single one per product connected, or a real
81429136905a6204875174b60a179333b7f3c9e4Kay SieversUSB serial number in the device - are always found with the same
e7b4d43ec3d5eb0099a3978f98a46f3c15443b23Lennart Poetteringname in the by-id/ directory.
58f55364fa00a6a4706df2c4a01c6967f432e531Lennart PoetteringCompletely Identical devices may overwrite their names in by-id/
58f55364fa00a6a4706df2c4a01c6967f432e531Lennart Poetteringand can only be found reliably in the by-path/ directory. Devices
81429136905a6204875174b60a179333b7f3c9e4Kay Sieversspecified by by-path/ must not change their connection, like the
fbe1a1a94f19112d7e5d60c40d87487ad24e2ce4Lennart PoetteringUSB port number they are plugged in, to keep their name.
b6b63571ae3eca1741d54172922961af972b8f20Lennart PoetteringFix for a possible segfault while swapping network interface names in udev
9d6db739ce1eaa3eace21801fd606d523b73c8f4Lennart Poetteringversions 131-134.
6992efee44d3affd17dd9174e8673ae63ba01ec7Lennart PoetteringThe group "video" is part of the default rules now.
0f47ed0a052c0da743404f23ac3532aaabd23655Lennart PoetteringBugfix for kernels using SYSFS_DEPRECATED* option and finding parent
9d6db739ce1eaa3eace21801fd606d523b73c8f4Lennart Poetteringblock devices in some cases. No common distro uses this option anymore,
0f47ed0a052c0da743404f23ac3532aaabd23655Lennart Poetteringand we do not get enough testing for this and recent udev versions. If
9d6db739ce1eaa3eace21801fd606d523b73c8f4Lennart Poetteringthis option is not needed to run some old distro with a new kernel,
f1f520e8dfe2072a6d8c50d35bc9f2f145596aa5Lennart Poetteringit should be disabled in the kernel config.
bc07548926ec5ed7b13df8d3656654f238e0b9a7Lennart PoetteringBugfix for the $links substitution variable, which may crash if no links
bc07548926ec5ed7b13df8d3656654f238e0b9a7Lennart Poetteringare created. This should not happen in usual setups because we always
b6b63571ae3eca1741d54172922961af972b8f20Lennart Poetteringcreate /dev/{block,char}/ links.
3f77a1b19f5a8ce33566f7f6e28e94c08ea30841Kay SieversThe strings of the parsed rules, which are kept in memory, no longer
3f77a1b19f5a8ce33566f7f6e28e94c08ea30841Kay Sieverscontain duplicate entries, or duplicate tails of strings. This, and the
3f77a1b19f5a8ce33566f7f6e28e94c08ea30841Kay Sieversnew rules parsing/matching code reduces the total in-memory size of
3f77a1b19f5a8ce33566f7f6e28e94c08ea30841Kay Sieversa huge distro rule sets to 0.08 MB, compared to the 1.2MB of udev
58f55364fa00a6a4706df2c4a01c6967f432e531Lennart PoetteringThe export of DEVTYPE=disk/partition got removed from the default
58f55364fa00a6a4706df2c4a01c6967f432e531Lennart Poetteringrules. This value is available from the kernel. The pnp shell script
27f1e9ebf6f9e7ff8a898f894c1b38cbdecfa77cLennart Poetteringmodprobe hack is removed from the default rules. ACPI devices have _proper_
27f1e9ebf6f9e7ff8a898f894c1b38cbdecfa77cLennart Poetteringmodalias support and take care of the same functionality.
27f1e9ebf6f9e7ff8a898f894c1b38cbdecfa77cLennart PoetteringInstallations which support old kernels, but install current default
ce4a52a500965ae6c2f95787f5346112ed56bbaeLennart Poetteringudev rules may want to add that to the compat rules file.
2834ffe78d7fd8be118429aa1449ac72641638c2Lennart PoetteringLibvolume_id now always probes for all known filesystems, and does not
3a53fdaa34eded70d6f971234a9ac78891336f9eLennart Poetteringstop at the first match. Some filesystems are marked as "exclusive probe",
3a53fdaa34eded70d6f971234a9ac78891336f9eLennart Poetteringand if any other filesytem type matches at the same time, libvolume_id
0b30586904d3d20dd93136917d24fe00bf6081eeLennart Poetteringwill, by default, not return any probing result. This is intended to prevent
0b30586904d3d20dd93136917d24fe00bf6081eeLennart Poetteringmis-detection with conflicting left-over signatures found from earlier
fed515f0a845a2ce387cb2d1fcac1ca36b5bac46Lennart Poetteringfile system formats. That way, we no longer depend on the probe-order
229811628584b370e3fa7e8524d66be46c5a4661Lennart Poetteringin case of multiple competing signatures. In some setups the kernel allows
a940778fb1dd16479f455bab3ac6cbdbc5b06165Lennart Poetteringto mount a volume with just the old filesystem signature still in place.
a940778fb1dd16479f455bab3ac6cbdbc5b06165Lennart PoetteringThis may damage the new filesystem and cause data-loss, just by mounting
a01647e53727107d82382bc5c9d98c894e8f386cLennart Poetteringit. Because volume_id can not decide which one the correct signature is,
3c779fa59d1825d7db2a9516669d34ded7916913Lennart Poetteringthe wrong signatures need to be removed manually from the volume, or the
a940778fb1dd16479f455bab3ac6cbdbc5b06165Lennart Poetteringvolume needs to be reformatted, to enable filesystem detection and possible
3de03738fc970496d2d3da668c72767a48ccc41bLennart PoetteringFix segfault if compiled without optimization and dbg() does not get
3de03738fc970496d2d3da668c72767a48ccc41bLennart Poetteringcompiled out and uses variables which are not available.
2b1c3767515672dfd0f5e0a9c9d7ac3a16a6a361Lennart PoetteringBugfixes. (And maybe new bugs. :))
81429136905a6204875174b60a179333b7f3c9e4Kay SieversThe rule matching engine got converted from a rule list to a token
1df52dd282cd6014ace8ca2279dd90d9ea52d2a4Lennart Poetteringarray which reduced the in-memory rules representation of a full
37efac5ddb21fd91ed420c070ed07f375e78b3b9Lennart Poetteringfeatured distros with thousends of udev rules from 1.2MB to 0.12 MB.
37efac5ddb21fd91ed420c070ed07f375e78b3b9Lennart PoetteringLimits like 5 ENV and ATTR matches, and one single instance for most
7348b3adb324614132cf376f478e883bd7de28f1Lennart Poetteringother keys per rule are gone.
f55b9bdfae46e3683c74c30f1d063642a41368a5Lennart PoetteringThe NAME assignment is no longer special cased. If later rules assign
f55b9bdfae46e3683c74c30f1d063642a41368a5Lennart Poetteringa NAME value again, the former value will be overwritten. As usual
f55b9bdfae46e3683c74c30f1d063642a41368a5Lennart Poetteringfor most other keys, the NAME value can be protected by doing a final
f55b9bdfae46e3683c74c30f1d063642a41368a5Lennart Poetteringassignment with NAME:="<value>".
e107ed185ef08945102834234a05ec51bb438685Lennart PoetteringAll udev code now uses libudev, which is also exported. The library
81429136905a6204875174b60a179333b7f3c9e4Kay Sieversis still under development, marked as experimental, and its interface
81429136905a6204875174b60a179333b7f3c9e4Kay Sieversmay change as long as the DeviceKit integration is not finished.
e30fa16e27cbd48f960113a1d72d9a15c3b2d67bLennart PoetteringMany thanks to Alan Jenkins for his continuous help, and finding and
e30fa16e27cbd48f960113a1d72d9a15c3b2d67bLennart Poetteringoptimizing some of the computing expensive parts.
b107b705cc97d3033e37c44229deb37b5aa31df5Lennart PoetteringKernel devices and device nodes are connected now by reverse indizes in
edb2935c5c5b95c42b8679086f60da5eafad74cbLennart Poettering/sys and /dev. A device number retrieved by a stat() or similar, the
edb2935c5c5b95c42b8679086f60da5eafad74cbLennart Poetteringkernel device directory can be found by looking up:
769918ecd30c0f7ee6e87b9aa6226d956bd2f530Lennart Poettering /sys/dev/{block,char}/<maj>:<min>
769918ecd30c0f7ee6e87b9aa6226d956bd2f530Lennart Poetteringand the device node of the same device by looking up:
769918ecd30c0f7ee6e87b9aa6226d956bd2f530Lennart Poettering /dev/{block,char}/<maj>:<min>
2a781fc9bd33982c81e5ff75974a442a33d4f167Lennart PoetteringFix recently introduced bug, which caused a compilation without large
6a3f892a23db71544d0439355f96c44350dafa8fLennart Poetteringfile support, where vol_id does not recognize raid signatures at the end
efc141b8ffbfa1e449da40ce27fccaa81428f779Lennart PoetteringFirewire disks now create both, by-id/scsi-* and by-id/ieee-* links.
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan EngelhardtSeems some kernel versions prevent the creation of the ieee-* links,
efc141b8ffbfa1e449da40ce27fccaa81428f779Lennart Poetteringso people used the scsi-* link which disappeared now.
650264033f2f98f6319513958d94d59078654af8Lennart PoetteringMore libudev work. Almost all udevadm functionality comes from libudev
f8901862b2b030921b3d5aba4157044ceab16451Lennart Poetteringudevadm trigger has a new option --type, which allows to trigger events
eda8f06755bd98c4639293c26b856c225f0d1fe1Lennart Poetteringfor "devices", for "subsystems", or "failed" devices. The old option
eda8f06755bd98c4639293c26b856c225f0d1fe1Lennart Poettering--retry-failed" still works, but is no longer mentioned in the man page.
af1082b04a3d45a9b1d796b4271f44e87e307026Lennart PoetteringThe udevadm info --device-id-of-file= output has changed to use
af1082b04a3d45a9b1d796b4271f44e87e307026Lennart Poetteringthe obvious format. Possible current users should use the --export
488ad3b32a7e2b5b1380abf4a15e5f65fa65f3feLennart Poetteringoption which is not affected.
488ad3b32a7e2b5b1380abf4a15e5f65fa65f3feLennart PoetteringThe old udev commands symlinks to udevadm are not installed, if
488ad3b32a7e2b5b1380abf4a15e5f65fa65f3feLennart Poetteringthese symlinks are used, a warning is printed.
09ecd746c9d6581664873674c2188f8c93ed7780Lennart PoetteringOptical drive's media is no longer probed for raid signatures,
09ecd746c9d6581664873674c2188f8c93ed7780Lennart Poetteringreading the end of the device causes some devices to malfunction.
09ecd746c9d6581664873674c2188f8c93ed7780Lennart PoetteringAlso the offset of the last session found is used now to probe
09ecd746c9d6581664873674c2188f8c93ed7780Lennart Poetteringfor the filesystem.
09ecd746c9d6581664873674c2188f8c93ed7780Lennart PoetteringThe volume_id library got a major version number update to 1,
ef417cfd2211ae017a38b9796c6db29130133e63Zbigniew Jędrzejewski-Szmeksome deprecated functions are removed.
3333d748facc15f49935b6b793490ba0824976e6Zbigniew Jędrzejewski-SzmekA shared library "libudev" gets installed now to provide access
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringto udev device information. DeviceKit, the successor of HAL, will
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringneed this library to access the udev database and search sysfs for
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringThe library is currently in an experimental state, also the API is
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringexpected to change, as long as the DeviceKit integration is not
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringWe use ./configure now. See INSTALL for details. Current
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering "/usr" - prefix for man pages, include files
ebcf1f97de4f6b1580ae55eb56b1a3939fe6b602Lennart Poettering --exec-prefix=
47c94a96df29080f8b3a97e7362df4e9c6ba3265Lennart Poettering "" - the root filesystem, prefix for libs and binaries
718db96199eb307751264e4163555662c9a389faLennart Poettering --with-libdir-name=
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poettering "lib" - directory name for libraries, not a path name
718db96199eb307751264e4163555662c9a389faLennart Poettering multilib 64bit systems may use "lib64" instead of "lib"
718db96199eb307751264e4163555662c9a389faLennart Poettering --enable-debug
718db96199eb307751264e4163555662c9a389faLennart Poettering compile-in verbose debug messages
966204e010ed432a1d7a0481d41a326d8ec7b0c8Lennart Poettering --disable-logging
966204e010ed432a1d7a0481d41a326d8ec7b0c8Lennart Poettering disable all logging and compile-out all log strings
94676f3e9352cbf1f72e0a512ee0d2ed83ff676dLennart Poettering --with-selinux
6fd4d0209827e5c3e52fa8c7144852f550f8f95cLennart Poettering link against SELInux libraries, to set the expected context
ced4d06784dbb19666688947901961f949f2aa6dLennart Poettering for created files
416446221d905b6815175dc4d525d27f8ae43d1bLennart PoetteringIn the default rules, the group "disk" gets permissions 0660 instead
416446221d905b6815175dc4d525d27f8ae43d1bLennart Poetteringof 0640. One small step closer to unify distro rules. Some day, all
7f79cd7109a60810140a045cc725291fc5515264Lennart Poetteringdistros hopefully end up with the same set of rules.
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan EngelhardtNo symlinks to udevadm are installed anymore, if they are still needed,
19aadacf92ad86967ffb678e37b2ff9e83cb9480Jan Engelhardtthey should be provided by the package.
8b8f259170e35b93e6c6d1757cb8b835bbdaa40cZbigniew Jędrzejewski-SzmekDefault udev rules, which are not supposed to be edited by the user, should
e10e429f2dcbb586215e65f62847f40c7d8b5956David Herrmannbe placed in /lib/udev/rules.d/ now, to make it clear that they are private to
e1b7e7ec9b34ae6ae54a4c8084395cbf2bfe9960Lennart Poetteringthe udev package and will be replaced with an update. Udev will pick up rule
c3bb87dbab8b79bb9253407cb5b7f3e6fe8db395Lennart Poettering /lib/udev/rules.d/ - default installed rules
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardt /etc/udev/rules.d/ - user rules + on-the-fly generated rules
18d4e7c26e7806ac363d19989df7144d5058ce41Lennart Poettering /dev/.udev/rules.d/ - temporary non-persistent rules created after bootup
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart PoetteringIt does not matter in which directory a rule file lives, all files are sorted
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart Poetteringin lexical order.
bdeeb6b543a2a2d0a494f17b85f1498859cdfc2fLennart PoetteringTo help creating /dev/root, we have now:
4e09014daf8f98584b3f15e64e93bed232e70a6bLennart Poettering $ udevadm info --export --export-prefix="ROOT_" --device-id-of-file=/
6bb648a16ae4a682ad4784412af706d2e6a3e4daTom GundersenIn case the current --device-id-of-file is already used, please switch to
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardtthe --export format version, it saves the output parsing and the old
7973ca1927e1f3bac9438f3529458c9ff868905dLennart Poetteringformat will be changed to use ':' as a separator, like the format in the
7973ca1927e1f3bac9438f3529458c9ff868905dLennart Poetteringsysfs 'dev' file.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringFix cdrom_id to properly recognize blank media.
df98a87ba389bdfc0359beedf47557411f3af434Lennart PoetteringTape drive id-data is queried from /dev/bsg/* instead of the tape
df98a87ba389bdfc0359beedf47557411f3af434Lennart Poetteringnodes. This avoids rewinding tapes on open().
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringThe symlinks udevcontrol and udevtrigger are no longer installed by
eb01ba5de14859d7a94835ab9299de40132d549aLennart PoetteringThe scsi_id program does not depend on sysfs anymore. It can speak
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart PoetteringSGv4 now, so /dev/bsg/* device nodes can be used, to query SCSI device
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poetteringdata, which should solve some old problems with tape devices, where
154ff088d371bee5651eaa2bc9bde8a34c185656Lennart Poetteringwe better do not open all tape device nodes to identify the device.
461bd8e47cafacfcd38389e7558330bfb6e902adLennart PoetteringThe cdrom_id program is replaced by an advanced version, which can
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poetteringdetect most common device types, and also properties of the inserted
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poetteringmedia. This is part of moving some basic functionality from HAL into
ab8e074ce25b9947314c69e17afe1bd2527ee26dLennart Poetteringudev (and the kernel).
06db8540cdfc8259423ed90e7352dbc1d71eccd9Lennart PoetteringThe last WAIT_FOR_SYSFS rule is removed from the default rules.
4ff49cb63075aba646b578f2516b37a8dfd5a65bLennart PoetteringThe symlinks to udevadm for the debugging tools: udevmonitor and
4ff49cb63075aba646b578f2516b37a8dfd5a65bLennart Poetteringudevtest are no longer created.
fff87a35d9e26c0d4ea41273a963c0eb20e18da4Zbigniew Jędrzejewski-SzmekThe symlinks to the udevadm man page for the old tool names are
fff87a35d9e26c0d4ea41273a963c0eb20e18da4Zbigniew Jędrzejewski-Szmekno longer created.
b5c03638d48c07aa0eaf13b5f54000c7133e1883Lennart PoetteringAbstract namespace sockets paths in RUN+="socket:@<path>" rules,
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardtshould be prefixed with '@' to indicate that the path is not a
09f727eebd87661f263d3c2c1e0de7b7771acd40Lennart PoetteringUdevstart is removed from the tree, it did not get installed for
c144692179098c1861f2aeafc67689a74439cf4cLennart Poetteringa long time now, and is long replaced by trigger and settle.
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart PoetteringAll udev tools are merged into a single binary called udevadm.
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart PoetteringThe old names of the tools are built-in commands in udevadm now.
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart PoetteringSymlinks to udevadm, with the names of the old tools, provide
0be8342c04bbf129b4a21e5073eacccbbce4e896Lennart Poetteringthe same functionality as the standalone tools. There is also
e5ec62c56963d997edaffa904af5dc45dac23988Lennart Poetteringonly a single udevadm.8 man page left for all tools.
826872b61e4857dfffe63ba84e2b005623baecd6Lennart PoetteringTools like mkinitramfs should be checked, if they need to include
826872b61e4857dfffe63ba84e2b005623baecd6Lennart Poetteringudevadm in the list of files.
cbb7712189527f9f483321607e44c4ead3dd11b8Lennart PoetteringThe etc/udev/rules.d/ directory now contains a default set of basic
356ce9915ab1a4a1e6dc26954df34936a69e7c12Lennart Poetteringudev rules. This initial version is the result of a rules file merge
490b7e47093d491a2bdb1084fe92b796f4e07eefLennart Poetteringof Fedora and openSUSE. For these both distros only a few specific
81d112a8f0522a09fcfe317f420363a2b728137cLennart Poetteringrules are left in their own file, named after the distro. Rules which
490b7e47093d491a2bdb1084fe92b796f4e07eefLennart Poetteringare optionally installed, because they are only valid for a specific
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringarchitecture, or rules for subsystems which are not always used are
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringDynamic rules can be created in /dev/.udev/rules.d/ to trigger
e9fd44b728ff1fc0d1f24fccb87a767f6865df27Lennart Poetteringactions by dynamically created rules.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringSYMLINK=="<value>" matches agains the entries in the list of
3040728b6691ea2e9df3a2060e2d49a792bbaedaLennart Poetteringcurrently defined symlinks. The links are not created in the
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringfilesystem at that point in time, but the values can be matched.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringRUN{ignore_error}+="<program>" will ignore any exit code from the
e6c6e7afffa80ad74efdb1ddfa815294624f1608Lennart Poetteringprogram and not record as a failed event.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringFinal merge of patches/features from the Ubuntu package.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringControl characters in filesystem label strings are no longer silenty
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringremoved, but hex-encoded, to be able to uniquely identify the device
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poetteringby its symlink in /dev/disk/by-label/.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringIf libvolume_id is used by mount(8), LABEL= will work as expected,
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart Poetteringif slashes or other characters are used in the label string.
e673ad0415d89c322e5b1a121e411f1b1d8075c0Lennart PoetteringTo test the existence of a file, TEST=="<file>" and TEST!="<file>"
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringcan be specified now. The TEST key accepts an optional mode mask
c06bf414042cd1bf94e0af63e9e2a0c291bfc546Kay SieversTEST{0100}=="<is executable file>".
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringScsi_id now supports a mode without expecting scsi-specific sysfs
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringentries to allow the extraction of cciss-device persistent properties.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringIn the future, we may see uuid's which are just simple character
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringstrings (see the DDF Raid Specification). For that reason vol_id now
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringexports ID_FS_UUID_SAFE, just like ID_FS_LABEL_SAFE. For things like
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringthe creation of symlinks, the *_SAFE values ensure, that no control
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringor whitespace characters are used in the filename.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringPossible users of libvolume_id, please use the volume_id_get_* functions.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringThe public struct will go away in a future release of the library.
f47ec8ebb3858553dec870e1c596e39525f46360Lennart PoetteringRemoval of useless extras/eventrecorder.sh.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringThe directory multiplexer for dev.d/ and hotplug.d are finally removed
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringfrom the udev package.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringSymlinks can have priorities now, the priority is assigned to the device
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardtand specified with OPTIONS="link_priority=100". Devices with higher
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringpriorities overwrite the symlinks of devices with lower priorities.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringIf the device that currently owns the link, goes away, the symlink
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringwill be removed, and recreated, pointing to the next device with the
8b8f259170e35b93e6c6d1757cb8b835bbdaa40cZbigniew Jędrzejewski-Szmekhighest actual priority. This should make /dev/disk/by-{label,uuid,id}
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringmore reliable, if multiple devices contain the same metadata and overwrite
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringthese symlinks.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringThe dasd_id program is removed from the udev tree, and dasdinfo, with the
eb124a97fb72d076014253b1acde69d428f15ecfLennart Poetteringneeded rules, are part of the s390-tools now.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringPlease add KERNEL=="[0-9]*:[0-9]*" to the scsi wait-for-sysfs rule,
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringwe may get the scsi sysfs mess fixed some day, and this will only catch
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringthe devices we are looking for.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringUSB serial numbers for storage devices have the target:lun now appended,
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringto make it possibble to distinguish broken multi-lun devices with all
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringthe same SCSI identifiers.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringNote: The extra "run_directory" which searches and executes stuff in
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poettering/etc/hotplug.d/ and /etc/dev.d/ is long deprecated, and will be removed
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringwith the next release. Make sure, that you don't use it anymore, or
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringprovides your own implementation of that inefficient stuff.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringWe are tired of reports about a "slow udev", because these directories
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringcontain stuff, that runs with _every_ event, instead of using rules,
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringthat run programs only for the matching events.
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart PoetteringDRIVER== will match only for devices that actually have a real
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringdriver. DRIVERS== must be used, if parent devices should be
f38afcd0c7f558ca5bf0854b42f8c6954f8ad7f3Lennart Poetteringincluded in the match.
8b04b925e587ff56568c62ff5ad3f2ea2b34ca7aLennart PoetteringLibvolume_id's "linux_raid" detection needed another fix.
90e071d1d59be05fcba66561439c3ca67c80ee20Lennart PoetteringAdd additional check to volume_id detection of via_raid, cause
d2e83c23f5f0cdd3b6ec05c5c40209708721e704Kay Sieverssome company decided to put a matching pattern all over the empty
d2e83c23f5f0cdd3b6ec05c5c40209708721e704Kay Sieversstorage area of their music players.
f6113d42d015ad9f3a9e702a09eb8006511a4424Kay SieversFix path_id for SAS devices.
c55b1b59b837dfd924b704d457ed77c55f8bfeabLennart PoetteringThe udev daemon can be started with --debug-trace now, which will
a19554ed92a7460b4e709cc40c558cde827ab85bLennart Poetteringexecute all events serialized to get a chance to catch a possible
a19554ed92a7460b4e709cc40c558cde827ab85bLennart Poetteringaction that crashes the box.
1cb88f2c61f590083847d65cd5a518e834da87d3Lennart PoetteringA warning is logged, if PHYSDEV* keys, the "device" link, or a parent
1cb88f2c61f590083847d65cd5a518e834da87d3Lennart Poetteringdevice attribute like $attr{../file} is used, only WAIT_FOR_SYSFS rules
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardtare excluded from the warning. Referencing parent attributes directly
1cb88f2c61f590083847d65cd5a518e834da87d3Lennart Poetteringmay break when something in the kernel driver model changes. Udev will
603cd8fe07cb03e8b11722d1a732e569e5a46347Lennart Poetteringjust find the attribute by walking up the parent chain.
a7a3f28be404875eff20443a0fa8088bcc4c18dfLennart PoetteringUdevtrigger now sorts the list of devices depending on the device
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringdependency, so a "usb" device is triggered after the parent "pci"
71ef24d09573874c0f7bc323c07c3aec2a458707Lennart PoetteringRevert persistent-storage ata-serial '_' '-' replacement.
9cb74bcb23dde8488459ca233bf9caee642b8402Zbigniew Jędrzejewski-SzmekUdevtrigger can now filter the list of devices to be triggered. Matches
a56b63f41dc779a86573ae77814c14c1db156398Lennart Poetteringfor subsystems or sysfs attributes can be specified.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart PoetteringThe entries in /dev/.udev/queue and /dev/.udev/failed have changed to
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringzero-sized files to avoid pointing to /sys and confuse broken tools which
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringscan the /dev directory. To retry failed events, udevtrigger --retry-failed
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringshould be used now.
f801968466fed39d50d410b30ac828c26722cc95Lennart PoetteringThe rules and scripts to create udev rules for persistent network
424a19f8a2061c6b058283228734010b2fa24db4Lennart Poetteringdevices and optical drives are in the extras/rules_generator directory
41f9172f427bdbb8221c64029f78364b8dd4e527Lennart Poetteringnow. If you use something similar, please consider replacing your own
424a19f8a2061c6b058283228734010b2fa24db4Lennart Poetteringversion with this, to share the support effort. The rule_generator
424a19f8a2061c6b058283228734010b2fa24db4Lennart Poetteringinstalls its own rules into /etc/udev/rules.d.
a1cccad1fe88ddd6943e18af97cf7f466296970fLennart PoetteringThe cdrom_id tool installs its own rule now in /etc/udev/rules.d, cause
a1cccad1fe88ddd6943e18af97cf7f466296970fLennart Poetteringthe rule_generator depends on cdrom_id to be called in an earlier rule.
5e8b28838e493b59628322b69580097ef7dd9384Lennart PoetteringRenaming of some key names (the old names still work):
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart PoetteringBUS -> SUBSYSTEMS, ID -> KERNELS, SYSFS -> ATTRS, DRIVER -> DRIVERS.
38a60d7112d33ffd596b23e8df53d75a7c09e71bLennart Poettering(The behavior of the key DRIVER will change soon in one of the next
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart Poetteringreleases, to match only the event device, please switch to DRIVERS
0790b9fed42eefc4e22dbbe2337cba9713b7848cLennart Poetteringinstead. If DRIVER is used, it will behave like DRIVERS, but an error
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart PoetteringWith the new key names, we have a more consistent and simpler scheme.
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan EngelhardtWe can match the properties of the event device only, with: KERNEL,
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart PoetteringSUBSYSTEM, ATTR, DRIVER. Or include all the parent devices in the match,
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardtwith: KERNELS, SUBSYSTEMS, ATTRS, DRIVERS. ID, BUS, SYSFS, DRIVER are no
68f160039eb78fe122cfe0d4c49695ae91f6f0d1Lennart Poetteringlonger mentioned in the man page and should be switched in the rule
fd4d89b2c0b31da01d134301e30916931ae3c7d9Lennart PoetteringATTR{file}="value" can be used now, to write to a sysfs file of the
8230e26dc954a40d8c9dbc8ddd9376117021f9d2Lennart Poetteringevent device. Instead of:
8230e26dc954a40d8c9dbc8ddd9376117021f9d2Lennart Poettering ..., SYSFS{type}=="0|7|14", RUN+="/bin/sh -c 'echo 60 > /sys$$DEVPATH/timeout'"
4d9909c93e9c58789c71b34555a1908307c6849eLennart Poettering ..., ATTR{type}=="0|7|14", ATTR{timeout}="60"
47ae7201b1df43bd3da83a19e38483b0e5694c99Lennart PoetteringAll the PHYSDEV* keys are deprecated and will be removed from a
88a6c5894c9d3f85d63b87b040c130366b4006ceKay Sieversfuture kernel:
8351ceaea9480d9c2979aa2ff0f4982cfdfef58dLennart Poettering PHYDEVPATH - is the path of a parent device and should not be
9946996cda11a18b44d82344676e5a0e96339408Lennart Poettering needed at all.
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardt PHYSDEVBUS - is just a SUBSYSTEM value of a parent, and can be
9946996cda11a18b44d82344676e5a0e96339408Lennart Poettering matched with SUBSYSTEMS==
3471bedc005fab03f40b99bf6599645330adcd9eLennart Poettering PHYSDEVDRIVER - for bus devices it is available as ENV{DRIVER}.
3471bedc005fab03f40b99bf6599645330adcd9eLennart Poettering Newer kernels will have DRIVER in the environment,
59cea26a349cfa8db906b520dac72563dd773ff2Lennart Poettering for older kernels udev puts in. Class device will
35eb6b124ebdf82bd77aad6e44962a9a039c4d33Lennart Poettering no longer carry this property of a parent and
5b40d33761376354116a8cddb9b9fbdb6c4727d6Lennart Poettering DRIVERS== can be used to match such a parent value.
5b40d33761376354116a8cddb9b9fbdb6c4727d6Lennart PoetteringNote that ENV{DRIVER} is only available for a few bus devices, where
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sieversthe driver is already bound at device event time. On coldplug, the
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sieversevents for a lot devices are already bound to a driver, and they will have
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sieversthat value set. But on hotplug, at the time the kernel creates the device,
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sieversit can't know what driver may claim the device after that, therefore
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sieversin most cases it will be empty.
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay SieversFailed events should now be re-triggered with:
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sievers udevtrigger --retry-failed.
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay SieversPlease switch to this command, so we keep the details of the /dev/.udev/failed/
d3a3f22267a7dac426b07a7ed0baa1632f5daf04Kay Sieversfiles private to the udev tools. We may need to switch the current symlink
465349c06d994dd2cc6b6fc4109ac0b9952d500aLennart Poetteringtarget, cause some obviously broken tools try to scan all files in /dev
e01a15b71e18bf2008aec7e75041ffa42eb80b80Kay Sieversincluding /dev/.udev/, find the links to /sys and end up stat()'ing sysfs files
a888b352eb53b07daa24fa859ceeb254336b293dLennart Poetteringmillion times. This takes ages on slow boxes.
3f60bcb5e69846fe8a3156ca1c9a7e0813ac158aKay SieversThe udevinfo attribute walk (-a) now works with giving a device node
abd55b16547d0bb0ed1c31e72e16838f0f59f48bKay Sieversname (-n) instead of a devpath (-p). The query now always works, also when
abd55b16547d0bb0ed1c31e72e16838f0f59f48bKay Sieversno database file was created by udev.
e8d842a0d0b39f298e1e7f70d29759e50b2b16d4Tom GundersenThe built-in /etc/passwd /etc/group parser is removed, we always depend on
b8217b7bd5fd171916a095b150fad4c3a37f5a41Kay Sieversgetpwnam() and getgrnam() now. One of the next releases will depend on
169c4f65131fbc7bcb51e7d5487a715cdcd0e0ebLennart Poetteringfnmatch() and may use getopt_long().
7f110ff9b8828b477e87de7b28c708cf69a3d008Lennart PoetteringBugfixes and small improvements.
d0e5a33374cee92962af33dfc03873e470b014f6Lennart PoetteringFix path_id for recent kernels.
87a8baa35d6d65ac3b58ae8e26e338e67f8ae8edLennart Poettering%e is finally gone.
70a44afee385c4afadaab9a002b3f9dd44aedf4aJan EngelhardtAdded support for swapping network interface names, by temporarily
65c0cf7108ae3537a357c74b4586a783baba82f9Lennart Poetteringrenaming the device and wait for the target name to become free.
ad740100d108282d0244d5739d4dcc86fe4c5fdeLennart PoetteringThe built-in MODALIAS key and substitution is removed.
7d441ddb5ca090b5a97f58ac4b4d97b3e84fa81eLennart PoetteringThe binary firmware helper is replaced by the usual simple
d28315e4aff91560ed4c2fc9f876ec8bfc559f2dJan Engelhardtshell script. Udevsend is removed from the tree.
d3c7d7dd77b2b72315164b672462825cef6c0f9aKay SieversBugfix release.
1d6702e8d3877c0bebf3ac817dc45ff72f5ecfa9Lennart PoetteringSome more keys require the correct use of '==' and '=' depending
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poetteringon the kind of operation beeing an assignment or a match. Rules
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poetteringwith invalid operations are skipped and logged to syslog. Please
1258097cd3cdbc5dd3d264850119e553a29c5068Lennart Poetteringtest with udevtest if the parsing of your rules throws errors and
1258097cd3cdbc5dd3d264850119e553a29c5068Lennart Poetteringfix possibly broken rules.
7c697168102cb64c5cb65a542959684014da99c7Lennart PoetteringProvide "udevsettle" to wait for all current udev events to finish.
253ee27a0c7a410d27d490bb79ea97caed6a2b68Lennart PoetteringIt also watches the current kernel netlink queue by comparing the
71092d70af35567dd154d3de2ce04ce62e157a7cLennart Poetteringeven sequence number to make sure that there are no current pending
8d0e38a2b966799af884e78a54fd6a2dffa44788Lennart Poetteringevents that have not already arrived in the daemon.
f28f1daf754a9a07de90e6fc4ada581bf5de677dLennart PoetteringFix rule to skip persistent rules for removable IDE devices, which
88a07670cfa974a605c7c7b520b8a3135fce37f9Lennart Poetteringalso skipped optical IDE drives.
88a07670cfa974a605c7c7b520b8a3135fce37f9Lennart PoetteringAll *_id program are installed in /lib/udev/ by default now.
916abb21d0a6653e0187b91591e492026886b0a4Lennart PoetteringNo binary is stripped anymore as this should be done in the
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringpackaging process and not at build time.
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringlibvolume_id is provided as a shared library now and vol_id is
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringlinked against it. Also one of the next HAL versions will require
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringthis library, and the HAL build process will also require the
b44be3ecf6326c27aa2c6c6d1fe34e22e22592a0Lennart Poetteringheader file to be installed. The copy of the same code in HAL will
b23de6af893c11da4286bc416455cd0926d1532eLennart Poetteringbe removed to have only a single copy left on the system.
796b06c21b62d13c9021e2fbd9c58a5c6edb2764Kay SieversAdd persistent links for SCSI tapes. The rules file is renamed
7a2a0b907b5cc60f5d9a871997d7d6e7f62bf4d8Lennart PoetteringCreate persistent path for usb devices. Can be used for all sorts
253ee27a0c7a410d27d490bb79ea97caed6a2b68Lennart Poetteringof devices that can't be distinguished by other properties like
5d0fcd7c8d29340ac9425c309e8ac436a9af699cLennart Poetteringmultiple identical keyboards and mice connected to the same box.
8bbabc447b1d913bd21faf97c7b17d20d315d2b4Lennart PoetteringProvide "udevtrigger" program to request events on coldplug. The
f530371f1f85a070d7d0fb5112146a43533ae00bLennart Poetteringshell script is much too slow with thousends of devices.
a74a8793b04de9886b4f6987b9cb86fa02c73520Lennart PoetteringFix persistent disk rules to exclude removable IDE drives.
3679d1126bae52e02f6cd60fca196f616b9e660dLennart PoetteringWarn if %e, $modalias or MODALIAS is used.
3679d1126bae52e02f6cd60fca196f616b9e660dLennart PoetteringFix queue export, which wasn't correct for subsequent add/remove
73090dc815390f4fca4e3ed8a7e1d3806605daaaLennart Poetteringevents for the same device.
2791a8f8dc8764a9247cdba3562bd4c04010f144Lennart PoetteringFix cramfs detection on big endian.
a8f11321c209830a35edd0357e8def5d4437d854Lennart PoetteringMake WAIT_FOR_SYSFS usable in "normal" rules and silent if the whole
21bdae12e11ae20460715475d8a0c991f15464acLennart Poetteringdevice goes away.