]> git.ipfire.org Git - thirdparty/systemd.git/blame - NEWS
remove "all_partitions" option
[thirdparty/systemd.git] / NEWS
CommitLineData
fff82e9d
KS
1udev 152
2========
3Bugfixes.
4
1f084fe5 5"udevadm trigger" defaults to "change" events now, instead of "add"
236fae6c
KS
6events.
7
1f084fe5
KS
8The option "all_partitons" was removed from udev. This should not be
9needed for usual hardware. Udev can not safely make assumptions
10about non-exixting partition major/minor numbers, and therefore no
11longer provide such an unreliable and unsafe option.
12
5c4c389b
KS
13All "add|change" matches are replaced by "!remove" in the rules and
14in the udev logic. All types of events will update possible symlinks
15and permissions, only "remove" is handled special now.
16
17The modem mode switch extra was removed and the external usb_modeswitch
18program should be used instead.
19
fff82e9d
KS
20New and fixed keymaps.
21
a16b18f0
KS
22udev 151
23========
eea1fd84 24Bugfixes.
a16b18f0 25
ac9b4baa
KS
26udev 150
27========
28Bugfixes.
29
3c189886
KS
30Kernels with SYSFS_DEPRECATED=y are not supported since a while. Many users
31depend on the current sysfs layout and the information not available in the
32deprecated layout. All remaining support for the deprecated sysfs layout is
33removed now.
34
4cf3298e
KS
35udev 149
36========
37Fix for a possible endless loop in the new input_id program.
38
cdae488a
KS
39udev 148
40========
41Bugfixes.
42
43The option "ignore_device" does no longer exist. There is no way to
44ignore an event, as libudev events can not be suppressed by rules.
45It only prevented RUN keys from being executed, which results in an
46inconsistent behavior in current setups.
47
6d87ee2e
KS
48BUS=, SYSFS{}=, ID= are long deprecated and should be SUBSYSTEM(S)=,
49ATTR(S){}=, KERNEL(S)=. It will cause a warning once for every rule
50file from now on.
51
ecf61aa7
KS
52The support for the deprecated IDE devices has been removed from the
53default set of rules. Distros who still care about non-libata drivers
54need to add the rules to the compat rules file.
55
6722e19a
MP
56The ID_CLASS property on input devices has been replaced by the more accurate
57set of flags ID_INPUT_{KEYBOARD,KEY,MOUSE,TOUCHPAD,TABLET,JOYSTICK}. These are
58determined by the new "input_id" prober now. Some devices, such as touchpads,
59can have several classes. So if you previously had custom udev rules which e. g.
60checked for ENV{ID_CLASS}=="kbd", you need to replace this with
61ENV{ID_INPUT_KEYBOARD}=="?*".
62
a90221b6
KS
63udev 147
64========
65Bugfixes.
66
2ffc9cc1
KS
67To support DEVPATH strings larger than the maximum file name length, the
68private udev database format has changed. If some software still reads the
69private files in /dev/.udev/, which it shouldn't, now it's time to fix it.
70Please do not port anything to the new format again, everything in /dev/.udev
71is and always was private to udev, and may and will change any time without
72prior notice.
73
6c29f2b9
KS
74Multiple devices claiming the same names in /dev are limited to symlinks
75only now. Mixing identical symlink names and node names is not supported.
76This reduces the amount of data in the database significantly.
77
2ffc9cc1
KS
78NAME="%k" causes a warning now. It's is and always was completely superfluous.
79It will break kernel supplied DEVNAMEs and therefore it needs to be removed
80from all rules.
81
91554cf9
KS
82Most NAME= instructions got removed. Kernel 2.6.31 supplies the needed names
83if they are not the default. To support older kernels, the NAME= rules need to
84be added to the compat rules file.
85
6d837a53
KS
86Symlinks to udevadm with the old command names are no longer resolved to
87the udevadm commands.
88
de408510 89The udev-acl tool got adopted to changes in ConsoleKit. Version 0.4.1 is
bded5704
WJM
90required now.
91
bfbf65aa
KS
92The option "last_rule" does no longer exist. Its use breaks too many
93things which expect to be run from independent later rules, and is an idication
94that something needs to be fixed properly instead.
95
5448cc56 96The gudev API is no longer marked as experimental,
04da95b1
KS
97G_UDEV_API_IS_SUBJECT_TO_CHANGE is no longer needed. The gudev introspection
98is enabled by default now. Various projects already depend on introspection
99information to bind dynamic languages to the gudev interfaces.
5448cc56 100
2a827c95
KS
101udev 146
102========
f7c5b04f
KS
103Bugfixes.
104
105The udevadm trigger "--retry-failed" option, which is replaced since quite
106a while by "--type=failed" is removed.
2a827c95 107
f7c5b04f 108The failed tracking was not working at all for a few releases. The RUN
16dd0aa9 109option "ignore_error" is replaced by a "fail_event_on_error" option, and the
f7c5b04f
KS
110default is not to track any failing RUN executions.
111
112New keymaps, new modem, hid2hci updated.
2a827c95 113
804ab685
KS
114udev 145
115========
3d66c90f
KS
116Fix possible crash in udevd when worker processes are busy, rules are
117changed at the same time, and workers get killed to reload the rules.
804ab685 118
c668754b
KS
119udev 144
120========
d5f1cc16
KS
121Bugfixes.
122
d5f1cc16
KS
123Properties set with ENV{.FOO}="bar" are marked private by starting the
124name with a '.'. They will not be stored in the database, and not be
125exported with the event.
c668754b 126
15106c48
KS
127Firmware files are looked up in:
128 /lib/firmware/updates/$(uname -r)
129 /lib/firmware/updates
130 /lib/firmware/$(uname -r)
131 /lib/firmware"
132now.
133
134ATA devices switched the property from ID_BUS=scsi to ID_BUS=ata.
135ata_id, instead of scsi_id, is the default tool now for ATA devices.
136
9d5bdeb3
KS
137udev 143
138========
139Bugfixes.
140
6133f343
KS
141The configure options have changed because another library needs to be
142installed in a different location. Instead of exec_prefix and udev_prefix,
143libdir, rootlibdir and libexecdir are used. The Details are explained in
144the README file.
145
1e03b754 146Event processes now get re-used after they handled an event. This reduces
26812f0a
KS
147the number of forks and the pressure on the CPU significantly, because
148cloned event processes no longer cause page faults in the main daemon.
149After the events have settled, a few worker processes stay around for
150future events, all others get cleaned up.
1e03b754
KS
151
152To be able to use signalfd(), udev depends on kernel version 2.6.25 now.
26812f0a 153Also inotify support is mandatory now to run udev.
1e03b754 154
c406de19 155The format of the queue exported by the udev damon has changed. There is
1e03b754
KS
156no longer a /dev/.udev/queue/ directory. The current event queue can be
157accessed with udevadm settle and libudedv.
c406de19 158
20fa0fd6
KS
159Libudev does not have the unstable API header anymore. From now on,
160incompatible changes will be handled by bumping the library major version.
161
26812f0a
KS
162To build udev from the git tree gtk-doc is needed now. The tarballs will
163build without it and contain the pre-built documentation. An online copy
164is available here:
165 http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/
166
8fac66c9 167The tools from the udev-extras repository have been merged into the main
29cf5b58
KS
168udev repository. Some of the extras have larger external dependencies, and
169they can be disabled with the configure switch --disable-extras.
170
e2151b00
KS
171udev 142
172========
173Bugfixes.
174
634ffc0c 175The program vol_id and the library libvolume_id are removed from the
3de63a35
KS
176repository. Libvolume_id is merged with libblkid from the util-linux-ng
177package. Persistent disk links for label and uuid depend on the
178util-linux-ng version (2.15) of blkid now. Older versions of blkid
179can not be used with udev.
f0799688 180
aa1aa46f
KS
181Libudev allows to subscribe to udev events. To prevent unwanted messages
182to be delivered, and waking up the subscribing process, a filter can be
183installed, to drop messages inside a kernel socket filter. The filters
184match on the <subsytem>:<devtype> properties of the device.
185 This is part of the ongoing effort to replace HAL, and switch current
634ffc0c 186users over to directly use libudev.
aa1aa46f 187 Libudev is still marked as experimental, and its interface might
634ffc0c
KS
188eventually change if needed, but no major changes of the currently exported
189interface are expected anymore, and a first stable release should happen
190soon.
aa1aa46f 191
ccc87b0e
KS
192A too old kernel (2.6.21) or a kernel with CONFIG_SYSFS_DEPRECATED
193is not supported since while and udevd will log an error message at
f0799688
KS
194startup. It should still be able to boot-up, but advanced rules and system
195services which depend on the information not available in the old sysfs
196format will fail to work correctly.
e2151b00 197
ccc87b0e
KS
198DVB device naming is supplied by the kernel now. In case older kernels
199need to be supported, the old shell script should be added to a compat
e2151b00
KS
200rules file.
201
b25d8cfa
KS
202udev 141
203========
204Bugfixes.
205
dbf4ba73
KS
206The processed udev events get send back to the netlink socket. Libudev
207provides access to these events. This is work-in-progress, to replace
208the DeviceKit daemon functionality directly with libudev. There are
209upcoming kernel changes to allow non-root users to subcribe to these
210events.
211
cb81636a
KS
212udev 140
213========
214Bugfixes.
215
3d859987
KS
216"udevadm settle" now optionally accepts a range of events to wait for,
217instead of waiting for "all" events.
218
58e49543
KS
219udev 139
220========
221Bugfixes.
222
0ee5a241
KS
223The installed watch for block device metadata changes is now removed
224during event hadling, because some (broken) tools may be called from udev
225rules and (wrongly) open the device with write access. After the finished
226event handling the watch is restored.
227
705e1c7f
KS
228udev 138
229========
e8c84c98 230Bugfixes.
705e1c7f 231
e8c84c98
KS
232Device nodes can be watched for changes with inotify with OPTIONS="watch".
233If closed after being opened for writing, a "change" uevent will occur.
234/dev/disk/by-{label,uuid}/* symlinks will be automatically updated.
f24036d6 235
87702fa0
KS
236udev 137
237========
238Bugfixes.
239
240The udevadm test command has no longer a --force option, nodes and symlinks
241are always updated with a test run now.
242
5f03ed8a 243The udevd daemon can be started with --resolve-names=never to avoid all user
9032f119
SJR
244and group lookups (e.g. in cut-down systems) or --resolve-names=late to
245lookup user and groups every time events are handled.
5f03ed8a 246
3e18fb06
KS
247udev 136
248========
249Bugfixes.
250
1aa8fdf7 251We are currently merging the Ubuntu rules in the udev default rules,
67c89548 252and get one step closer to provide a common Linux /dev setup, regarding
1aa8fdf7 253device names, symlinks, and default device permissions. On udev startup,
67c89548 254we now expect the following groups to be resolvable to their ids with
1aa8fdf7
KS
255glibc's getgrnam():
256 disk, cdrom, floppy, tape, audio, video, lp, tty, dialout, kmem.
67c89548
KS
257LDAP setups need to make sure, that these groups are always resolvable at
258bootup, with only the rootfs mounted, and without network access available.
259
260Some systems may need to add some new, currently not used groups, or need
261to add some users to new groups, but the cost of this change is minimal,
262compared to the pain the current, rather random, differences between the
263various distributions cause for upstream projects and third-party vendors.
264
265In general, "normal" users who log into a machine should never be a member
266of any such group, but the device-access should be managed by dynamic ACLs,
267which get added and removed for the specific users on login/logout and
268session activity/inactivity. These groups are only provided for custom setups,
269and mainly system services, to allow proper privilege separation.
270A video-streaming daemon uid would be a member of "audio" and "video", to get
31a73307
KS
271access to the sound and video devices, but no "normal" user should ever belong
272to the "audio" group, because he could listen to the built-in microphone with
67c89548 273any ssh-session established from the other side of the world.
8553cf06 274
d4e0db3c
KS
275/dev/serial/by-{id,path}/ now contains links for ttyUSB devices,
276which do not depend on the kernel device name. As usual, unique
277devices - only a single one per product connected, or a real
278USB serial number in the device - are always found with the same
279name in the by-id/ directory.
5fadcc76 280Completely identical devices may overwrite their names in by-id/
d4e0db3c
KS
281and can only be found reliably in the by-path/ directory. Devices
282specified by by-path/ must not change their connection, like the
283USB port number they are plugged in, to keep their name.
284
67c89548
KS
285To support some advanced features, Linux 2.6.22 is the oldest supported
286version now. The kernel config with enabled SYSFS_DEPRECATED is no longer
287supported. Older kernels should still work, and devices nodes should be
288reliably created, but some rules and libudev will not work correctly because
289the old kernels do not provide the expected information or interfaces.
290
ae0f55cb
KS
291udev 135
292========
293Bugfixes.
294
295Fix for a possible segfault while swapping network interface names in udev
296versions 131-134.
297
44993482
KS
298udev 134
299========
6733f601
KS
300Bugfixes.
301
302The group "video" is part of the default rules now.
44993482 303
fc0d4bd4
KS
304udev 133
305========
d78c0b3a
KS
306Bugfix for kernels using SYSFS_DEPRECATED* option and finding parent
307block devices in some cases. No common distro uses this option anymore,
308and we do not get enough testing for this and recent udev versions. If
309this option is not needed to run some old distro with a new kernel,
310it should be disabled in the kernel config.
311
312Bugfix for the $links substitution variable, which may crash if no links
313are created. This should not happen in usual setups because we always
314create /dev/{block,char}/ links.
fc0d4bd4
KS
315
316The strings of the parsed rules, which are kept in memory, no longer
d78c0b3a
KS
317contain duplicate entries, or duplicate tails of strings. This, and the
318new rules parsing/matching code reduces the total in-memory size of
319a huge distro rule sets to 0.08 MB, compared to the 1.2MB of udev
320version 130.
fc0d4bd4
KS
321
322The export of DEVTYPE=disk/partition got removed from the default
d78c0b3a
KS
323rules. This value is available from the kernel. The pnp shell script
324modprobe hack is removed from the default rules. ACPI devices have _proper_
325modalias support and take care of the same functionality.
fc0d4bd4 326Installations which support old kernels, but install current default
4dfe61c9 327udev rules may want to add that to the compat rules file.
fc0d4bd4 328
510af2e9 329Libvolume_id now always probes for all known filesystems, and does not
4dfe61c9
KS
330stop at the first match. Some filesystems are marked as "exclusive probe",
331and if any other filesytem type matches at the same time, libvolume_id
d78c0b3a
KS
332will, by default, not return any probing result. This is intended to prevent
333mis-detection with conflicting left-over signatures found from earlier
334file system formats. That way, we no longer depend on the probe-order
335in case of multiple competing signatures. In some setups the kernel allows
336to mount a volume with just the old filesystem signature still in place.
337This may damage the new filesystem and cause data-loss, just by mounting
338it. Because volume_id can not decide which one the correct signature is,
339the wrong signatures need to be removed manually from the volume, or the
340volume needs to be reformatted, to enable filesystem detection and possible
341auto-mounting.
510af2e9 342
bfa9938c
KS
343udev 132
344========
bfa9938c
KS
345Fix segfault if compiled without optimization and dbg() does not get
346compiled out and uses variables which are not available.
347
2d9a1b1e
KS
348udev 131
349========
acae628f 350Bugfixes. (And maybe new bugs. :))
65807d09
KS
351
352The rule matching engine got converted from a rule list to a token
353array which reduced the in-memory rules representation of a full
acae628f
KS
354featured distros with thousends of udev rules from 1.2MB to 0.12 MB.
355Limits like 5 ENV and ATTR matches, and one single instance for most
356other keys per rule are gone.
65807d09
KS
357
358The NAME assignment is no longer special cased. If later rules assign
359a NAME value again, the former value will be overwritten. As usual
360for most other keys, the NAME value can be protected by doing a final
361assignment with NAME:="<value>".
362
acae628f
KS
363All udev code now uses libudev, which is also exported. The library
364is still under development, marked as experimental, and its interface
365may change as long as the DeviceKit integration is not finished.
366
367Many thanks to Alan Jenkins for his continuous help, and finding and
368optimizing some of the computing expensive parts.
2d9a1b1e 369
22c89d3f
KS
370udev 130
371========
372Bugfixes.
373
ec06a8dd
KS
374Kernel devices and device nodes are connected now by reverse indizes in
375/sys and /dev. A device number retrieved by a stat() or similar, the
376kernel device directory can be found by looking up:
377 /sys/dev/{block,char}/<maj>:<min>
378and the device node of the same device by looking up:
379 /dev/{block,char}/<maj>:<min>
380
f5001d24
KS
381udev 129
382========
714131f1
KS
383Fix recently introduced bug, which caused a compilation without large
384file support, where vol_id does not recognize raid signatures at the end
385of a volume.
386
387Firewire disks now create both, by-id/scsi-* and by-id/ieee-* links.
388Seems some kernel versions prevent the creation of the ieee-* links,
389so people used the scsi-* link which disappeared now.
390
391More libudev work. Almost all udevadm functionality comes from libudev
f5001d24
KS
392now.
393
d41b956e 394udevadm trigger has a new option --type, which allows to trigger events
8249e04e 395for "devices", for "subsystems", or "failed" devices. The old option
d41b956e
KS
396--retry-failed" still works, but is no longer mentioned in the man page.
397
2b725651
KS
398udev 128
399========
400Bugfixes.
401
402The udevadm info --device-id-of-file= output has changed to use
403the obvious format. Possible current users should use the --export
404option which is not affected.
405
55eb845c
KS
406The old udev commands symlinks to udevadm are not installed, if
407these symlinks are used, a warning is printed.
e4255f11 408
33a5cc29
KS
409udev 127
410========
411Bugfixes.
412
41ff8053
KS
413Optical drive's media is no longer probed for raid signatures,
414reading the end of the device causes some devices to malfunction.
415Also the offset of the last session found is used now to probe
416for the filesystem.
a689165b
KS
417
418The volume_id library got a major version number update to 1,
419some deprecated functions are removed.
420
41ff8053 421A shared library "libudev" gets installed now to provide access
a689165b
KS
422to udev device information. DeviceKit, the successor of HAL, will
423need this library to access the udev database and search sysfs for
424devices.
ba6929f6 425The library is currently in an experimental state, also the API is
a689165b 426expected to change, as long as the DeviceKit integration is not
ba6929f6
KS
427finished.
428
01618658
KS
429udev 126
430========
431We use ./configure now. See INSTALL for details. Current
432options are:
433 --prefix=
434 "/usr" - prefix for man pages, include files
435 --exec-prefix=
436 "" - the root filesystem, prefix for libs and binaries
437 --sysconfdir=
438 "/etc"
439 --with-libdir-name=
440 "lib" - directory name for libraries, not a path name
441 multilib 64bit systems may use "lib64" instead of "lib"
442 --enable-debug
443 compile-in verbose debug messages
444 --disable-logging
445 disable all logging and compile-out all log strings
47b0c350 446 --with-selinux
58a63088 447 link against SELInux libraries, to set the expected context
01618658
KS
448 for created files
449
58a63088
KS
450In the default rules, the group "disk" gets permissions 0660 instead
451of 0640. One small step closer to unify distro rules. Some day, all
452distros hopefully end up with the same set of rules.
453
454No symlinks to udevadm are installed anymore, if they are still needed,
455they should be provided by the package.
01618658 456
05b96400
KS
457udev 125
458========
459Bugfixes.
460
461Default udev rules, which are not supposed to be edited by the user, should
462be placed in /lib/udev/rules.d/ now, to make it clear that they are private to
463the udev package and will be replaced with an update. Udev will pick up rule
464files from:
465 /lib/udev/rules.d/ - default installed rules
466 /etc/udev/rules.d/ - user rules + on-the-fly generated rules
467 /dev/.udev/rules.d/ - temporary non-persistent rules created after bootup
468It does not matter in which directory a rule file lives, all files are sorted
469in lexical order.
470
471To help creating /dev/root, we have now:
472 $ udevadm info --export --export-prefix="ROOT_" --device-id-of-file=/
473 ROOT_MAJOR=8
474 ROOT_MINOR=5
475In case the current --device-id-of-file is already used, please switch to
476the --export format version, it saves the output parsing and the old
477format will be changed to use ':' as a separator, like the format in the
478sysfs 'dev' file.
479
c986ca55
KS
480udev 124
481========
482Fix cdrom_id to properly recognize blank media.
483
2c0644c1
KS
484udev 123
485========
486Bugfixes.
487
488Tape drive id-data is queried from /dev/bsg/* instead of the tape
489nodes. This avoids rewinding tapes on open().
490
4e548559
KS
491udev 122
492========
493Bugfixes.
494
495The symlinks udevcontrol and udevtrigger are no longer installed by
496the Makefile.
497
498The scsi_id program does not depend on sysfs anymore. It can speak
499SGv4 now, so /dev/bsg/* device nodes can be used, to query SCSI device
500data, which should solve some old problems with tape devices, where
501we better do not open all tape device nodes to identify the device.
502
8325c84d
KS
503udev 121
504========
505Many bugfixes.
506
507The cdrom_id program is replaced by an advanced version, which can
508detect most common device types, and also properties of the inserted
509media. This is part of moving some basic functionality from HAL into
510udev (and the kernel).
511
cb0b4b70
KS
512udev 120
513========
514Bugfixes.
515
516The last WAIT_FOR_SYSFS rule is removed from the default rules.
517
518The symlinks to udevadm for the debugging tools: udevmonitor and
519udevtest are no longer created.
520
521The symlinks to the udevadm man page for the old tool names are
522no longer created.
523
524Abstract namespace sockets paths in RUN+="socket:@<path>" rules,
525should be prefixed with '@' to indicate that the path is not a
526real file.
527
65e9e8c5
KS
528udev 119
529========
530Bugfixes.
531
c645b98b
KS
532udev 118
533========
7094df0a
KS
534Bugfixes.
535
536Udevstart is removed from the tree, it did not get installed for
537a long time now, and is long replaced by trigger and settle.
c645b98b 538
225cb03b
KS
539udev 117
540========
541Bugfixes.
542
3ca49451
KS
543All udev tools are merged into a single binary called udevadm.
544The old names of the tools are built-in commands in udevadm now.
545Symlinks to udevadm, with the names of the old tools, provide
546the same functionality as the standalone tools. There is also
547only a single udevadm.8 man page left for all tools.
548
549Tools like mkinitramfs should be checked, if they need to include
550udevadm in the list of files.
225cb03b 551
8e37efe4
KS
552udev 116
553========
554Bugfixes.
555
7e599863
KS
556udev 115
557========
558Bugfixes.
559
560The etc/udev/rules.d/ directory now contains a default set of basic
561udev rules. This initial version is the result of a rules file merge
562of Fedora and openSUSE. For these both distros only a few specific
563rules are left in their own file, named after the distro. Rules which
564are optionally installed, because they are only valid for a specific
565architecture, or rules for subsystems which are not always used are
566in etc/udev/packages/.
567
585e8388
KS
568udev 114
569========
570Bugfixes.
571
572Dynamic rules can be created in /dev/.udev/rules.d/ to trigger
573actions by dynamically created rules.
574
575SYMLINK=="<value>" matches agains the entries in the list of
576currently defined symlinks. The links are not created in the
577filesystem at that point in time, but the values can be matched.
578
579RUN{ignore_error}+="<program>" will ignore any exit code from the
580program and not record as a failed event.
581
de966524
KS
582udev 113
583========
584Bugfixes.
585
586Final merge of patches/features from the Ubuntu package.
587
83a4c0f8
KS
588udev 112
589========
590Bugfixes.
591
592Control characters in filesystem label strings are no longer silenty
593removed, but hex-encoded, to be able to uniquely identify the device
594by its symlink in /dev/disk/by-label/.
595If libvolume_id is used by mount(8), LABEL= will work as expected,
596if slashes or other characters are used in the label string.
597
598To test the existence of a file, TEST=="<file>" and TEST!="<file>"
599can be specified now. The TEST key accepts an optional mode mask
600TEST{0100}=="<is executable file>".
601
602Scsi_id now supports a mode without expecting scsi-specific sysfs
603entries to allow the extraction of cciss-device persistent properties.
604
85135c74
KS
605udev 111
606========
607Bugfixes.
608
609In the future, we may see uuid's which are just simple character
610strings (see the DDF Raid Specification). For that reason vol_id now
83a4c0f8 611exports ID_FS_UUID_SAFE, just like ID_FS_LABEL_SAFE. For things like
85135c74
KS
612the creation of symlinks, the *_SAFE values ensure, that no control
613or whitespace characters are used in the filename.
614
615Possible users of libvolume_id, please use the volume_id_get_* functions.
616The public struct will go away in a future release of the library.
617
25b5bb42
KS
618udev 110
619========
620Bugfixes.
621
622Removal of useless extras/eventrecorder.sh.
623
7c1ecbfb
KS
624udev 109
625========
626Bugfixes.
627
b8eb7940
KS
628udev 108
629========
630Bugfixes.
631
632The directory multiplexer for dev.d/ and hotplug.d are finally removed
633from the udev package.
634
9d534c0e
KS
635udev 107
636========
637Bugfixes.
638
639Symlinks can have priorities now, the priority is assigned to the device
640and specified with OPTIONS="link_priority=100". Devices with higher
641priorities overwrite the symlinks of devices with lower priorities.
642If the device that currently owns the link, goes away, the symlink
643will be removed, and recreated, pointing to the next device with the
644highest actual priority. This should make /dev/disk/by-{label,uuid,id}
645more reliable, if multiple devices contain the same metadata and overwrite
646these symlinks.
647
648The dasd_id program is removed from the udev tree, and dasdinfo, with the
649needed rules, are part of the s390-tools now.
650
651Please add KERNEL=="[0-9]*:[0-9]*" to the scsi wait-for-sysfs rule,
652we may get the scsi sysfs mess fixed some day, and this will only catch
653the devices we are looking for.
654
655USB serial numbers for storage devices have the target:lun now appended,
656to make it possibble to distinguish broken multi-lun devices with all
657the same SCSI identifiers.
658
659Note: The extra "run_directory" which searches and executes stuff in
660/etc/hotplug.d/ and /etc/dev.d/ is long deprecated, and will be removed
661with the next release. Make sure, that you don't use it anymore, or
662provides your own implementation of that inefficient stuff.
663We are tired of reports about a "slow udev", because these directories
664contain stuff, that runs with _every_ event, instead of using rules,
665that run programs only for the matching events.
666
667udev 106
668========
669Bugfixes.
670
273bebdb
KS
671udev 105
672========
1bcfb137
KS
673Bugfixes.
674
675DRIVER== will match only for devices that actually have a real
676driver. DRIVERS== must be used, if parent devices should be
677included in the match.
678
679Libvolume_id's "linux_raid" detection needed another fix.
273bebdb 680
8fdad27d
KS
681udev 104
682========
683Bugfixes.
684
1810a9d7
KS
685udev 103
686========
687Add additional check to volume_id detection of via_raid, cause
688some company decided to put a matching pattern all over the empty
689storage area of their music players.
690
0a9e36df
KS
691udev 102
692========
693Fix path_id for SAS devices.
694
9b2a9038
KS
695udev 101
696========
697The udev daemon can be started with --debug-trace now, which will
698execute all events serialized to get a chance to catch a possible
699action that crashes the box.
700
701A warning is logged, if PHYSDEV* keys, the "device" link, or a parent
702device attribute like $attr{../file} is used, only WAIT_FOR_SYSFS rules
703are excluded from the warning. Referencing parent attributes directly
704may break when something in the kernel driver model changes. Udev will
705just find the attribute by walking up the parent chain.
706
707Udevtrigger now sorts the list of devices depending on the device
708dependency, so a "usb" device is triggered after the parent "pci"
709device.
710
eed8b2ff
KS
711udev 100
712========
713Revert persistent-storage ata-serial '_' '-' replacement.
714
4a515309
KS
715udev 099
716========
717Bugfixes.
718
719Udevtrigger can now filter the list of devices to be triggered. Matches
720for subsystems or sysfs attributes can be specified.
721
722The entries in /dev/.udev/queue and /dev/.udev/failed have changed to
723zero-sized files to avoid pointing to /sys and confuse broken tools which
724scan the /dev directory. To retry failed events, udevtrigger --retry-failed
725should be used now.
726
727The rules and scripts to create udev rules for persistent network
728devices and optical drives are in the extras/rules_generator directory
729now. If you use something similar, please consider replacing your own
730version with this, to share the support effort. The rule_generator
731installs its own rules into /etc/udev/rules.d.
732
733The cdrom_id tool installs its own rule now in /etc/udev/rules.d, cause
734the rule_generator depends on cdrom_id to be called in an earlier rule.
735
56f914e6
KS
736udev 098
737========
738Bugfixes.
739
740Renaming of some key names (the old names still work):
741BUS -> SUBSYSTEMS, ID -> KERNELS, SYSFS -> ATTRS, DRIVER -> DRIVERS.
742(The behavior of the key DRIVER will change soon in one of the next
743releases, to match only the event device, please switch to DRIVERS
744instead. If DRIVER is used, it will behave like DRIVERS, but an error
745is logged.
746With the new key names, we have a more consistent and simpler scheme.
747We can match the properties of the event device only, with: KERNEL,
748SUBSYSTEM, ATTR, DRIVER. Or include all the parent devices in the match,
749with: KERNELS, SUBSYSTEMS, ATTRS, DRIVERS. ID, BUS, SYSFS, DRIVER are no
750longer mentioned in the man page and should be switched in the rule
751files.
752
753ATTR{file}="value" can be used now, to write to a sysfs file of the
754event device. Instead of:
755 ..., SYSFS{type}=="0|7|14", RUN+="/bin/sh -c 'echo 60 > /sys$$DEVPATH/timeout'"
756we now can do:
757 ..., ATTR{type}=="0|7|14", ATTR{timeout}="60"
758
759All the PHYSDEV* keys are deprecated and will be removed from a
760future kernel:
761 PHYDEVPATH - is the path of a parent device and should not be
762 needed at all.
763 PHYSDEVBUS - is just a SUBSYSTEM value of a parent, and can be
764 matched with SUBSYSTEMS==
765 PHYSDEVDRIVER - for bus devices it is available as ENV{DRIVER}.
766 Newer kernels will have DRIVER in the environment,
767 for older kernels udev puts in. Class device will
768 no longer carry this property of a parent and
769 DRIVERS== can be used to match such a parent value.
770Note that ENV{DRIVER} is only available for a few bus devices, where
771the driver is already bound at device event time. On coldplug, the
772events for a lot devices are already bound to a driver, and they will have
773that value set. But on hotplug, at the time the kernel creates the device,
774it can't know what driver may claim the device after that, therefore
775in most cases it will be empty.
776
777Failed events should now be re-triggered with:
778 udevtrigger --retry-failed.
779Please switch to this command, so we keep the details of the /dev/.udev/failed/
780files private to the udev tools. We may need to switch the current symlink
781target, cause some obviously broken tools try to scan all files in /dev
782including /dev/.udev/, find the links to /sys and end up stat()'ing sysfs files
783million times. This takes ages on slow boxes.
784
785The udevinfo attribute walk (-a) now works with giving a device node
786name (-n) instead of a devpath (-p). The query now always works, also when
787no database file was created by udev.
788
789The built-in /etc/passwd /etc/group parser is removed, we always depend on
790getpwnam() and getgrnam() now. One of the next releases will depend on
791fnmatch() and may use getopt_long().
792
be31371f
KS
793udev 097
794========
795Bugfixes and small improvements.
796
8448b7ce
KS
797udev 096
798========
be31371f 799Fix path_id for recent kernels.
8448b7ce 800
486e62f8
KS
801udev 095
802========
56f914e6 803%e is finally gone.
486e62f8
KS
804
805Added support for swapping network interface names, by temporarily
806renaming the device and wait for the target name to become free.
807
a924bf9a
KS
808udev 094
809========
810The built-in MODALIAS key and substitution is removed.
811
df16b779
KS
812udev 093
813========
814The binary firmware helper is replaced by the usual simple
815shell script. Udevsend is removed from the tree.
816
acc8322f
KS
817udev 092
818========
819Bugfix release.
820
866bfe88
KS
821udev 091
822========
823Some more keys require the correct use of '==' and '=' depending
824on the kind of operation beeing an assignment or a match. Rules
825with invalid operations are skipped and logged to syslog. Please
826test with udevtest if the parsing of your rules throws errors and
827fix possibly broken rules.
828
876fa61d
KS
829udev 090
830========
831Provide "udevsettle" to wait for all current udev events to finish.
832It also watches the current kernel netlink queue by comparing the
833even sequence number to make sure that there are no current pending
834events that have not already arrived in the daemon.
835
2b3f8e93
KS
836udev 089
837========
838Fix rule to skip persistent rules for removable IDE devices, which
839also skipped optical IDE drives.
840
841All *_id program are installed in /lib/udev/ by default now.
842
843No binary is stripped anymore as this should be done in the
844packaging process and not at build time.
845
846libvolume_id is provided as a shared library now and vol_id is
847linked against it. Also one of the next HAL versions will require
848this library, and the HAL build process will also require the
849header file to be installed. The copy of the same code in HAL will
850be removed to have only a single copy left on the system.
851
63645a3d
KS
852udev 088
853========
854Add persistent links for SCSI tapes. The rules file is renamed
855to 60-persistent-storage.rules.
856
857Create persistent path for usb devices. Can be used for all sorts
858of devices that can't be distinguished by other properties like
859multiple identical keyboards and mice connected to the same box.
860
861Provide "udevtrigger" program to request events on coldplug. The
862shell script is much too slow with thousends of devices.
863
b2885eee
KS
864udev 087
865========
866Fix persistent disk rules to exclude removable IDE drives.
867
868Warn if %e, $modalias or MODALIAS is used.
869
870udev 086
0030441c
KS
871========
872Fix queue export, which wasn't correct for subsequent add/remove
873events for the same device.
874
4cb665e4
KS
875udev 085
876========
877Fix cramfs detection on big endian.
878
879Make WAIT_FOR_SYSFS usable in "normal" rules and silent if the whole
880device goes away.
881
4942c78c
KS
882udev 084
883========
66c2bc21 884If BUS== and SYSFS{}== have been used in the same rule, the sysfs
b3e8c12b
AB
885attributes were only checked at the parent device that matched the
886by BUS requested subsystem. Fix it to also look at the device we
66c2bc21
KS
887received the event for.
888
889Build variable CROSS has changed to CROSS_COMPILE to match the kernel
890build name.
4942c78c 891
36af2ddc
KS
892udev 083
893========
894Fix a bug where NAME="" would prevent RUN from beeing executed.
895
cef28db9 896RUN="/bin/program" does not longer automatically add the subsystem
36af2ddc 897as the first parameter. This is from the days of /sbin/hotplug
cef28db9
KS
898which is dead now and it's just confusing to need to add a space at
899the end of the program name to prevent this.
900If you use rules that need the subsystem as the first parameter,
901like the old "udev_run_hotlugd" and "udev_run_devd", add the subsystem
902to the key like RUN+="/bin/program $env{SUBSYSTEM}".
36af2ddc 903
1a72d06f
KS
904udev 082
905========
b3e8c12b 906The udev man page has moved to udev(7) as it does not describe a command
1a72d06f
KS
907anymore. The programs udev, udevstart and udevsend are no longer installed
908by default and must be copied manually, if they should be installed or
909included in a package.
910
911Fix a bug where "ignore_device" could run earlier collected RUN keys before
912the ignore rule was applied.
913
914More preparation for future sysfs changes. usb_id and scsi_id no longer
915depend on a magic order of devices in the /devices chain. Specific devices
916should be requested by their subsytem.
917
918This will always find the scsi parent device without depending on a specific
919path position:
920 dev = sysfs_device_get(devpath);
921 dev_usb = sysfs_device_get_parent_with_subsystem(dev, "scsi");
922
923The "device" link in the current sysfs layout will be automatically
924_resolved_ as a parent and in the new sysfs layout it will just _be_ the
925parent in the devpath. If a device is requested by it's symlink, like all
926class devices in the new sysfs layout will look like, it gets automatically
927resolved and substituted with the real devpath and not the symlink path.
928
929Note:
930A similar logic must be applied to _all_ sysfs users, including
931scripts, that search along parent devices in sysfs. The explicit use of
932the "device" link must be avoided. With the future sysfs layout all
933DEVPATH's will start with /devices/ and have a "subsystem" symlink poiting
934back to the "class" or the "bus". The layout of the parent devices in
935/devices is not necessarily expected to be stable across kernel releases and
936searching for parents by their subsystem should make sysfs users tolerant
937for changed parent chains.
938
7155bfb7
KS
939udev 081
940========
941Prepare udev to work with the experimental kernel patch, that moves
942/sys/class devices to /sys/devices and /sys/block to /sys/class/block.
943
944Clarify BUS, ID, $id usage and fix $id behavior. This prepares for
945moving the class devices to /sys/devices.
946
947Thanks again to Marco for help finding a hopefully nice compromise
948to make %b simpler and working again.
949
3e0f8812
KS
950udev 080
951========
1aa1e248
KS
952Complete removal of libsysfs, replaced by simple helper functions
953which are much simpler and a bit faster. The udev daemon operatesentirely
954on event parameters and does not use sysfs for simple rules anymore.
955Please report any new bugs/problems, that may be caused by this big
956change. They will be fixed immediately.
957
3e0f8812
KS
958The enumeration format character '%e' is deprecated and will be
959removed sometimes from a future udev version. It never worked correctly
960outside of udevstart, so we can't use it with the new parallel
961coldplug. A simple enumeration is as useless as the devfs naming
962scheme, just get rid of both if you still use it.
963
964MODALIAS and $modalias is not needed and will be removed from one of
965the next udev versions, replace it in all rules with ENV{MODALIAS} or
966the sysfs "modalias" value.
967
1aa1e248
KS
968Thanks a lot to Marco for all his help on finding and fixing bugs.
969
e2e8e5ce
KS
970udev 079
971========
972Let scsi_id request libata drive serial numbers from page 0x80.
973
974Renamed etc/udev/persistent.rules to persistent-disk.rules and
975added /dev/disk/by-name/* for device mapper device names.
976
977Removed %e from the man page. It never worked reliably outside
978of udevstart and udevstart is no longer recommended to use.
979
fb6e4c28
KS
980udev 078
981========
982Symlinks are now exported to the event environment. Hopefully it's no
983longer needed to run udevinfo from an event process, like it was
984mentioned on the hotplug list:
985 UDEV [1134776873.702967] add@/block/sdb
986 ...
987 DEVNAME=/dev/sdb
988 DEVLINKS=/dev/disk/by-id/usb-IBM_Memory_Key_0218B301030027E8 /dev/disk/by-path/usb-0218B301030027E8:0:0:0
989
7403f98b
KS
990udev 077
991========
992Fix a problem if udevsend is used as the hotplug handler and tries to use
993syslog, which causes a "vc" event loop. 2.6.15 will make udevsend obsolete
994and this kind of problems will hopefully go away soon.
995
c86be870
KS
996udev 076
997========
998All built-in logic to work around bad sysfs timing is removed with this
999version. The need to wait for sysfs files is almost fixed with a kernel
1000version that doesn't work with this udev version anyway. Until we fix
1001the timing of the "bus" link creation, the former integrated logic should
1002be emulated by a rule placed before all other rules:
1003 ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
1004
e0dc4f00
KS
1005The option "udev_db" does no longer exist. All udev state will be in
1006/$udev_root/.udev/ now, there is no longer an option to set this
fc55cf68 1007to anything else.
e0dc4f00
KS
1008If the init script or something else used this value, just depend on
1009this hardcoded path. But remember _all_content_ of this directory is
1010still private to udev and can change at any time.
fc55cf68 1011
c249f66a
KS
1012Default location for rule sripts and helper programs is now: /lib/udev/.
1013Everything that is not useful on the commandline should go into this
e0dc4f00
KS
1014directory. Some of the helpers in the extras folder are installed there
1015now. The rules need to be changed, to find the helpers there.
1016
1017Also /lib/udev/devices is recommended as a directory where packages or
1018the user can place real device nodes, which get copied over to /dev at
1019every boot. This should replace the various solutions with custom config
1020files.
c249f66a 1021
4389ec08
KS
1022Udevsend does no longer start the udev daemon. This must be done with
1023the init script that prepares /dev on tmpfs and creates the initial nodes,
1024before starting the daemon.
1025
a8349b33
KS
1026udev 075
1027========
ef0cd1ac
KS
1028Silent a too verbose error logging for the old hotplug.d/ dev.d/
1029emulation.
1030
a8349b33 1031The copy of klibc is removed. A systemwide installed version of klibc
ef0cd1ac 1032should be used to build a klibc udev now.
a8349b33 1033
bc48bbd9
KS
1034udev 074
1035========
1036NAME="" will not create any nodes, but execute RUN keys. To completely
1037ignore an event the OPTION "ignore_device" should be used.
1038
1039After removal of the reorder queue, events with a TIMEOUT can be executed
1040without any queuing now.
1041
8f528042
KS
1042udev 073
1043========
1044Fixed bug in udevd, if inotify is not available. We depend on netlink
1045uevents now, kernels without that event source will not work with that
1046version of udev anymore.
1047
6cb1bbe4
KS
1048udev 072
1049========
1050The rule parsing happens now in the daemon once at startup, all udev
1051event processes inherit the already parsed rules from the daemon.
1052It is shipped with SUSE10.0 and reduces heavily the system load at
1ad45a47
KS
1053startup. The option to save precompiled rules and let the udev process
1054pick the them up is removed, as it's no longer needed.
6cb1bbe4 1055
ce364175
KS
1056Kernel 2.6.15 will have symlinks at /class/input pointing to the real
1057device. Libsysfs is changed to "translate" the requested link into the
1058real device path, as it would happen with the hotplug event. Otherwise
1059device removal and the udev database will not work.
1060
1061Using 'make STRIPCMD=' will leave the binaries unstripped for debugging
6cb1bbe4
KS
1062and packaging.
1063
1064A few improvements for vol_id, the filesytem probing code.
1065
a743be9a
KS
1066udev 071
1067========
1068Fix a stupid typo in extras/run_directory for "make install".
1069
1070scsi_id creates the temporary devnode now in /dev for usage with a
1071non-writable /tmp directory.
1072
1073The uevent kernel socket buffer can carry app. 50.000 events now,
1074let's see who can break this again. :)
1075
1076The upcoming kernel will have a new input driver core integration.
1077Some class devices are now symlinks to the real device. libsysfs
1078needs a fix for this to work correctly. Udevstart of older udev
1079versions will _not_ create these devices!
1080
b0f65295
KS
1081udev 070
1082========
1083Fix a 'install' target in the Makefile, that prevents EXTRAS from
1084beeing installed.
1085
b581515c
KS
1086udev 069
1087========
1088A bunch of mostly trivial bugfixes. From now on no node name or
1089symlink name can contain any character than plain whitelisted ascii
1090characters or validated utf8 byte-streams. This is needed for the
e688ad2d 1091/dev/disk/by-label/* links, because we import untrusted data and
b581515c
KS
1092export it to the filesystem.
1093
24a12dcb
KS
1094udev 068
1095========
1096More bugfixes. If udevd was started from the kernel, we don't
1097have stdin/stdout/stderr, which broke the forked tools in some
1098situations.
1099
1100udev 067
1101========
1102Bugfix. udevstart event ordering was broken for a long time.
e688ad2d 1103The new run_program() uncovered it, because /dev/null was not
24a12dcb
KS
1104available while we try to run external programs.
1105Now udevstart should create it before we run anything.
1106
6214290d
KS
1107udev 066
1108========
1109Minor bugfixes and some distro rules updates. If you don't have the
1110persistent disk rules in /dev/disk/by-*/* on your distro, just
1111grab it from here. :)
1112
61341fae
KS
1113udev 065
1114========
1115We can use socket communication now to pass events from udev to
1116other programs:
1117 RUN+="socket:/org/freedesktop/hal/udev_event"
1118will pass the whole udev event to the HAL daemon without the need
1119for a forked helper. (See ChangeLog for udevmonitor, as an example)
1120
1121udev 064
1122========
1123Mostly bugfixes and see ChangeLog.
1124
1125The test for the existence of an environment value should be
1126switched from:
1127 ENV{KEY}=="*" to ENV{KEY}=="?*"
e688ad2d 1128because "*" will not fail anymore, if the key does not exist or
61341fae
KS
1129is empty.
1130
1131udev 063
1132========
1133Bugfixes and a few tweaks described in the ChangeLog.
1134
97c0448d
KS
1135udev 062
1136========
1137Mostly a Bugfix release.
1138
1139Added WAIT_FOR_SYSFS="<attribute>" to be able to fight against the sysfs
1140timing with custom rules.
1141
133dd3ce
KS
1142udev 061
1143========
1144We changed the internal rule storage format. Our large rule files took
11452 MB of RAM, with the change we are down to 99kB.
1146
1147If the device-node has been created with default name and no symlink or
1148options are to remenber, it is not longer stored in the udevdb. HAL will
1149need to be updated to work correctly with that change.
1150
1151To overrride optimization flags, OPTFLAGS may be used now.
1152
1153udev 060
1154========
1155Bugfix release.
1156
be0856c8
KS
1157udev 059
1158========
1159Major changes happened with this release. The goal is to take over the
1160complete kernel-event handling and provide a more efficient way to dispatch
1161kernel events. Replacing most of the current shell script logic and the
1162kernel forked helper with a netlink-daemon and a rule-based event handling.
1163
1164o udevd listens to netlink events now. The first valid netlink event
1165 will make udevd ignore any message from udevsend that contains a
1166 SEQNUM, to avoid duplicate events. The forked events can be disabled
1167 with:
1168 echo "" > /proc/sys/kernel/hotplug
1169 For full support, the broken input-subsytem needs to be fixed, not to
1170 bypass the driver core.
1171
1172o /etc/dev.d/ + /etc/hotplug.d/ directory multiplexing is completely
1173 removed from udev itself and must be emulated by calling small
1174 helper binaries provided in the extras folder:
1175 make EXTRAS=extras/run_directory/
1176 will build udev_run_devd and udev_run_hotplugd, which can be called
1177 from a rule if needed:
1178 RUN+="/sbin/udev_run_hotplugd"
1179 The recommended way to handle this is to convert all the calls from
1180 the directories to explicit udev rules and get completely rid of the
1181 multiplexing. (To catch a ttyUSB event, you now no longer need to
1182 fork and exit 300 tty script instances you are not interested in, it
1183 is just one rule that matches exactly the device.)
1184
1185o udev handles now _all_ events not just events for class and block
1186 devices, this way it is possible to control the complete event
1187 behavior with udev rules. Especially useful for rules like:
1188 ACTION="add", DEVPATH="/devices/*", MODALIAS=="?*", RUN+="/sbin/modprobe $modalias"
1189
1190o As used in the modalias rule, udev supports now textual
1191 substitution placeholder along with the usual format chars. This
1192 needs to be documented, for now it's only visible in udev_rules_parse.c.
1193
1194o The rule keys support now more operations. This is documented in the
1195 man page. It is possible to add values to list-keys like the SYMLINK
1196 and RUN list with KEY+="value" and to clear the list by assigning KEY="".
1197 Also "final"-assignments are supported by using KEY:="value", which will
1198 prevent changing the key by any later rule.
1199
1200o kernel 2.6.12 has the "detached_state" attribute removed from
1201 sysfs, which was used to recognize sysfs population. We switched that
1202 to wait for the "bus" link, which is only available in kernels after 2.6.11.
1203 Running this udev version on older kernels may cause a short delay for
1204 some events.
1205
1206o To provide infrastructure for persistent device naming, the id programs:
1207 scsi_id, vol_id (former udev_volume_id), and ata_id (new) are able now
1208 to export the probed data in environment key format:
1209 pim:~ # /sbin/ata_id --export /dev/hda
1210 ID_MODEL=HTS726060M9AT00
1211 ID_SERIAL=MRH401M4G6UM9B
1212 ID_REVISION=MH4OA6BA
1213
1214 The following rules:
1215 KERNEL="hd*[!0-9]", IMPORT="/sbin/ata_id --export $tempnode"
1216 KERNEL="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_MODEL}_$env{ID_SERIAL}"
1217
1218 Will create:
1219 kay@pim:~> tree /dev/disk
1220 /dev/disk
1221 |-- by-id
1222 | |-- HTS726060M9AT00_MRH401M4G6UM9B -> ../../hda
1223 | `-- IBM-Memory_Key -> ../../sda
1224 |-- by-label
1225 | |-- swap -> ../../hda1
1226 | |-- date -> ../../sda1
1227 | `-- home -> ../../hda3
1228 `-- by-uuid
1229 |-- 2E08712B0870F2E7 -> ../../hda3
1230 |-- 9352cfef-7687-47bc-a2a3-34cf136f72e1 -> ../../hda1
1231 |-- E845-7A89 -> ../../sda1
1232 `-- b2a61681-3812-4f13-a4ff-920d70604299 -> ../../hda2
1233
1234 The IMPORT= operation will import these keys in the environment and make
1235 it available for later PROGRAM= and RUN= executed programs. The keys are
1236 also stored in the udevdb and can be queried from there with one of the
1237 next udev versions.
1238
1239o A few binaries are silently added to the repository, which can be used
1240 to replay kernel events from initramfs instead of using coldplug. udevd
1241 can be instructed now to queue-up events while the stored events from
1242 initramfs are filled into the udevd-queue. This code is still under
1243 development and there is no documentation now besides the code itself.
1244 The additional binaries get compiled, but are not installed by default.
1245
1246o There is also a temporary fix for a performance problem where too many
1247 events happen in parallel and every event needs to parse the rules.
1248 udev can now read precompiled rules stored on disk. This is likely to be
1249 replaced by a more elegant solution in a future udev version.
1250
1251udev 058
1252========
1253With kernel version 2.6.12, the sysfs file "detached_state" was removed.
1254Fix for libsysfs not to expect this file was added.
1255
6b493a20
KS
1256udev 057
1257========
e4388fb3 1258All rules are applied now, but only the first matching rule with a NAME-key
16eb35d1
KS
1259will be applied. All later rules with NAME-key are completely ignored. This
1260way system supplied symlinks or permissions gets applied to user-defined
1261naming rules.
1262
e4388fb3
KS
1263Note:
1264Please check your rules setup, if you may need to add OPTIONS="last_rule"
1265to some rules, to keep the old behavior.
1266
1267The rules are read on "remove"-events too. That makes is possible to match
1268with keys that are available on remove (KERNEL, SUBSYSTEM, ID, ENV, ...) to
16eb35d1
KS
1269instruct udev to ignore an event (OPTIONS="ignore_device").
1270The new ACTION-key may be used to let a rule act only at a "remove"-event.
e4388fb3
KS
1271
1272The new RUN-key supports rule-based execution of programs after device-node
16eb35d1
KS
1273handling. This is meant as a general replacement for the dev.d/-directories
1274to give fine grained control over the execution of programs.
e4388fb3
KS
1275
1276The %s{}-sysfs format char replacement values are searched at any of the
1277devices in the device chain now, not only at the class-device.
1278
6b493a20
KS
1279We support log priority levels now. The value udev_log in udev.conf is used
1280to determine what is printed to syslog. This makes it possible to
1281run a version with compiled-in debug messages in a production environment
1282which is sometimes needed to find a bug.
1283It is still possible to supress the inclusion of _any_ syslog usage with
1284USE_LOG=false to create the smallest possible binaries if needed.
1285The configured udev_log value can be overridden with the environment variable
1286UDEV_LOG.
1287
7f7ae03a
KS
1288udev 056
1289========
1290Possible use of a system-wide klibc:
16eb35d1 1291 make USE_KLIBC=true KLCC=/usr/bin/klcc all
7f7ae03a
KS
1292will link against an external klibc and our own version will be ignored.
1293
143139a1
KS
1294udev 055
1295========
1296We support an unlimited count of symlinks now.
1297
1298If USE_STATIC=true is passed to a glibc build, we link statically and use
1299a built-in userdb parser to resolve user and group names.
1300
e688ad2d 1301The PLACE= key is gone. It can be replaced by an ID= for a long time, because
143139a1
KS
1302we walk up the chain of physical devices to find a match.
1303
28ce66de 1304The KEY="<value>" format supports '=', '==', '!=,' , '+=' now. This makes it
38285d23
KS
1305easy to skip certain attribute matches without composing rules with weird
1306character class negations like:
28ce66de 1307 KERNEL="[!s][!c][!d]*"
38285d23 1308this can now be replaced with:
28ce66de 1309 KERNEL!="scd*"
38285d23
KS
1310The current simple '=' is still supported, and should work as it does today,
1311but existing rules should be converted if possible, to be better readable.
1312
fc90ce81
KS
1313We have new ENV{}== key now, to match against a maximum of 5 environment
1314variables.
0e33828a 1315
e688ad2d 1316udevstart is its own binary again, because we don't need co carry this araound
0e33828a 1317with every forked event.