Kay Sievers [Sun, 18 Sep 2005 02:49:23 +0000 (04:49 +0200)]
scsi_id: switch temporary node creation to /dev
/tmp is not writable on most systems, so just use /dev to create a
temporary node. If called from a udev rule, "-d $tempnode" should be
used and udev will create a temporary node and pass the name before
calling scsi_id.
Also remove gen_scsi_id_udev_rules.sh per Patrick's request, as it's
no longer needed with the persistent disk links.
Edward Goggin [Wed, 14 Sep 2005 18:23:48 +0000 (20:23 +0200)]
scsi_id: derive a UID for a SCSI-2 not compliant with the page 83
This patch is to enable the use of scsi_id to derive a UID for a SCSI-2
device which is not compliant with the page 83 inquiry reply format for
either SPC-2 or SPC-3. In this case, the page 83 reply does not
contain a list of Identification descriptors but a single binary encoded
hexa-decimal Vendor Specified Identifier.
The update is being driven by the need for scsi_id to support older
model EMC Symmetrix hardware, that is, models 4, 5, and 6.
Kay Sievers [Tue, 30 Aug 2005 02:41:42 +0000 (04:41 +0200)]
write man page masters in DocBook XML
The troff man pages will still be checked into the tree but the
source is DocBook XML format living in the docs/ directory now.
Start with the easy ones, the main udev page is still left to
rewrite.
Kay Sievers [Sun, 28 Aug 2005 23:19:02 +0000 (01:19 +0200)]
remove special TIMEOUT handling from incoming queue
Moving events directly to the exec queue instead of the reordering
incoming queue, leaves holes in the sequence, that lead to timeouts for
all other events. Remove that part of the special handling.
(With netlink, events can't get out-of-order and the maximum timeout is 5
seconds and should not cause any trouble with the 10 sec timout for the
firmware class anyway. Events with timeouts are still prioritized for
execution, but don't bypass the incoming queue anymore.)
Many thanks to:
Uberto Barbini <uberto@ubiland.net>
for his endless debugging and sending all the traces, that showed this
failure with his DVB device:
UEVENT[1124474094] add@/module/stv0299
UEVENT[1124474094] add@/module/ves1x93
UEVENT[1124474094] add@/module/ttpci_eeprom
UEVENT[1124474094] add@/module/saa7146
UEVENT[1124474094] add@/module/video_buf
UEVENT[1124474094] add@/module/saa7146_vv
UEVENT[1124474094] add@/module/dvb_core
UEVENT[1124474094] add@/module/dvb_ttpci
UEVENT[1124474094] add@/bus/pci/drivers/dvb
UEVENT[1124474094] add@/class/firmware/0000:00:14.0
UDEV [1124474094] add@/module/dvb_core
UDEV [1124474094] add@/module/saa7146_vv
UDEV [1124474094] add@/module/dvb_ttpci
UDEV [1124474094] add@/module/ves1x93
UDEV [1124474094] add@/module/ttpci_eeprom
UDEV [1124474094] add@/module/saa7146
UDEV [1124474094] add@/module/stv0299
UDEV [1124474094] add@/module/video_buf
UDEV [1124474094] add@/bus/pci/drivers/dvb
UEVENT[1124474094] remove@/class/firmware/0000:00:14.0 <- event with TIMEOUT will leave a hole in the incoming
UDEV [1124474094] add@/class/firmware/0000:00:14.0 sequence, which will cause a wait for the alarm()
UEVENT[1124474094] add@/class/i2c-adapter/i2c-1 that flushes the queue
UEVENT[1124474094] add@/class/i2c-dev/i2c-1
UDEV [1124474094] remove@/class/firmware/0000:00:14.0 <- event also has TIMEOUT and is executed immediately
UEVENT[1124474095] add@/class/dvb/dvb0.demux0
UEVENT[1124474095] add@/class/dvb/dvb0.dvr0
UEVENT[1124474095] add@/class/dvb/dvb0.video0
UEVENT[1124474095] add@/class/dvb/dvb0.audio0
UEVENT[1124474095] add@/class/dvb/dvb0.ca0
UEVENT[1124474095] add@/class/dvb/dvb0.osd0
UEVENT[1124474095] add@/class/dvb/dvb0.net0
UEVENT[1124474095] add@/class/video4linux/video1
UEVENT[1124474095] add@/class/dvb/dvb0.frontend0
UDEV [1124474099] add@/class/i2c-adapter/i2c-1 <- all others have 5 seconds delay cause of the missing event
UDEV [1124474099] add@/class/dvb/dvb0.ca0 missing events
UDEV [1124474099] add@/class/dvb/dvb0.osd0
UDEV [1124474099] add@/class/video4linux/video1
UDEV [1124474099] add@/class/dvb/dvb0.frontend0
UDEV [1124474099] add@/class/dvb/dvb0.video0
UDEV [1124474099] add@/class/dvb/dvb0.audio0
UDEV [1124474099] add@/class/i2c-dev/i2c-1
UDEV [1124474099] add@/class/dvb/dv
My test program that simulates a similar sequence, runs without any delay
now. (With one of the next versions we will make netlink mandatory, then
we can remove the whole input queue crap with the reordering anyway.)
Kay Sievers [Sun, 28 Aug 2005 13:55:58 +0000 (15:55 +0200)]
start to enforce plain ascii or valid utf8
No device node or symlink can have other characters as plain
readable ascii or valid utf8. The /dev/disk/by-label/* symlinks
can no longer contain weird stuff read from untrusted sources.
Kay Sievers [Sun, 28 Aug 2005 11:49:32 +0000 (13:49 +0200)]
add uft8 validation for safe volume label exporting
We will not support any other character encoding than plain ascii
or utf8 for volume labels. All invalid utf8 and non-ascii characters
are substituted for security reasons. No options, no fancy heuristics.
Kay Sievers [Fri, 26 Aug 2005 19:38:18 +0000 (21:38 +0200)]
store ENV{key}="value" exported keys in the database
Just like the IMPORT values are stored in the udev database the
exported keys are stored in the udev database. The database is also
imported on a remove event before the rules are matched. So it
is possible to do:
ACTION=="add", KERNEL=="sda", ENV{MY_DEVICE}="1234", RUN+="/bin/logger add $devpath"
ACTION=="remove", ENV{MY_DEVICE}=="1234", RUN+="/bin/logger remove $devpath"
Kay Sievers [Thu, 18 Aug 2005 11:07:15 +0000 (13:07 +0200)]
bring std(in|out|err) fd's in a sane state
If the kernel forks us as an usermodhelper, we don't have any of
the standard fd's and the first open() will start with fd=0.
This is inherited to all forked childs and confuses later forked
helpers where we want to read from a pipe connected to the helpers
stdout/stderr.
Kay Sievers [Tue, 16 Aug 2005 02:25:20 +0000 (04:25 +0200)]
ENV{TEST}=="1" compares and ENV{TEST}="1" sets the environment
This can be uses to export stuff to the event environment or
to carry a state from one rule to another, like enabling/disabling
later rules conditionally.
Kay Sievers [Fri, 12 Aug 2005 00:07:50 +0000 (02:07 +0200)]
fix make install, as we don't provide a default rule set anymore
Several people complained about the "default" rules and the "default"
setup. Here we start to remove things where we can't hava a "default".
The best examples for rules are in the distro folders, just pick the one
that matches your needs and start from there.