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