Skip to content

Commit 247724d

Browse files
committed
Merge suitable rules changes from systemd
Merge up to commit 5674b74c4f99e433fd8e7242e9f16f6ddfece94c - change @bindir@ to {{ROOTBINDIR}} in templates (better future tracking) - keep rules/50-udev-default.rules as plain instead of template - add 60-autosuspend.rules 60-fido-id.rules 70-camera.rules 70-memory.rules 81-net-dhcp.rules
1 parent cf20128 commit 247724d

16 files changed

+173
-31
lines changed

rules/50-udev-default.rules

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,26 @@ SUBSYSTEM=="cec", GROUP="video"
3939
SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="video", MODE="0666"
4040
SUBSYSTEM=="kfd", GROUP="video", MODE="0666"
4141

42+
SUBSYSTEM=="misc", KERNEL=="sgx_enclave", GROUP="sgx", MODE="0660"
43+
SUBSYSTEM=="misc", KERNEL=="sgx_vepc", GROUP="sgx", MODE="0660"
44+
45+
# When using static_node= with non-default permissions, also update
46+
# tmpfiles.d/static-nodes-permissions.conf.in to keep permissions synchronized.
47+
4248
SUBSYSTEM=="sound", GROUP="audio", \
4349
OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer"
4450

4551
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664"
4652

47-
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x00010*", GROUP="video"
48-
SUBSYSTEM=="firewire", ATTR{units}=="*0x00b09d:0x00010*", GROUP="video"
49-
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x010001*", GROUP="video"
50-
SUBSYSTEM=="firewire", ATTR{units}=="*0x00a02d:0x014001*", GROUP="video"
53+
SUBSYSTEM=="firewire", TEST=="units", TEST=="model", \
54+
IMPORT{builtin}="hwdb 'ieee1394:node:ven$attr{vendor}mo$attr{model}units$attr{units}'"
55+
56+
SUBSYSTEM=="firewire", TEST=="units", TEST!="model", \
57+
IMPORT{builtin}="hwdb 'ieee1394:node:ven$attr{vendor}units$attr{units}'"
58+
59+
SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_MIDI}=="1", GROUP="audio"
60+
SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_AUDIO}=="1", GROUP="audio"
61+
SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_VIDEO}=="1", GROUP="video"
5162

5263
KERNEL=="parport[0-9]*", GROUP="lp"
5364
SUBSYSTEM=="printer", KERNEL=="lp*", GROUP="lp"
@@ -81,8 +92,26 @@ KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse"
8192
# The static_node is required on s390x and ppc (they are using MODULE_ALIAS)
8293
KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"
8394

95+
KERNEL=="vfio", MODE="0666", OPTIONS+="static_node=vfio/vfio"
96+
97+
KERNEL=="vsock", MODE="0666"
98+
KERNEL=="vhost-vsock", GROUP="kvm", MODE="0666", OPTIONS+="static_node=vhost-vsock"
99+
100+
KERNEL=="vhost-net", GROUP="kvm", MODE="0666", OPTIONS+="static_node=vhost-net"
101+
102+
KERNEL=="udmabuf", GROUP="kvm"
103+
84104
SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK += "ptp_kvm"
85105

86106
SUBSYSTEM=="ptp", ATTR{clock_name}=="hyperv", SYMLINK += "ptp_hyperv"
87107

108+
SUBSYSTEM!="dmi", GOTO="dmi_end"
109+
ENV{ID_VENDOR}="$attr{sys_vendor}"
110+
ENV{ID_SYSFS_ATTRIBUTE_MODEL}=="|product_name", ENV{ID_MODEL}="$attr{product_name}"
111+
ENV{ID_SYSFS_ATTRIBUTE_MODEL}=="product_version", ENV{ID_MODEL}="$attr{product_version}"
112+
# fallback to board information
113+
ENV{ID_VENDOR}=="", ENV{ID_VENDOR}="$attr{board_vendor}"
114+
ENV{ID_MODEL}=="", ENV{ID_MODEL}="$attr{board_name}"
115+
LABEL="dmi_end"
116+
88117
LABEL="default_end"

rules/60-autosuspend.rules

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# do not edit this file, it will be overwritten on update
2+
3+
ACTION!="add", GOTO="autosuspend_end"
4+
5+
# I2C rules
6+
SUBSYSTEM=="i2c", ATTR{name}=="cyapa", \
7+
ATTR{power/control}="on", GOTO="autosuspend_end"
8+
9+
# Enable autosuspend if hwdb says so. Here we are relying on
10+
# the hwdb import done earlier based on MODALIAS.
11+
ENV{ID_AUTOSUSPEND}=="1", TEST=="power/control", \
12+
ATTR{power/control}="auto"
13+
14+
# Disable USB persist if hwdb says so.
15+
ENV{ID_PERSIST}=="0", TEST=="power/persist", \
16+
ATTR{power/persist}="0"
17+
18+
LABEL="autosuspend_end"

rules/60-block.rules

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,6 @@ ACTION=="add", SUBSYSTEM=="module", KERNEL=="block", ATTR{parameters/events_dfl_
88
ACTION=="change", SUBSYSTEM=="scsi", ENV{DEVTYPE}=="scsi_device", TEST=="block", ATTR{block/*/uevent}="change"
99

1010
# watch metadata changes, caused by tools closing the device node which was opened for writing
11-
ACTION!="remove", SUBSYSTEM=="block", KERNEL=="loop*|nvme*|sd*|vd*|xvd*|pmem*|mmcblk*", OPTIONS+="watch"
11+
ACTION!="remove", SUBSYSTEM=="block", \
12+
KERNEL=="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*", \
13+
OPTIONS+="watch"

rules/60-evdev.rules

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ DRIVERS=="atkbd", \
1313
RUN{builtin}+="keyboard", GOTO="evdev_end"
1414

1515
# device matching the input device name + properties + the machine's DMI data
16-
KERNELS=="input*", IMPORT{builtin}="hwdb 'evdev:name:$attr{name}:phys:$attr{phys}:ev:$attr{capabilities/ev}:$attr{[dmi/id]modalias}'", \
16+
KERNELS=="input*", \
17+
IMPORT{builtin}="hwdb 'evdev:name:$attr{name}:phys:$attr{phys}:ev:$attr{capabilities/ev}:$attr{[dmi/id]modalias}'", \
1718
RUN{builtin}+="keyboard", GOTO="evdev_end"
1819

1920
# device matching the input device name and the machine's DMI data
20-
KERNELS=="input*", IMPORT{builtin}="hwdb 'evdev:name:$attr{name}:$attr{[dmi/id]modalias}'", \
21+
KERNELS=="input*", \
22+
IMPORT{builtin}="hwdb 'evdev:name:$attr{name}:$attr{[dmi/id]modalias}'", \
2123
RUN{builtin}+="keyboard", GOTO="evdev_end"
2224

2325
LABEL="evdev_end"

rules/60-fido-id.rules

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# do not edit this file, it will be overwritten on update
2+
3+
ACTION=="remove", GOTO="fido_id_end"
4+
5+
SUBSYSTEM=="hidraw", IMPORT{program}="fido_id"
6+
7+
# Tag any form of security token as such
8+
ENV{ID_SECURITY_TOKEN}=="1", TAG+="security-device"
9+
10+
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0b????:*", ENV{ID_SMARTCARD_READER}="1"
11+
# Tag any CCID device (i.e. Smartcard Reader) as security token
12+
ENV{ID_SMARTCARD_READER}=="1", TAG+="security-device"
13+
14+
LABEL="fido_id_end"

rules/60-persistent-input.rules

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ SUBSYSTEMS=="usb", ENV{ID_BUS}=="?*", KERNEL=="event*", ENV{.INPUT_CLASS}=="", A
3535
SUBSYSTEMS=="pci|usb|platform|acpi", IMPORT{builtin}="path_id"
3636
ENV{ID_PATH}=="?*", KERNEL=="mouse*|js*", ENV{.INPUT_CLASS}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-$env{.INPUT_CLASS}"
3737
ENV{ID_PATH}=="?*", KERNEL=="event*", ENV{.INPUT_CLASS}=="?*", SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{.INPUT_CLASS}"
38-
# allow empty class for platform and usb devices; platform supports only a single interface that way
39-
SUBSYSTEMS=="usb|platform", ENV{ID_PATH}=="?*", KERNEL=="event*", ENV{.INPUT_CLASS}=="", \
38+
# allow empty class for platform, usb and i2c devices; platform supports only a single interface that way
39+
SUBSYSTEMS=="usb|platform|i2c", ENV{ID_PATH}=="?*", KERNEL=="event*", ENV{.INPUT_CLASS}=="", \
4040
SYMLINK+="input/by-path/$env{ID_PATH}-event"
4141

4242
LABEL="persistent_input_end"

rules/60-persistent-storage-tape.rules

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,26 @@ ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_t
77

88
# type 8 devices are "Medium Changers"
99
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="scsi_id --sg-version=3 --export --whitelisted -d $devnode", \
10-
SYMLINK+="tape/by-id/scsi-$env{ID_SERIAL}"
10+
SYMLINK+="tape/by-id/scsi-$env{ID_SERIAL} tape/by-id/scsi-$env{ID_SERIAL}-changer"
11+
12+
# iSCSI devices from the same host have all the same ID_SERIAL,
13+
# but additionally a property named ID_SCSI_SERIAL.
14+
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="8", ENV{ID_SCSI_SERIAL}=="?*", \
15+
SYMLINK+="tape/by-id/scsi-$env{ID_SCSI_SERIAL}"
16+
17+
SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{builtin}="path_id", \
18+
SYMLINK+="tape/by-path/$env{ID_PATH}-changer"
1119

1220
SUBSYSTEM!="scsi_tape", GOTO="persistent_storage_tape_end"
1321

1422
KERNEL=="st*[0-9]|nst*[0-9]", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"
1523
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"
1624
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", SUBSYSTEMS=="scsi", KERNELS=="[0-9]*:*[0-9]", ENV{.BSG_DEV}="$root/bsg/$id"
1725
KERNEL=="st*[0-9]|nst*[0-9]", ENV{ID_SERIAL}!="?*", IMPORT{program}="scsi_id --whitelisted --export --device=$env{.BSG_DEV}", ENV{ID_BUS}="scsi"
18-
KERNEL=="st*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
19-
KERNEL=="nst*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst"
26+
KERNEL=="st*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}", OPTIONS+="link_priority=10"
27+
KERNEL=="st*[0-9]", ENV{ID_SCSI_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SCSI_SERIAL}"
28+
KERNEL=="nst*[0-9]", ENV{ID_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}-nst"
29+
KERNEL=="nst*[0-9]", ENV{ID_SCSI_SERIAL}=="?*", SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SCSI_SERIAL}-nst"
2030

2131
# by-path (parent device path)
2232
KERNEL=="st*[0-9]|nst*[0-9]", IMPORT{builtin}="path_id"

rules/60-persistent-storage.rules

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,28 @@
66
ACTION=="remove", GOTO="persistent_storage_end"
77
ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_end"
88

9-
SUBSYSTEM!="block", GOTO="persistent_storage_end"
10-
KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|scm*|pmem*|nbd*", GOTO="persistent_storage_end"
9+
SUBSYSTEM!="block|ubi", GOTO="persistent_storage_end"
10+
KERNEL!="loop*|mmcblk*[0-9]|msblk*[0-9]|mspblk*[0-9]|nvme*|sd*|sr*|vd*|xvd*|bcache*|cciss*|dasd*|ubd*|ubi*|scm*|pmem*|nbd*|zd*", GOTO="persistent_storage_end"
1111

1212
# ignore partitions that span the entire disk
1313
TEST=="whole_disk", GOTO="persistent_storage_end"
1414

15-
# for partitions import parent information
16-
ENV{DEVTYPE}=="partition", IMPORT{parent}="ID_*"
15+
# For partitions import parent disk ID_* information, except ID_FS_*.
16+
#
17+
# This is particularly important on media where a filesystem superblock and
18+
# partition table are found on the same level, e.g. common Linux distro ISO
19+
# installation media.
20+
#
21+
# In the case where a partition device points to the same filesystem that
22+
# was detected on the parent disk, the ID_FS_* information is already
23+
# present on the partition devices as well as the parent, so no need to
24+
# propagate it. In the case where the partition device points to a different
25+
# filesystem, merging the parent ID_FS_ properties would lead to
26+
# inconsistencies, so we avoid doing so.
27+
ENV{DEVTYPE}=="partition", \
28+
IMPORT{parent}="ID_[!F]*", IMPORT{parent}="ID_", \
29+
IMPORT{parent}="ID_F[!S]*", IMPORT{parent}="ID_F", \
30+
IMPORT{parent}="ID_FS[!_]*", IMPORT{parent}="ID_FS"
1731

1832
# NVMe
1933
KERNEL=="nvme*[0-9]n*[0-9]", ATTR{wwid}=="?*", SYMLINK+="disk/by-id/nvme-$attr{wwid}"
@@ -22,13 +36,15 @@ KERNEL=="nvme*[0-9]n*[0-9]p*[0-9]", ENV{DEVTYPE}=="partition", ATTRS{wwid}=="?*"
2236
KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{serial}=="?*", ENV{ID_SERIAL_SHORT}="$attr{serial}"
2337
KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{wwid}=="?*", ENV{ID_WWN}="$attr{wwid}"
2438
KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{model}=="?*", ENV{ID_MODEL}="$attr{model}"
39+
KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ATTRS{firmware_rev}=="?*", ENV{ID_REVISION}="$attr{firmware_rev}"
2540
KERNEL=="nvme*[0-9]n*[0-9]", ENV{DEVTYPE}=="disk", ENV{ID_MODEL}=="?*", ENV{ID_SERIAL_SHORT}=="?*", \
26-
ENV{ID_SERIAL}="$env{ID_MODEL}_$env{ID_SERIAL_SHORT}", SYMLINK+="disk/by-id/nvme-$env{ID_SERIAL}"
41+
OPTIONS="string_escape=replace", ENV{ID_SERIAL}="$env{ID_MODEL}_$env{ID_SERIAL_SHORT}", SYMLINK+="disk/by-id/nvme-$env{ID_SERIAL}"
2742

2843
KERNEL=="nvme*[0-9]n*[0-9]p*[0-9]", ENV{DEVTYPE}=="partition", ATTRS{serial}=="?*", ENV{ID_SERIAL_SHORT}="$attr{serial}"
2944
KERNEL=="nvme*[0-9]n*[0-9]p*[0-9]", ENV{DEVTYPE}=="partition", ATTRS{model}=="?*", ENV{ID_MODEL}="$attr{model}"
45+
KERNEL=="nvme*[0-9]n*[0-9]p*[0-9]", ENV{DEVTYPE}=="partition", ATTRS{firmware_rev}=="?*", ENV{ID_REVISION}="$attr{firmware_rev}"
3046
KERNEL=="nvme*[0-9]n*[0-9]p*[0-9]", ENV{DEVTYPE}=="partition", ENV{ID_MODEL}=="?*", ENV{ID_SERIAL_SHORT}=="?*", \
31-
ENV{ID_SERIAL}="$env{ID_MODEL}_$env{ID_SERIAL_SHORT}", SYMLINK+="disk/by-id/nvme-$env{ID_SERIAL}-part%n"
47+
OPTIONS="string_escape=replace", ENV{ID_SERIAL}="$env{ID_MODEL}_$env{ID_SERIAL_SHORT}", SYMLINK+="disk/by-id/nvme-$env{ID_SERIAL}-part%n"
3248

3349
# virtio-blk
3450
KERNEL=="vd*[!0-9]", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/virtio-$env{ID_SERIAL}"
@@ -52,18 +68,19 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}!="?*", IMPORT{program}="s
5268
KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
5369
KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
5470

71+
# PMEM devices
72+
KERNEL=="pmem*", ENV{DEVTYPE}=="disk", ATTRS{uuid}=="?*", SYMLINK+="disk/by-id/pmem-$attr{uuid}"
73+
5574
# FireWire
5675
KERNEL=="sd*[!0-9]|sr*", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}"
5776
KERNEL=="sd*[0-9]", ATTRS{ieee1394_id}=="?*", SYMLINK+="disk/by-id/ieee1394-$attr{ieee1394_id}-part%n"
5877

5978
# MMC
60-
KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ATTRS{serial}=="?*", \
61-
ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"
79+
KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{serial}=="?*", ENV{ID_SERIAL}="$attr{serial}"
80+
KERNEL=="mmcblk[0-9]", SUBSYSTEMS=="mmc", ATTRS{name}=="?*", ENV{ID_NAME}="$attr{name}"
81+
KERNEL=="mmcblk[0-9]", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}"
6282
KERNEL=="mmcblk[0-9]p[0-9]*", ENV{ID_NAME}=="?*", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/mmc-$env{ID_NAME}_$env{ID_SERIAL}-part%n"
6383

64-
# UBI-MTD
65-
SUBSYSTEM=="ubi", KERNEL=="ubi*_*", ATTRS{mtd_num}=="*", SYMLINK+="ubi_mtd%s{mtd_num}_%s{name}"
66-
6784
# Memstick
6885
KERNEL=="msblk[0-9]|mspblk[0-9]", SUBSYSTEMS=="memstick", ATTRS{name}=="?*", ATTRS{serial}=="?*", \
6986
ENV{ID_NAME}="$attr{name}", ENV{ID_SERIAL}="$attr{serial}", SYMLINK+="disk/by-id/memstick-$env{ID_NAME}_$env{ID_SERIAL}"
@@ -74,24 +91,27 @@ ENV{DEVTYPE}=="disk", DEVPATH!="*/virtual/*", IMPORT{builtin}="path_id"
7491
KERNEL=="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-boot%n"
7592
KERNEL!="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}"
7693
ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part%n"
94+
# compatible links for ATA devices
95+
KERNEL!="mmcblk[0-9]boot[0-9]", ENV{DEVTYPE}=="disk", ENV{ID_PATH_ATA_COMPAT}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH_ATA_COMPAT}"
96+
ENV{DEVTYPE}=="partition", ENV{ID_PATH_ATA_COMPAT}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH_ATA_COMPAT}-part%n"
7797

7898
# legacy virtio-pci by-path links (deprecated)
7999
KERNEL=="vd*[!0-9]", ENV{ID_PATH}=="pci-*", SYMLINK+="disk/by-path/virtio-$env{ID_PATH}"
80100
KERNEL=="vd*[0-9]", ENV{ID_PATH}=="pci-*", SYMLINK+="disk/by-path/virtio-$env{ID_PATH}-part%n"
81101

82102
# probe filesystem metadata of optical drives which have a media inserted
83103
KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="?*", \
84-
IMPORT{builtin}="blkid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}"
104+
IMPORT{builtin}="blkid --hint=session_offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}"
85105
# single-session CDs do not have ID_CDROM_MEDIA_SESSION_LAST_OFFSET
86106
KERNEL=="sr*", ENV{DISK_EJECT_REQUEST}!="?*", ENV{ID_CDROM_MEDIA_TRACK_COUNT_DATA}=="?*", ENV{ID_CDROM_MEDIA_SESSION_LAST_OFFSET}=="", \
87107
IMPORT{builtin}="blkid --noraid"
88108

89109
# probe filesystem metadata of disks
90-
KERNEL!="sr*", IMPORT{builtin}="blkid"
110+
KERNEL!="sr*|mmcblk[0-9]boot[0-9]", IMPORT{builtin}="blkid"
91111

92112
# by-label/by-uuid links (filesystem metadata)
93113
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
94-
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
114+
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
95115

96116
# by-id (World Wide Name)
97117
ENV{DEVTYPE}=="disk", ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION}"
@@ -101,4 +121,9 @@ ENV{DEVTYPE}=="partition", ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-i
101121
ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}"
102122
ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", SYMLINK+="disk/by-partlabel/$env{ID_PART_ENTRY_NAME}"
103123

124+
# by-diskseq link (if an app is told to open a path like this, they may parse
125+
# the diskseq number from the path, then issue BLKGETDISKSEQ to verify they really got
126+
# the right device, to access specific disks in a race-free fashion)
127+
ENV{DISKSEQ}=="?*", ENV{DEVTYPE}!="partition", SYMLINK+="disk/by-diskseq/$env{DISKSEQ}"
128+
104129
LABEL="persistent_storage_end"

rules/60-sensor.rules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
ACTION=="remove", GOTO="sensor_end"
44

55
# device matching the sensor's name and the machine's DMI data for IIO devices
6-
SUBSYSTEM=="iio", KERNEL=="iio*", SUBSYSTEMS=="usb|i2c", \
6+
SUBSYSTEM=="iio", KERNEL=="iio*", SUBSYSTEMS=="usb|i2c|platform", \
77
IMPORT{builtin}="hwdb 'sensor:modalias:$attr{modalias}:$attr{[dmi/id]modalias}'", \
88
GOTO="sensor_end"
99

rules/64-btrfs.rules.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
SUBSYSTEM!="block", GOTO="btrfs_end"
44
ACTION=="remove", GOTO="btrfs_end"
55
ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_end"
6+
ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end"
67

78
# let the kernel know about this btrfs filesystem, and check if it is complete
89
IMPORT{builtin}="btrfs ready $devnode"
@@ -11,6 +12,6 @@ IMPORT{builtin}="btrfs ready $devnode"
1112
ENV{ID_BTRFS_READY}=="0", ENV{SYSTEMD_READY}="0"
1213

1314
# reconsider pending devices in case when multidevice volume awaits
14-
ENV{ID_BTRFS_READY}=="1", RUN+="@bindir@/udevadm trigger -s block -p ID_BTRFS_READY=0"
15+
ENV{ID_BTRFS_READY}=="1", RUN+="{{ROOTBINDIR}}/udevadm trigger -s block -p ID_BTRFS_READY=0"
1516

1617
LABEL="btrfs_end"

0 commit comments

Comments
 (0)