1 | Purpose of rules file:
|
---|
2 |
|
---|
3 | The kernel does not always fully populate a given kobject's attributes before
|
---|
4 | sending the uevent for that kobject. This means that a given sysfs directory
|
---|
5 | may not have all the required files in it (each directory corresponds to a
|
---|
6 | kobject, and each file corresponds to an attribute).
|
---|
7 |
|
---|
8 | Therefore, we must sometimes wait for attributes to show up when devices are
|
---|
9 | discovered. This is accomplished by udev's WAIT_FOR_SYSFS rule types.
|
---|
10 |
|
---|
11 |
|
---|
12 | Description of rules:
|
---|
13 |
|
---|
14 | All rules in this file match ACTION="add", because none of them apply when
|
---|
15 | devices are being removed.
|
---|
16 |
|
---|
17 | SUBSYSTEM is the kernel subsystem that the device uses. Current kernels have
|
---|
18 | some issues with SCSI device attributes being created too late. For any device
|
---|
19 | with a SUBSYSTEM of scsi, we must wait for the ioerr_cnt attribute. (This is
|
---|
20 | the last attribute created for SCSI devices, so when this attribute appears,
|
---|
21 | the kobject is fully populated.)
|
---|
22 |
|
---|
23 | It is also possible to use SUBSYSTEMS in Udev rules. Using SUBSYSTEMS would
|
---|
24 | cause Udev to search up the device tree for a matching SUBSYSTEM value. (Note
|
---|
25 | that "the device tree" is not necessarily the same as the path under /sys (the
|
---|
26 | DEVPATH). Rather, "up the device tree" is the path followed by udevinfo when
|
---|
27 | it is given the argument "-a".)
|
---|
28 |
|
---|
29 | We do not use SUBSYSTEMS in this rule, because we only care about the SUBSYSTEM
|
---|
30 | of the kobject in question. We don't care about devices that are children of
|
---|
31 | SCSI devices, only the SCSI device itself. We will use SUBSYSTEMS in later
|
---|
32 | rules, though.
|
---|
33 |
|
---|