diff options
Diffstat (limited to 'rules.d')
-rw-r--r-- | rules.d/50-udev-default.rules.in | 5 | ||||
-rw-r--r-- | rules.d/60-persistent-media-controller.rules | 13 | ||||
-rw-r--r-- | rules.d/60-persistent-storage.rules.in | 13 | ||||
-rw-r--r-- | rules.d/75-net-description.rules | 2 | ||||
-rw-r--r-- | rules.d/99-systemd.rules.in | 16 |
5 files changed, 38 insertions, 11 deletions
diff --git a/rules.d/50-udev-default.rules.in b/rules.d/50-udev-default.rules.in index af4f594..9b00c70 100644 --- a/rules.d/50-udev-default.rules.in +++ b/rules.d/50-udev-default.rules.in @@ -34,10 +34,7 @@ ACTION!="add", GOTO="default_end" SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666" SUBSYSTEM=="tty", KERNEL=="tty", GROUP="tty", MODE="0666" -SUBSYSTEM=="tty", KERNEL=="tty[0-9]*", GROUP="tty", MODE="0620" -SUBSYSTEM=="tty", KERNEL=="sclp_line[0-9]*", GROUP="tty", MODE="0620" -SUBSYSTEM=="tty", KERNEL=="ttysclp[0-9]*", GROUP="tty", MODE="0620" -SUBSYSTEM=="tty", KERNEL=="3270/tty[0-9]*", GROUP="tty", MODE="0620" +SUBSYSTEM=="tty", KERNEL=="tty[0-9]*|hvc[0-9]*|sclp_line[0-9]*|ttysclp[0-9]*|3270/tty[0-9]*", GROUP="tty", MODE="0620" SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty" KERNEL=="tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout" diff --git a/rules.d/60-persistent-media-controller.rules b/rules.d/60-persistent-media-controller.rules new file mode 100644 index 0000000..8c2175c --- /dev/null +++ b/rules.d/60-persistent-media-controller.rules @@ -0,0 +1,13 @@ +# do not edit this file, it will be overwritten on update + +# Media controller rules + +ACTION=="remove", GOTO="persistent_media_ctl_end" +SUBSYSTEM!="media", GOTO="persistent_media_ctl_end" +ENV{MAJOR}=="", GOTO="persistent_media_ctl_end" + +IMPORT{builtin}="path_id" +KERNEL=="media*", ENV{ID_PATH_WITH_USB_REVISION}=="?*", SYMLINK+="media/by-path/$env{ID_PATH_WITH_USB_REVISION}-media-controller" +KERNEL=="media*", ENV{ID_PATH_WITH_USB_REVISION}=="", ENV{ID_PATH}=="?*", SYMLINK+="media/by-path/$env{ID_PATH}-media-controller" + +LABEL="persistent_media_ctl_end" diff --git a/rules.d/60-persistent-storage.rules.in b/rules.d/60-persistent-storage.rules.in index 17a9d08..390c6e0 100644 --- a/rules.d/60-persistent-storage.rules.in +++ b/rules.d/60-persistent-storage.rules.in @@ -147,6 +147,19 @@ ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTE ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}" ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", SYMLINK+="disk/by-partlabel/$env{ID_PART_ENTRY_NAME}" +# by-path/<path>/by-* links (path + partition/filesystem metadata) +ENV{ID_PATH}=="", GOTO="persistent_storage_by-path_parts_end" +ENV{DEVTYPE}!="partition", GOTO="persistent_storage_by-path_parts_end" + +SYMLINK+="disk/by-path/$env{ID_PATH}-part/by-partnum/%n" +ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part/by-partuuid/$env{ID_PART_ENTRY_UUID}" +ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part/by-partlabel/$env{ID_PART_ENTRY_NAME}" + +ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part/by-uuid/$env{ID_FS_UUID_ENC}" +ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-path/$env{ID_PATH}-part/by-label/$env{ID_FS_LABEL_ENC}" + +LABEL="persistent_storage_by-path_parts_end" + # by-diskseq link (if an app is told to open a path like this, they may parse # the diskseq number from the path, then issue BLKGETDISKSEQ to verify they really got # the right device, to access specific disks in a race-free fashion) diff --git a/rules.d/75-net-description.rules b/rules.d/75-net-description.rules index 7e62f8b..5ba70a6 100644 --- a/rules.d/75-net-description.rules +++ b/rules.d/75-net-description.rules @@ -3,6 +3,8 @@ ACTION=="remove", GOTO="net_end" SUBSYSTEM!="net", GOTO="net_end" +IMPORT{builtin}="hwdb 'net:naming:dr$env{ID_NET_DRIVER}:'" + IMPORT{builtin}="net_id" SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb" diff --git a/rules.d/99-systemd.rules.in b/rules.d/99-systemd.rules.in index a99eab9..ad0c7e2 100644 --- a/rules.d/99-systemd.rules.in +++ b/rules.d/99-systemd.rules.in @@ -18,19 +18,18 @@ SUBSYSTEM=="ubi", TAG+="systemd" SUBSYSTEM=="block", TAG+="systemd" -# We can't make any conclusions about suspended DM devices so let's just import previous SYSTEMD_READY state and skip other rules -SUBSYSTEM=="block", ENV{DM_SUSPENDED}=="1", IMPORT{db}="SYSTEMD_READY" -SUBSYSTEM=="block", ENV{DM_SUSPENDED}=="1", GOTO="systemd_end" +# When a dm device is first created, it's just an empty container. Ignore it. +# DM_NAME is not set in this case, but it's set on spurious "add" events that occur later. +SUBSYSTEM=="block", ACTION=="add", KERNEL=="dm-*", ENV{DM_NAME}!="?*", ENV{SYSTEMD_READY}="0" -SUBSYSTEM=="block", ACTION=="add", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}="0" +# DM_UDEV_DISABLE_OTHER_RULES_FLAG==1 means that the device shouldn't be probed. +# Import previous SYSTEMD_READY state. +SUBSYSTEM=="block", ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", ENV{SYSTEMD_READY}=="", IMPORT{db}="SYSTEMD_READY" # Ignore encrypted devices with no identified superblock on it, since # we are probably still calling mke2fs or mkswap on it. SUBSYSTEM=="block", ENV{DM_UUID}=="CRYPT-*", ENV{ID_PART_TABLE_TYPE}=="", ENV{ID_FS_USAGE}=="", ENV{SYSTEMD_READY}="0" -# Explicitly set SYSTEMD_READY=1 for DM devices that don't have it set yet, so that we always have something to import above -SUBSYSTEM=="block", ENV{DM_UUID}=="?*", ENV{SYSTEMD_READY}=="", ENV{SYSTEMD_READY}="1" - # add symlink to GPT root disk SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}!="crypto_LUKS", SYMLINK+="gpt-auto-root" SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}=="crypto_LUKS", SYMLINK+="gpt-auto-root-luks" @@ -85,4 +84,7 @@ SUBSYSTEM=="misc", KERNEL=="rfkill", TAG+="systemd", ENV{SYSTEMD_WANTS}+="system SUBSYSTEM=="module", KERNEL=="fuse", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-fs-fuse-connections.mount" SUBSYSTEM=="module", KERNEL=="configfs", TAG+="systemd", ENV{SYSTEMD_WANTS}+="sys-kernel-config.mount" +# Pull in tpm2.target whenever /dev/tpmrm* shows up +SUBSYSTEM=="tpmrm", KERNEL=="tpmrm[0-9]*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="tpm2.target" + LABEL="systemd_end" |