mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-31 16:21:11 +03:00
511 lines
19 KiB
Plaintext
511 lines
19 KiB
Plaintext
udev 094
|
|
========
|
|
The built-in MODALIAS key and substitution is removed.
|
|
|
|
udev 093
|
|
========
|
|
The binary firmware helper is replaced by the usual simple
|
|
shell script. Udevsend is removed from the tree.
|
|
|
|
udev 092
|
|
========
|
|
Bugfix release.
|
|
|
|
udev 091
|
|
========
|
|
Some more keys require the correct use of '==' and '=' depending
|
|
on the kind of operation beeing an assignment or a match. Rules
|
|
with invalid operations are skipped and logged to syslog. Please
|
|
test with udevtest if the parsing of your rules throws errors and
|
|
fix possibly broken rules.
|
|
|
|
udev 090
|
|
========
|
|
Provide "udevsettle" to wait for all current udev events to finish.
|
|
It also watches the current kernel netlink queue by comparing the
|
|
even sequence number to make sure that there are no current pending
|
|
events that have not already arrived in the daemon.
|
|
|
|
udev 089
|
|
========
|
|
Fix rule to skip persistent rules for removable IDE devices, which
|
|
also skipped optical IDE drives.
|
|
|
|
All *_id program are installed in /lib/udev/ by default now.
|
|
|
|
No binary is stripped anymore as this should be done in the
|
|
packaging process and not at build time.
|
|
|
|
libvolume_id is provided as a shared library now and vol_id is
|
|
linked against it. Also one of the next HAL versions will require
|
|
this library, and the HAL build process will also require the
|
|
header file to be installed. The copy of the same code in HAL will
|
|
be removed to have only a single copy left on the system.
|
|
|
|
udev 088
|
|
========
|
|
Add persistent links for SCSI tapes. The rules file is renamed
|
|
to 60-persistent-storage.rules.
|
|
|
|
Create persistent path for usb devices. Can be used for all sorts
|
|
of devices that can't be distinguished by other properties like
|
|
multiple identical keyboards and mice connected to the same box.
|
|
|
|
Provide "udevtrigger" program to request events on coldplug. The
|
|
shell script is much too slow with thousends of devices.
|
|
|
|
udev 087
|
|
========
|
|
Fix persistent disk rules to exclude removable IDE drives.
|
|
|
|
Warn if %e, $modalias or MODALIAS is used.
|
|
|
|
udev 086
|
|
========
|
|
Fix queue export, which wasn't correct for subsequent add/remove
|
|
events for the same device.
|
|
|
|
udev 085
|
|
========
|
|
Fix cramfs detection on big endian.
|
|
|
|
Make WAIT_FOR_SYSFS usable in "normal" rules and silent if the whole
|
|
device goes away.
|
|
|
|
udev 084
|
|
========
|
|
If BUS== and SYSFS{}== have been used in the same rule, the sysfs
|
|
attributes were only checked at the parent device that matched the
|
|
by BUS requested subsystem. Fix it to also look at the device we
|
|
received the event for.
|
|
|
|
Build variable CROSS has changed to CROSS_COMPILE to match the kernel
|
|
build name.
|
|
|
|
udev 083
|
|
========
|
|
Fix a bug where NAME="" would prevent RUN from beeing executed.
|
|
|
|
RUN="/bin/program" does not longer automatically add the subsystem
|
|
as the first parameter. This is from the days of /sbin/hotplug
|
|
which is dead now and it's just confusing to need to add a space at
|
|
the end of the program name to prevent this.
|
|
If you use rules that need the subsystem as the first parameter,
|
|
like the old "udev_run_hotlugd" and "udev_run_devd", add the subsystem
|
|
to the key like RUN+="/bin/program $env{SUBSYSTEM}".
|
|
|
|
udev 082
|
|
========
|
|
The udev man page has moved to udev(7) as it does not describe a command
|
|
anymore. The programs udev, udevstart and udevsend are no longer installed
|
|
by default and must be copied manually, if they should be installed or
|
|
included in a package.
|
|
|
|
Fix a bug where "ignore_device" could run earlier collected RUN keys before
|
|
the ignore rule was applied.
|
|
|
|
More preparation for future sysfs changes. usb_id and scsi_id no longer
|
|
depend on a magic order of devices in the /devices chain. Specific devices
|
|
should be requested by their subsytem.
|
|
|
|
This will always find the scsi parent device without depending on a specific
|
|
path position:
|
|
dev = sysfs_device_get(devpath);
|
|
dev_usb = sysfs_device_get_parent_with_subsystem(dev, "scsi");
|
|
|
|
The "device" link in the current sysfs layout will be automatically
|
|
_resolved_ as a parent and in the new sysfs layout it will just _be_ the
|
|
parent in the devpath. If a device is requested by it's symlink, like all
|
|
class devices in the new sysfs layout will look like, it gets automatically
|
|
resolved and substituted with the real devpath and not the symlink path.
|
|
|
|
Note:
|
|
A similar logic must be applied to _all_ sysfs users, including
|
|
scripts, that search along parent devices in sysfs. The explicit use of
|
|
the "device" link must be avoided. With the future sysfs layout all
|
|
DEVPATH's will start with /devices/ and have a "subsystem" symlink poiting
|
|
back to the "class" or the "bus". The layout of the parent devices in
|
|
/devices is not necessarily expected to be stable across kernel releases and
|
|
searching for parents by their subsystem should make sysfs users tolerant
|
|
for changed parent chains.
|
|
|
|
udev 081
|
|
========
|
|
Prepare udev to work with the experimental kernel patch, that moves
|
|
/sys/class devices to /sys/devices and /sys/block to /sys/class/block.
|
|
|
|
Clarify BUS, ID, $id usage and fix $id behavior. This prepares for
|
|
moving the class devices to /sys/devices.
|
|
|
|
Thanks again to Marco for help finding a hopefully nice compromise
|
|
to make %b simpler and working again.
|
|
|
|
udev 080
|
|
========
|
|
Complete removal of libsysfs, replaced by simple helper functions
|
|
which are much simpler and a bit faster. The udev daemon operatesentirely
|
|
on event parameters and does not use sysfs for simple rules anymore.
|
|
Please report any new bugs/problems, that may be caused by this big
|
|
change. They will be fixed immediately.
|
|
|
|
The enumeration format character '%e' is deprecated and will be
|
|
removed sometimes from a future udev version. It never worked correctly
|
|
outside of udevstart, so we can't use it with the new parallel
|
|
coldplug. A simple enumeration is as useless as the devfs naming
|
|
scheme, just get rid of both if you still use it.
|
|
|
|
MODALIAS and $modalias is not needed and will be removed from one of
|
|
the next udev versions, replace it in all rules with ENV{MODALIAS} or
|
|
the sysfs "modalias" value.
|
|
|
|
Thanks a lot to Marco for all his help on finding and fixing bugs.
|
|
|
|
udev 079
|
|
========
|
|
Let scsi_id request libata drive serial numbers from page 0x80.
|
|
|
|
Renamed etc/udev/persistent.rules to persistent-disk.rules and
|
|
added /dev/disk/by-name/* for device mapper device names.
|
|
|
|
Removed %e from the man page. It never worked reliably outside
|
|
of udevstart and udevstart is no longer recommended to use.
|
|
|
|
udev 078
|
|
========
|
|
Symlinks are now exported to the event environment. Hopefully it's no
|
|
longer needed to run udevinfo from an event process, like it was
|
|
mentioned on the hotplug list:
|
|
UDEV [1134776873.702967] add@/block/sdb
|
|
...
|
|
DEVNAME=/dev/sdb
|
|
DEVLINKS=/dev/disk/by-id/usb-IBM_Memory_Key_0218B301030027E8 /dev/disk/by-path/usb-0218B301030027E8:0:0:0
|
|
|
|
udev 077
|
|
========
|
|
Fix a problem if udevsend is used as the hotplug handler and tries to use
|
|
syslog, which causes a "vc" event loop. 2.6.15 will make udevsend obsolete
|
|
and this kind of problems will hopefully go away soon.
|
|
|
|
udev 076
|
|
========
|
|
All built-in logic to work around bad sysfs timing is removed with this
|
|
version. The need to wait for sysfs files is almost fixed with a kernel
|
|
version that doesn't work with this udev version anyway. Until we fix
|
|
the timing of the "bus" link creation, the former integrated logic should
|
|
be emulated by a rule placed before all other rules:
|
|
ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus"
|
|
|
|
The option "udev_db" does no longer exist. All udev state will be in
|
|
/$udev_root/.udev/ now, there is no longer an option to set this
|
|
to anything else.
|
|
If the init script or something else used this value, just depend on
|
|
this hardcoded path. But remember _all_content_ of this directory is
|
|
still private to udev and can change at any time.
|
|
|
|
Default location for rule sripts and helper programs is now: /lib/udev/.
|
|
Everything that is not useful on the commandline should go into this
|
|
directory. Some of the helpers in the extras folder are installed there
|
|
now. The rules need to be changed, to find the helpers there.
|
|
|
|
Also /lib/udev/devices is recommended as a directory where packages or
|
|
the user can place real device nodes, which get copied over to /dev at
|
|
every boot. This should replace the various solutions with custom config
|
|
files.
|
|
|
|
Udevsend does no longer start the udev daemon. This must be done with
|
|
the init script that prepares /dev on tmpfs and creates the initial nodes,
|
|
before starting the daemon.
|
|
|
|
udev 075
|
|
========
|
|
Silent a too verbose error logging for the old hotplug.d/ dev.d/
|
|
emulation.
|
|
|
|
The copy of klibc is removed. A systemwide installed version of klibc
|
|
should be used to build a klibc udev now.
|
|
|
|
udev 074
|
|
========
|
|
NAME="" will not create any nodes, but execute RUN keys. To completely
|
|
ignore an event the OPTION "ignore_device" should be used.
|
|
|
|
After removal of the reorder queue, events with a TIMEOUT can be executed
|
|
without any queuing now.
|
|
|
|
udev 073
|
|
========
|
|
Fixed bug in udevd, if inotify is not available. We depend on netlink
|
|
uevents now, kernels without that event source will not work with that
|
|
version of udev anymore.
|
|
|
|
udev 072
|
|
========
|
|
The rule parsing happens now in the daemon once at startup, all udev
|
|
event processes inherit the already parsed rules from the daemon.
|
|
It is shipped with SUSE10.0 and reduces heavily the system load at
|
|
startup. The option to save precompiled rules and let the udev process
|
|
pick the them up is removed, as it's no longer needed.
|
|
|
|
Kernel 2.6.15 will have symlinks at /class/input pointing to the real
|
|
device. Libsysfs is changed to "translate" the requested link into the
|
|
real device path, as it would happen with the hotplug event. Otherwise
|
|
device removal and the udev database will not work.
|
|
|
|
Using 'make STRIPCMD=' will leave the binaries unstripped for debugging
|
|
and packaging.
|
|
|
|
A few improvements for vol_id, the filesytem probing code.
|
|
|
|
udev 071
|
|
========
|
|
Fix a stupid typo in extras/run_directory for "make install".
|
|
|
|
scsi_id creates the temporary devnode now in /dev for usage with a
|
|
non-writable /tmp directory.
|
|
|
|
The uevent kernel socket buffer can carry app. 50.000 events now,
|
|
let's see who can break this again. :)
|
|
|
|
The upcoming kernel will have a new input driver core integration.
|
|
Some class devices are now symlinks to the real device. libsysfs
|
|
needs a fix for this to work correctly. Udevstart of older udev
|
|
versions will _not_ create these devices!
|
|
|
|
udev 070
|
|
========
|
|
Fix a 'install' target in the Makefile, that prevents EXTRAS from
|
|
beeing installed.
|
|
|
|
udev 069
|
|
========
|
|
A bunch of mostly trivial bugfixes. From now on no node name or
|
|
symlink name can contain any character than plain whitelisted ascii
|
|
characters or validated utf8 byte-streams. This is needed for the
|
|
/dev/disk/by-label/* links, because we import untrusted data and
|
|
export it to the filesystem.
|
|
|
|
udev 068
|
|
========
|
|
More bugfixes. If udevd was started from the kernel, we don't
|
|
have stdin/stdout/stderr, which broke the forked tools in some
|
|
situations.
|
|
|
|
udev 067
|
|
========
|
|
Bugfix. udevstart event ordering was broken for a long time.
|
|
The new run_program() uncovered it, because /dev/null was not
|
|
available while we try to run external programs.
|
|
Now udevstart should create it before we run anything.
|
|
|
|
udev 066
|
|
========
|
|
Minor bugfixes and some distro rules updates. If you don't have the
|
|
persistent disk rules in /dev/disk/by-*/* on your distro, just
|
|
grab it from here. :)
|
|
|
|
udev 065
|
|
========
|
|
We can use socket communication now to pass events from udev to
|
|
other programs:
|
|
RUN+="socket:/org/freedesktop/hal/udev_event"
|
|
will pass the whole udev event to the HAL daemon without the need
|
|
for a forked helper. (See ChangeLog for udevmonitor, as an example)
|
|
|
|
udev 064
|
|
========
|
|
Mostly bugfixes and see ChangeLog.
|
|
|
|
The test for the existence of an environment value should be
|
|
switched from:
|
|
ENV{KEY}=="*" to ENV{KEY}=="?*"
|
|
because "*" will not fail anymore, if the key does not exist or
|
|
is empty.
|
|
|
|
udev 063
|
|
========
|
|
Bugfixes and a few tweaks described in the ChangeLog.
|
|
|
|
udev 062
|
|
========
|
|
Mostly a Bugfix release.
|
|
|
|
Added WAIT_FOR_SYSFS="<attribute>" to be able to fight against the sysfs
|
|
timing with custom rules.
|
|
|
|
udev 061
|
|
========
|
|
We changed the internal rule storage format. Our large rule files took
|
|
2 MB of RAM, with the change we are down to 99kB.
|
|
|
|
If the device-node has been created with default name and no symlink or
|
|
options are to remenber, it is not longer stored in the udevdb. HAL will
|
|
need to be updated to work correctly with that change.
|
|
|
|
To overrride optimization flags, OPTFLAGS may be used now.
|
|
|
|
udev 060
|
|
========
|
|
Bugfix release.
|
|
|
|
udev 059
|
|
========
|
|
Major changes happened with this release. The goal is to take over the
|
|
complete kernel-event handling and provide a more efficient way to dispatch
|
|
kernel events. Replacing most of the current shell script logic and the
|
|
kernel forked helper with a netlink-daemon and a rule-based event handling.
|
|
|
|
o udevd listens to netlink events now. The first valid netlink event
|
|
will make udevd ignore any message from udevsend that contains a
|
|
SEQNUM, to avoid duplicate events. The forked events can be disabled
|
|
with:
|
|
echo "" > /proc/sys/kernel/hotplug
|
|
For full support, the broken input-subsytem needs to be fixed, not to
|
|
bypass the driver core.
|
|
|
|
o /etc/dev.d/ + /etc/hotplug.d/ directory multiplexing is completely
|
|
removed from udev itself and must be emulated by calling small
|
|
helper binaries provided in the extras folder:
|
|
make EXTRAS=extras/run_directory/
|
|
will build udev_run_devd and udev_run_hotplugd, which can be called
|
|
from a rule if needed:
|
|
RUN+="/sbin/udev_run_hotplugd"
|
|
The recommended way to handle this is to convert all the calls from
|
|
the directories to explicit udev rules and get completely rid of the
|
|
multiplexing. (To catch a ttyUSB event, you now no longer need to
|
|
fork and exit 300 tty script instances you are not interested in, it
|
|
is just one rule that matches exactly the device.)
|
|
|
|
o udev handles now _all_ events not just events for class and block
|
|
devices, this way it is possible to control the complete event
|
|
behavior with udev rules. Especially useful for rules like:
|
|
ACTION="add", DEVPATH="/devices/*", MODALIAS=="?*", RUN+="/sbin/modprobe $modalias"
|
|
|
|
o As used in the modalias rule, udev supports now textual
|
|
substitution placeholder along with the usual format chars. This
|
|
needs to be documented, for now it's only visible in udev_rules_parse.c.
|
|
|
|
o The rule keys support now more operations. This is documented in the
|
|
man page. It is possible to add values to list-keys like the SYMLINK
|
|
and RUN list with KEY+="value" and to clear the list by assigning KEY="".
|
|
Also "final"-assignments are supported by using KEY:="value", which will
|
|
prevent changing the key by any later rule.
|
|
|
|
o kernel 2.6.12 has the "detached_state" attribute removed from
|
|
sysfs, which was used to recognize sysfs population. We switched that
|
|
to wait for the "bus" link, which is only available in kernels after 2.6.11.
|
|
Running this udev version on older kernels may cause a short delay for
|
|
some events.
|
|
|
|
o To provide infrastructure for persistent device naming, the id programs:
|
|
scsi_id, vol_id (former udev_volume_id), and ata_id (new) are able now
|
|
to export the probed data in environment key format:
|
|
pim:~ # /sbin/ata_id --export /dev/hda
|
|
ID_MODEL=HTS726060M9AT00
|
|
ID_SERIAL=MRH401M4G6UM9B
|
|
ID_REVISION=MH4OA6BA
|
|
|
|
The following rules:
|
|
KERNEL="hd*[!0-9]", IMPORT="/sbin/ata_id --export $tempnode"
|
|
KERNEL="hd*[!0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_MODEL}_$env{ID_SERIAL}"
|
|
|
|
Will create:
|
|
kay@pim:~> tree /dev/disk
|
|
/dev/disk
|
|
|-- by-id
|
|
| |-- HTS726060M9AT00_MRH401M4G6UM9B -> ../../hda
|
|
| `-- IBM-Memory_Key -> ../../sda
|
|
|-- by-label
|
|
| |-- swap -> ../../hda1
|
|
| |-- date -> ../../sda1
|
|
| `-- home -> ../../hda3
|
|
`-- by-uuid
|
|
|-- 2E08712B0870F2E7 -> ../../hda3
|
|
|-- 9352cfef-7687-47bc-a2a3-34cf136f72e1 -> ../../hda1
|
|
|-- E845-7A89 -> ../../sda1
|
|
`-- b2a61681-3812-4f13-a4ff-920d70604299 -> ../../hda2
|
|
|
|
The IMPORT= operation will import these keys in the environment and make
|
|
it available for later PROGRAM= and RUN= executed programs. The keys are
|
|
also stored in the udevdb and can be queried from there with one of the
|
|
next udev versions.
|
|
|
|
o A few binaries are silently added to the repository, which can be used
|
|
to replay kernel events from initramfs instead of using coldplug. udevd
|
|
can be instructed now to queue-up events while the stored events from
|
|
initramfs are filled into the udevd-queue. This code is still under
|
|
development and there is no documentation now besides the code itself.
|
|
The additional binaries get compiled, but are not installed by default.
|
|
|
|
o There is also a temporary fix for a performance problem where too many
|
|
events happen in parallel and every event needs to parse the rules.
|
|
udev can now read precompiled rules stored on disk. This is likely to be
|
|
replaced by a more elegant solution in a future udev version.
|
|
|
|
udev 058
|
|
========
|
|
With kernel version 2.6.12, the sysfs file "detached_state" was removed.
|
|
Fix for libsysfs not to expect this file was added.
|
|
|
|
udev 057
|
|
========
|
|
All rules are applied now, but only the first matching rule with a NAME-key
|
|
will be applied. All later rules with NAME-key are completely ignored. This
|
|
way system supplied symlinks or permissions gets applied to user-defined
|
|
naming rules.
|
|
|
|
Note:
|
|
Please check your rules setup, if you may need to add OPTIONS="last_rule"
|
|
to some rules, to keep the old behavior.
|
|
|
|
The rules are read on "remove"-events too. That makes is possible to match
|
|
with keys that are available on remove (KERNEL, SUBSYSTEM, ID, ENV, ...) to
|
|
instruct udev to ignore an event (OPTIONS="ignore_device").
|
|
The new ACTION-key may be used to let a rule act only at a "remove"-event.
|
|
|
|
The new RUN-key supports rule-based execution of programs after device-node
|
|
handling. This is meant as a general replacement for the dev.d/-directories
|
|
to give fine grained control over the execution of programs.
|
|
|
|
The %s{}-sysfs format char replacement values are searched at any of the
|
|
devices in the device chain now, not only at the class-device.
|
|
|
|
We support log priority levels now. The value udev_log in udev.conf is used
|
|
to determine what is printed to syslog. This makes it possible to
|
|
run a version with compiled-in debug messages in a production environment
|
|
which is sometimes needed to find a bug.
|
|
It is still possible to supress the inclusion of _any_ syslog usage with
|
|
USE_LOG=false to create the smallest possible binaries if needed.
|
|
The configured udev_log value can be overridden with the environment variable
|
|
UDEV_LOG.
|
|
|
|
udev 056
|
|
========
|
|
Possible use of a system-wide klibc:
|
|
make USE_KLIBC=true KLCC=/usr/bin/klcc all
|
|
will link against an external klibc and our own version will be ignored.
|
|
|
|
udev 055
|
|
========
|
|
We support an unlimited count of symlinks now.
|
|
|
|
If USE_STATIC=true is passed to a glibc build, we link statically and use
|
|
a built-in userdb parser to resolve user and group names.
|
|
|
|
The PLACE= key is gone. It can be replaced by an ID= for a long time, because
|
|
we walk up the chain of physical devices to find a match.
|
|
|
|
The KEY="<value>" format supports '=', '==', '!=,' , '+=' now. This makes it
|
|
easy to skip certain attribute matches without composing rules with weird
|
|
character class negations like:
|
|
KERNEL="[!s][!c][!d]*"
|
|
this can now be replaced with:
|
|
KERNEL!="scd*"
|
|
The current simple '=' is still supported, and should work as it does today,
|
|
but existing rules should be converted if possible, to be better readable.
|
|
|
|
We have new ENV{}== key now, to match against a maximum of 5 environment
|
|
variables.
|
|
|
|
udevstart is its own binary again, because we don't need co carry this araound
|
|
with every forked event.
|