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