]>
Commit | Line | Data |
---|---|---|
6cb1bbe4 KS |
1 | udev 072 |
2 | ======== | |
3 | The rule parsing happens now in the daemon once at startup, all udev | |
4 | event processes inherit the already parsed rules from the daemon. | |
5 | It is shipped with SUSE10.0 and reduces heavily the system load at | |
6 | startup. | |
7 | ||
8 | using 'make STRIPCMD=' will leave the binaries unstripped for debugging | |
9 | and packaging. | |
10 | ||
11 | A few improvements for vol_id, the filesytem probing code. | |
12 | ||
a743be9a KS |
13 | udev 071 |
14 | ======== | |
15 | Fix a stupid typo in extras/run_directory for "make install". | |
16 | ||
17 | scsi_id creates the temporary devnode now in /dev for usage with a | |
18 | non-writable /tmp directory. | |
19 | ||
20 | The uevent kernel socket buffer can carry app. 50.000 events now, | |
21 | let's see who can break this again. :) | |
22 | ||
23 | The upcoming kernel will have a new input driver core integration. | |
24 | Some class devices are now symlinks to the real device. libsysfs | |
25 | needs a fix for this to work correctly. Udevstart of older udev | |
26 | versions will _not_ create these devices! | |
27 | ||
b0f65295 KS |
28 | udev 070 |
29 | ======== | |
30 | Fix a 'install' target in the Makefile, that prevents EXTRAS from | |
31 | beeing installed. | |
32 | ||
b581515c KS |
33 | udev 069 |
34 | ======== | |
35 | A bunch of mostly trivial bugfixes. From now on no node name or | |
36 | symlink name can contain any character than plain whitelisted ascii | |
37 | characters or validated utf8 byte-streams. This is needed for the | |
38 | /dev/disk/by-label/* links, cause we import untrusted data and | |
39 | export it to the filesystem. | |
40 | ||
24a12dcb KS |
41 | udev 068 |
42 | ======== | |
43 | More bugfixes. If udevd was started from the kernel, we don't | |
44 | have stdin/stdout/stderr, which broke the forked tools in some | |
45 | situations. | |
46 | ||
47 | udev 067 | |
48 | ======== | |
49 | Bugfix. udevstart event ordering was broken for a long time. | |
50 | The new run_program() uncovered it, cause /dev/null was not | |
51 | available while we try to run external programs. | |
52 | Now udevstart should create it before we run anything. | |
53 | ||
6214290d KS |
54 | udev 066 |
55 | ======== | |
56 | Minor bugfixes and some distro rules updates. If you don't have the | |
57 | persistent disk rules in /dev/disk/by-*/* on your distro, just | |
58 | grab it from here. :) | |
59 | ||
61341fae KS |
60 | udev 065 |
61 | ======== | |
62 | We can use socket communication now to pass events from udev to | |
63 | other programs: | |
64 | RUN+="socket:/org/freedesktop/hal/udev_event" | |
65 | will pass the whole udev event to the HAL daemon without the need | |
66 | for a forked helper. (See ChangeLog for udevmonitor, as an example) | |
67 | ||
68 | udev 064 | |
69 | ======== | |
70 | Mostly bugfixes and see ChangeLog. | |
71 | ||
72 | The test for the existence of an environment value should be | |
73 | switched from: | |
74 | ENV{KEY}=="*" to ENV{KEY}=="?*" | |
75 | cause "*" will not fail anymore, if the key does not exist or | |
76 | is empty. | |
77 | ||
78 | udev 063 | |
79 | ======== | |
80 | Bugfixes and a few tweaks described in the ChangeLog. | |
81 | ||
97c0448d KS |
82 | udev 062 |
83 | ======== | |
84 | Mostly a Bugfix release. | |
85 | ||
86 | Added WAIT_FOR_SYSFS="<attribute>" to be able to fight against the sysfs | |
87 | timing with custom rules. | |
88 | ||
133dd3ce KS |
89 | udev 061 |
90 | ======== | |
91 | We changed the internal rule storage format. Our large rule files took | |
92 | 2 MB of RAM, with the change we are down to 99kB. | |
93 | ||
94 | If the device-node has been created with default name and no symlink or | |
95 | options are to remenber, it is not longer stored in the udevdb. HAL will | |
96 | need to be updated to work correctly with that change. | |
97 | ||
98 | To overrride optimization flags, OPTFLAGS may be used now. | |
99 | ||
100 | udev 060 | |
101 | ======== | |
102 | Bugfix release. | |
103 | ||
be0856c8 KS |
104 | udev 059 |
105 | ======== | |
106 | Major changes happened with this release. The goal is to take over the | |
107 | complete kernel-event handling and provide a more efficient way to dispatch | |
108 | kernel events. Replacing most of the current shell script logic and the | |
109 | kernel forked helper with a netlink-daemon and a rule-based event handling. | |
110 | ||
111 | o udevd listens to netlink events now. The first valid netlink event | |
112 | will make udevd ignore any message from udevsend that contains a | |
113 | SEQNUM, to avoid duplicate events. The forked events can be disabled | |
114 | with: | |
115 | echo "" > /proc/sys/kernel/hotplug | |
116 | For full support, the broken input-subsytem needs to be fixed, not to | |
117 | bypass the driver core. | |
118 | ||
119 | o /etc/dev.d/ + /etc/hotplug.d/ directory multiplexing is completely | |
120 | removed from udev itself and must be emulated by calling small | |
121 | helper binaries provided in the extras folder: | |
122 | make EXTRAS=extras/run_directory/ | |
123 | will build udev_run_devd and udev_run_hotplugd, which can be called | |
124 | from a rule if needed: | |
125 | RUN+="/sbin/udev_run_hotplugd" | |
126 | The recommended way to handle this is to convert all the calls from | |
127 | the directories to explicit udev rules and get completely rid of the | |
128 | multiplexing. (To catch a ttyUSB event, you now no longer need to | |
129 | fork and exit 300 tty script instances you are not interested in, it | |
130 | is just one rule that matches exactly the device.) | |
131 | ||
132 | o udev handles now _all_ events not just events for class and block | |
133 | devices, this way it is possible to control the complete event | |
134 | behavior with udev rules. Especially useful for rules like: | |
135 | ACTION="add", DEVPATH="/devices/*", MODALIAS=="?*", RUN+="/sbin/modprobe $modalias" | |
136 | ||
137 | o As used in the modalias rule, udev supports now textual | |
138 | substitution placeholder along with the usual format chars. This | |
139 | needs to be documented, for now it's only visible in udev_rules_parse.c. | |
140 | ||
141 | o The rule keys support now more operations. This is documented in the | |
142 | man page. It is possible to add values to list-keys like the SYMLINK | |
143 | and RUN list with KEY+="value" and to clear the list by assigning KEY="". | |
144 | Also "final"-assignments are supported by using KEY:="value", which will | |
145 | prevent changing the key by any later rule. | |
146 | ||
147 | o kernel 2.6.12 has the "detached_state" attribute removed from | |
148 | sysfs, which was used to recognize sysfs population. We switched that | |
149 | to wait for the "bus" link, which is only available in kernels after 2.6.11. | |
150 | Running this udev version on older kernels may cause a short delay for | |
151 | some events. | |
152 | ||
153 | o To provide infrastructure for persistent device naming, the id programs: | |
154 | scsi_id, vol_id (former udev_volume_id), and ata_id (new) are able now | |
155 | to export the probed data in environment key format: | |
156 | pim:~ # /sbin/ata_id --export /dev/hda | |
157 | ID_MODEL=HTS726060M9AT00 | |
158 | ID_SERIAL=MRH401M4G6UM9B | |
159 | ID_REVISION=MH4OA6BA | |
160 | ||
161 | The following rules: | |
162 | KERNEL="hd*[!0-9]", IMPORT="/sbin/ata_id --export $tempnode" | |
163 | KERNEL="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_MODEL}_$env{ID_SERIAL}" | |
164 | ||
165 | Will create: | |
166 | kay@pim:~> tree /dev/disk | |
167 | /dev/disk | |
168 | |-- by-id | |
169 | | |-- HTS726060M9AT00_MRH401M4G6UM9B -> ../../hda | |
170 | | `-- IBM-Memory_Key -> ../../sda | |
171 | |-- by-label | |
172 | | |-- swap -> ../../hda1 | |
173 | | |-- date -> ../../sda1 | |
174 | | `-- home -> ../../hda3 | |
175 | `-- by-uuid | |
176 | |-- 2E08712B0870F2E7 -> ../../hda3 | |
177 | |-- 9352cfef-7687-47bc-a2a3-34cf136f72e1 -> ../../hda1 | |
178 | |-- E845-7A89 -> ../../sda1 | |
179 | `-- b2a61681-3812-4f13-a4ff-920d70604299 -> ../../hda2 | |
180 | ||
181 | The IMPORT= operation will import these keys in the environment and make | |
182 | it available for later PROGRAM= and RUN= executed programs. The keys are | |
183 | also stored in the udevdb and can be queried from there with one of the | |
184 | next udev versions. | |
185 | ||
186 | o A few binaries are silently added to the repository, which can be used | |
187 | to replay kernel events from initramfs instead of using coldplug. udevd | |
188 | can be instructed now to queue-up events while the stored events from | |
189 | initramfs are filled into the udevd-queue. This code is still under | |
190 | development and there is no documentation now besides the code itself. | |
191 | The additional binaries get compiled, but are not installed by default. | |
192 | ||
193 | o There is also a temporary fix for a performance problem where too many | |
194 | events happen in parallel and every event needs to parse the rules. | |
195 | udev can now read precompiled rules stored on disk. This is likely to be | |
196 | replaced by a more elegant solution in a future udev version. | |
197 | ||
198 | udev 058 | |
199 | ======== | |
200 | With kernel version 2.6.12, the sysfs file "detached_state" was removed. | |
201 | Fix for libsysfs not to expect this file was added. | |
202 | ||
6b493a20 KS |
203 | udev 057 |
204 | ======== | |
e4388fb3 | 205 | All rules are applied now, but only the first matching rule with a NAME-key |
16eb35d1 KS |
206 | will be applied. All later rules with NAME-key are completely ignored. This |
207 | way system supplied symlinks or permissions gets applied to user-defined | |
208 | naming rules. | |
209 | ||
e4388fb3 KS |
210 | Note: |
211 | Please check your rules setup, if you may need to add OPTIONS="last_rule" | |
212 | to some rules, to keep the old behavior. | |
213 | ||
214 | The rules are read on "remove"-events too. That makes is possible to match | |
215 | with keys that are available on remove (KERNEL, SUBSYSTEM, ID, ENV, ...) to | |
16eb35d1 KS |
216 | instruct udev to ignore an event (OPTIONS="ignore_device"). |
217 | The new ACTION-key may be used to let a rule act only at a "remove"-event. | |
e4388fb3 KS |
218 | |
219 | The new RUN-key supports rule-based execution of programs after device-node | |
16eb35d1 KS |
220 | handling. This is meant as a general replacement for the dev.d/-directories |
221 | to give fine grained control over the execution of programs. | |
e4388fb3 KS |
222 | |
223 | The %s{}-sysfs format char replacement values are searched at any of the | |
224 | devices in the device chain now, not only at the class-device. | |
225 | ||
6b493a20 KS |
226 | We support log priority levels now. The value udev_log in udev.conf is used |
227 | to determine what is printed to syslog. This makes it possible to | |
228 | run a version with compiled-in debug messages in a production environment | |
229 | which is sometimes needed to find a bug. | |
230 | It is still possible to supress the inclusion of _any_ syslog usage with | |
231 | USE_LOG=false to create the smallest possible binaries if needed. | |
232 | The configured udev_log value can be overridden with the environment variable | |
233 | UDEV_LOG. | |
234 | ||
7f7ae03a KS |
235 | udev 056 |
236 | ======== | |
237 | Possible use of a system-wide klibc: | |
16eb35d1 | 238 | make USE_KLIBC=true KLCC=/usr/bin/klcc all |
7f7ae03a KS |
239 | will link against an external klibc and our own version will be ignored. |
240 | ||
143139a1 KS |
241 | udev 055 |
242 | ======== | |
243 | We support an unlimited count of symlinks now. | |
244 | ||
245 | If USE_STATIC=true is passed to a glibc build, we link statically and use | |
246 | a built-in userdb parser to resolve user and group names. | |
247 | ||
fc90ce81 | 248 | The PLACE= key is gone. It can be replaced by an ID= for a long time, cause |
143139a1 KS |
249 | we walk up the chain of physical devices to find a match. |
250 | ||
28ce66de | 251 | The KEY="<value>" format supports '=', '==', '!=,' , '+=' now. This makes it |
38285d23 KS |
252 | easy to skip certain attribute matches without composing rules with weird |
253 | character class negations like: | |
28ce66de | 254 | KERNEL="[!s][!c][!d]*" |
38285d23 | 255 | this can now be replaced with: |
28ce66de | 256 | KERNEL!="scd*" |
38285d23 KS |
257 | The current simple '=' is still supported, and should work as it does today, |
258 | but existing rules should be converted if possible, to be better readable. | |
259 | ||
fc90ce81 KS |
260 | We have new ENV{}== key now, to match against a maximum of 5 environment |
261 | variables. | |
0e33828a KS |
262 | |
263 | udevstart is its own binary again, cause we don't need co carry this araound | |
264 | with every forked event. |