]> git.ipfire.org Git - thirdparty/systemd.git/blame - RELEASE-NOTES
087 release
[thirdparty/systemd.git] / RELEASE-NOTES
CommitLineData
b2885eee
KS
1udev 087
2========
3Fix persistent disk rules to exclude removable IDE drives.
4
5Warn if %e, $modalias or MODALIAS is used.
6
7udev 086
0030441c
KS
8========
9Fix queue export, which wasn't correct for subsequent add/remove
10events for the same device.
11
4cb665e4
KS
12udev 085
13========
14Fix cramfs detection on big endian.
15
16Make WAIT_FOR_SYSFS usable in "normal" rules and silent if the whole
17device goes away.
18
4942c78c
KS
19udev 084
20========
66c2bc21 21If BUS== and SYSFS{}== have been used in the same rule, the sysfs
b3e8c12b
AB
22attributes were only checked at the parent device that matched the
23by BUS requested subsystem. Fix it to also look at the device we
66c2bc21
KS
24received the event for.
25
26Build variable CROSS has changed to CROSS_COMPILE to match the kernel
27build name.
4942c78c 28
36af2ddc
KS
29udev 083
30========
31Fix a bug where NAME="" would prevent RUN from beeing executed.
32
cef28db9 33RUN="/bin/program" does not longer automatically add the subsystem
36af2ddc 34as the first parameter. This is from the days of /sbin/hotplug
cef28db9
KS
35which is dead now and it's just confusing to need to add a space at
36the end of the program name to prevent this.
37If you use rules that need the subsystem as the first parameter,
38like the old "udev_run_hotlugd" and "udev_run_devd", add the subsystem
39to the key like RUN+="/bin/program $env{SUBSYSTEM}".
36af2ddc 40
1a72d06f
KS
41udev 082
42========
b3e8c12b 43The udev man page has moved to udev(7) as it does not describe a command
1a72d06f
KS
44anymore. The programs udev, udevstart and udevsend are no longer installed
45by default and must be copied manually, if they should be installed or
46included in a package.
47
48Fix a bug where "ignore_device" could run earlier collected RUN keys before
49the ignore rule was applied.
50
51More preparation for future sysfs changes. usb_id and scsi_id no longer
52depend on a magic order of devices in the /devices chain. Specific devices
53should be requested by their subsytem.
54
55This will always find the scsi parent device without depending on a specific
56path position:
57 dev = sysfs_device_get(devpath);
58 dev_usb = sysfs_device_get_parent_with_subsystem(dev, "scsi");
59
60The "device" link in the current sysfs layout will be automatically
61_resolved_ as a parent and in the new sysfs layout it will just _be_ the
62parent in the devpath. If a device is requested by it's symlink, like all
63class devices in the new sysfs layout will look like, it gets automatically
64resolved and substituted with the real devpath and not the symlink path.
65
66Note:
67A similar logic must be applied to _all_ sysfs users, including
68scripts, that search along parent devices in sysfs. The explicit use of
69the "device" link must be avoided. With the future sysfs layout all
70DEVPATH's will start with /devices/ and have a "subsystem" symlink poiting
71back to the "class" or the "bus". The layout of the parent devices in
72/devices is not necessarily expected to be stable across kernel releases and
73searching for parents by their subsystem should make sysfs users tolerant
74for changed parent chains.
75
7155bfb7
KS
76udev 081
77========
78Prepare udev to work with the experimental kernel patch, that moves
79/sys/class devices to /sys/devices and /sys/block to /sys/class/block.
80
81Clarify BUS, ID, $id usage and fix $id behavior. This prepares for
82moving the class devices to /sys/devices.
83
84Thanks again to Marco for help finding a hopefully nice compromise
85to make %b simpler and working again.
86
3e0f8812
KS
87udev 080
88========
1aa1e248
KS
89Complete removal of libsysfs, replaced by simple helper functions
90which are much simpler and a bit faster. The udev daemon operatesentirely
91on event parameters and does not use sysfs for simple rules anymore.
92Please report any new bugs/problems, that may be caused by this big
93change. They will be fixed immediately.
94
3e0f8812
KS
95The enumeration format character '%e' is deprecated and will be
96removed sometimes from a future udev version. It never worked correctly
97outside of udevstart, so we can't use it with the new parallel
98coldplug. A simple enumeration is as useless as the devfs naming
99scheme, just get rid of both if you still use it.
100
101MODALIAS and $modalias is not needed and will be removed from one of
102the next udev versions, replace it in all rules with ENV{MODALIAS} or
103the sysfs "modalias" value.
104
1aa1e248
KS
105Thanks a lot to Marco for all his help on finding and fixing bugs.
106
e2e8e5ce
KS
107udev 079
108========
109Let scsi_id request libata drive serial numbers from page 0x80.
110
111Renamed etc/udev/persistent.rules to persistent-disk.rules and
112added /dev/disk/by-name/* for device mapper device names.
113
114Removed %e from the man page. It never worked reliably outside
115of udevstart and udevstart is no longer recommended to use.
116
fb6e4c28
KS
117udev 078
118========
119Symlinks are now exported to the event environment. Hopefully it's no
120longer needed to run udevinfo from an event process, like it was
121mentioned on the hotplug list:
122 UDEV [1134776873.702967] add@/block/sdb
123 ...
124 DEVNAME=/dev/sdb
125 DEVLINKS=/dev/disk/by-id/usb-IBM_Memory_Key_0218B301030027E8 /dev/disk/by-path/usb-0218B301030027E8:0:0:0
126
7403f98b
KS
127udev 077
128========
129Fix a problem if udevsend is used as the hotplug handler and tries to use
130syslog, which causes a "vc" event loop. 2.6.15 will make udevsend obsolete
131and this kind of problems will hopefully go away soon.
132
c86be870
KS
133udev 076
134========
135All built-in logic to work around bad sysfs timing is removed with this
136version. The need to wait for sysfs files is almost fixed with a kernel
137version that doesn't work with this udev version anyway. Until we fix
138the timing of the "bus" link creation, the former integrated logic should
139be emulated by a rule placed before all other rules:
140 ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
141
e0dc4f00
KS
142The option "udev_db" does no longer exist. All udev state will be in
143/$udev_root/.udev/ now, there is no longer an option to set this
fc55cf68 144to anything else.
e0dc4f00
KS
145If the init script or something else used this value, just depend on
146this hardcoded path. But remember _all_content_ of this directory is
147still private to udev and can change at any time.
fc55cf68 148
c249f66a
KS
149Default location for rule sripts and helper programs is now: /lib/udev/.
150Everything that is not useful on the commandline should go into this
e0dc4f00
KS
151directory. Some of the helpers in the extras folder are installed there
152now. The rules need to be changed, to find the helpers there.
153
154Also /lib/udev/devices is recommended as a directory where packages or
155the user can place real device nodes, which get copied over to /dev at
156every boot. This should replace the various solutions with custom config
157files.
c249f66a 158
4389ec08
KS
159Udevsend does no longer start the udev daemon. This must be done with
160the init script that prepares /dev on tmpfs and creates the initial nodes,
161before starting the daemon.
162
a8349b33
KS
163udev 075
164========
ef0cd1ac
KS
165Silent a too verbose error logging for the old hotplug.d/ dev.d/
166emulation.
167
a8349b33 168The copy of klibc is removed. A systemwide installed version of klibc
ef0cd1ac 169should be used to build a klibc udev now.
a8349b33 170
bc48bbd9
KS
171udev 074
172========
173NAME="" will not create any nodes, but execute RUN keys. To completely
174ignore an event the OPTION "ignore_device" should be used.
175
176After removal of the reorder queue, events with a TIMEOUT can be executed
177without any queuing now.
178
8f528042
KS
179udev 073
180========
181Fixed bug in udevd, if inotify is not available. We depend on netlink
182uevents now, kernels without that event source will not work with that
183version of udev anymore.
184
6cb1bbe4
KS
185udev 072
186========
187The rule parsing happens now in the daemon once at startup, all udev
188event processes inherit the already parsed rules from the daemon.
189It is shipped with SUSE10.0 and reduces heavily the system load at
1ad45a47
KS
190startup. The option to save precompiled rules and let the udev process
191pick the them up is removed, as it's no longer needed.
6cb1bbe4 192
ce364175
KS
193Kernel 2.6.15 will have symlinks at /class/input pointing to the real
194device. Libsysfs is changed to "translate" the requested link into the
195real device path, as it would happen with the hotplug event. Otherwise
196device removal and the udev database will not work.
197
198Using 'make STRIPCMD=' will leave the binaries unstripped for debugging
6cb1bbe4
KS
199and packaging.
200
201A few improvements for vol_id, the filesytem probing code.
202
a743be9a
KS
203udev 071
204========
205Fix a stupid typo in extras/run_directory for "make install".
206
207scsi_id creates the temporary devnode now in /dev for usage with a
208non-writable /tmp directory.
209
210The uevent kernel socket buffer can carry app. 50.000 events now,
211let's see who can break this again. :)
212
213The upcoming kernel will have a new input driver core integration.
214Some class devices are now symlinks to the real device. libsysfs
215needs a fix for this to work correctly. Udevstart of older udev
216versions will _not_ create these devices!
217
b0f65295
KS
218udev 070
219========
220Fix a 'install' target in the Makefile, that prevents EXTRAS from
221beeing installed.
222
b581515c
KS
223udev 069
224========
225A bunch of mostly trivial bugfixes. From now on no node name or
226symlink name can contain any character than plain whitelisted ascii
227characters or validated utf8 byte-streams. This is needed for the
228/dev/disk/by-label/* links, cause we import untrusted data and
229export it to the filesystem.
230
24a12dcb
KS
231udev 068
232========
233More bugfixes. If udevd was started from the kernel, we don't
234have stdin/stdout/stderr, which broke the forked tools in some
235situations.
236
237udev 067
238========
239Bugfix. udevstart event ordering was broken for a long time.
240The new run_program() uncovered it, cause /dev/null was not
241available while we try to run external programs.
242Now udevstart should create it before we run anything.
243
6214290d
KS
244udev 066
245========
246Minor bugfixes and some distro rules updates. If you don't have the
247persistent disk rules in /dev/disk/by-*/* on your distro, just
248grab it from here. :)
249
61341fae
KS
250udev 065
251========
252We can use socket communication now to pass events from udev to
253other programs:
254 RUN+="socket:/org/freedesktop/hal/udev_event"
255will pass the whole udev event to the HAL daemon without the need
256for a forked helper. (See ChangeLog for udevmonitor, as an example)
257
258udev 064
259========
260Mostly bugfixes and see ChangeLog.
261
262The test for the existence of an environment value should be
263switched from:
264 ENV{KEY}=="*" to ENV{KEY}=="?*"
265cause "*" will not fail anymore, if the key does not exist or
266is empty.
267
268udev 063
269========
270Bugfixes and a few tweaks described in the ChangeLog.
271
97c0448d
KS
272udev 062
273========
274Mostly a Bugfix release.
275
276Added WAIT_FOR_SYSFS="<attribute>" to be able to fight against the sysfs
277timing with custom rules.
278
133dd3ce
KS
279udev 061
280========
281We changed the internal rule storage format. Our large rule files took
2822 MB of RAM, with the change we are down to 99kB.
283
284If the device-node has been created with default name and no symlink or
285options are to remenber, it is not longer stored in the udevdb. HAL will
286need to be updated to work correctly with that change.
287
288To overrride optimization flags, OPTFLAGS may be used now.
289
290udev 060
291========
292Bugfix release.
293
be0856c8
KS
294udev 059
295========
296Major changes happened with this release. The goal is to take over the
297complete kernel-event handling and provide a more efficient way to dispatch
298kernel events. Replacing most of the current shell script logic and the
299kernel forked helper with a netlink-daemon and a rule-based event handling.
300
301o udevd listens to netlink events now. The first valid netlink event
302 will make udevd ignore any message from udevsend that contains a
303 SEQNUM, to avoid duplicate events. The forked events can be disabled
304 with:
305 echo "" > /proc/sys/kernel/hotplug
306 For full support, the broken input-subsytem needs to be fixed, not to
307 bypass the driver core.
308
309o /etc/dev.d/ + /etc/hotplug.d/ directory multiplexing is completely
310 removed from udev itself and must be emulated by calling small
311 helper binaries provided in the extras folder:
312 make EXTRAS=extras/run_directory/
313 will build udev_run_devd and udev_run_hotplugd, which can be called
314 from a rule if needed:
315 RUN+="/sbin/udev_run_hotplugd"
316 The recommended way to handle this is to convert all the calls from
317 the directories to explicit udev rules and get completely rid of the
318 multiplexing. (To catch a ttyUSB event, you now no longer need to
319 fork and exit 300 tty script instances you are not interested in, it
320 is just one rule that matches exactly the device.)
321
322o udev handles now _all_ events not just events for class and block
323 devices, this way it is possible to control the complete event
324 behavior with udev rules. Especially useful for rules like:
325 ACTION="add", DEVPATH="/devices/*", MODALIAS=="?*", RUN+="/sbin/modprobe $modalias"
326
327o As used in the modalias rule, udev supports now textual
328 substitution placeholder along with the usual format chars. This
329 needs to be documented, for now it's only visible in udev_rules_parse.c.
330
331o The rule keys support now more operations. This is documented in the
332 man page. It is possible to add values to list-keys like the SYMLINK
333 and RUN list with KEY+="value" and to clear the list by assigning KEY="".
334 Also "final"-assignments are supported by using KEY:="value", which will
335 prevent changing the key by any later rule.
336
337o kernel 2.6.12 has the "detached_state" attribute removed from
338 sysfs, which was used to recognize sysfs population. We switched that
339 to wait for the "bus" link, which is only available in kernels after 2.6.11.
340 Running this udev version on older kernels may cause a short delay for
341 some events.
342
343o To provide infrastructure for persistent device naming, the id programs:
344 scsi_id, vol_id (former udev_volume_id), and ata_id (new) are able now
345 to export the probed data in environment key format:
346 pim:~ # /sbin/ata_id --export /dev/hda
347 ID_MODEL=HTS726060M9AT00
348 ID_SERIAL=MRH401M4G6UM9B
349 ID_REVISION=MH4OA6BA
350
351 The following rules:
352 KERNEL="hd*[!0-9]", IMPORT="/sbin/ata_id --export $tempnode"
353 KERNEL="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_MODEL}_$env{ID_SERIAL}"
354
355 Will create:
356 kay@pim:~> tree /dev/disk
357 /dev/disk
358 |-- by-id
359 | |-- HTS726060M9AT00_MRH401M4G6UM9B -> ../../hda
360 | `-- IBM-Memory_Key -> ../../sda
361 |-- by-label
362 | |-- swap -> ../../hda1
363 | |-- date -> ../../sda1
364 | `-- home -> ../../hda3
365 `-- by-uuid
366 |-- 2E08712B0870F2E7 -> ../../hda3
367 |-- 9352cfef-7687-47bc-a2a3-34cf136f72e1 -> ../../hda1
368 |-- E845-7A89 -> ../../sda1
369 `-- b2a61681-3812-4f13-a4ff-920d70604299 -> ../../hda2
370
371 The IMPORT= operation will import these keys in the environment and make
372 it available for later PROGRAM= and RUN= executed programs. The keys are
373 also stored in the udevdb and can be queried from there with one of the
374 next udev versions.
375
376o A few binaries are silently added to the repository, which can be used
377 to replay kernel events from initramfs instead of using coldplug. udevd
378 can be instructed now to queue-up events while the stored events from
379 initramfs are filled into the udevd-queue. This code is still under
380 development and there is no documentation now besides the code itself.
381 The additional binaries get compiled, but are not installed by default.
382
383o There is also a temporary fix for a performance problem where too many
384 events happen in parallel and every event needs to parse the rules.
385 udev can now read precompiled rules stored on disk. This is likely to be
386 replaced by a more elegant solution in a future udev version.
387
388udev 058
389========
390With kernel version 2.6.12, the sysfs file "detached_state" was removed.
391Fix for libsysfs not to expect this file was added.
392
6b493a20
KS
393udev 057
394========
e4388fb3 395All rules are applied now, but only the first matching rule with a NAME-key
16eb35d1
KS
396will be applied. All later rules with NAME-key are completely ignored. This
397way system supplied symlinks or permissions gets applied to user-defined
398naming rules.
399
e4388fb3
KS
400Note:
401Please check your rules setup, if you may need to add OPTIONS="last_rule"
402to some rules, to keep the old behavior.
403
404The rules are read on "remove"-events too. That makes is possible to match
405with keys that are available on remove (KERNEL, SUBSYSTEM, ID, ENV, ...) to
16eb35d1
KS
406instruct udev to ignore an event (OPTIONS="ignore_device").
407The new ACTION-key may be used to let a rule act only at a "remove"-event.
e4388fb3
KS
408
409The new RUN-key supports rule-based execution of programs after device-node
16eb35d1
KS
410handling. This is meant as a general replacement for the dev.d/-directories
411to give fine grained control over the execution of programs.
e4388fb3
KS
412
413The %s{}-sysfs format char replacement values are searched at any of the
414devices in the device chain now, not only at the class-device.
415
6b493a20
KS
416We support log priority levels now. The value udev_log in udev.conf is used
417to determine what is printed to syslog. This makes it possible to
418run a version with compiled-in debug messages in a production environment
419which is sometimes needed to find a bug.
420It is still possible to supress the inclusion of _any_ syslog usage with
421USE_LOG=false to create the smallest possible binaries if needed.
422The configured udev_log value can be overridden with the environment variable
423UDEV_LOG.
424
7f7ae03a
KS
425udev 056
426========
427Possible use of a system-wide klibc:
16eb35d1 428 make USE_KLIBC=true KLCC=/usr/bin/klcc all
7f7ae03a
KS
429will link against an external klibc and our own version will be ignored.
430
143139a1
KS
431udev 055
432========
433We support an unlimited count of symlinks now.
434
435If USE_STATIC=true is passed to a glibc build, we link statically and use
436a built-in userdb parser to resolve user and group names.
437
fc90ce81 438The PLACE= key is gone. It can be replaced by an ID= for a long time, cause
143139a1
KS
439we walk up the chain of physical devices to find a match.
440
28ce66de 441The KEY="<value>" format supports '=', '==', '!=,' , '+=' now. This makes it
38285d23
KS
442easy to skip certain attribute matches without composing rules with weird
443character class negations like:
28ce66de 444 KERNEL="[!s][!c][!d]*"
38285d23 445this can now be replaced with:
28ce66de 446 KERNEL!="scd*"
38285d23
KS
447The current simple '=' is still supported, and should work as it does today,
448but existing rules should be converted if possible, to be better readable.
449
fc90ce81
KS
450We have new ENV{}== key now, to match against a maximum of 5 environment
451variables.
0e33828a
KS
452
453udevstart is its own binary again, cause we don't need co carry this araound
454with every forked event.