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