Current Dir: /snap/core22/2437/usr/lib/udev/rules.d/

[FILE] 40-vm-hotadd.rules [ edit | delete | rename ]
[FILE] 50-firmware.rules [ edit | delete | rename ]
[FILE] 50-udev-default.rules [ edit | delete | rename ]
[FILE] 55-dm.rules [ edit | delete | rename ]
[FILE] 60-autosuspend.rules [ edit | delete | rename ]
[FILE] 60-block.rules [ edit | delete | rename ]
[FILE] 60-cdrom_id.rules [ edit | delete | rename ]
[FILE] 60-drm.rules [ edit | delete | rename ]
[FILE] 60-evdev.rules [ edit | delete | rename ]
[FILE] 60-fido-id.rules [ edit | delete | rename ]
[FILE] 60-input-id.rules [ edit | delete | rename ]
[FILE] 60-persistent-alsa.rules [ edit | delete | rename ]
[FILE] 60-persistent-input.rules [ edit | delete | rename ]
[FILE] 60-persistent-storage-dm.rules [ edit | delete | rename ]
[FILE] 60-persistent-storage-tape.rules [ edit | delete | rename ]
[FILE] 60-persistent-storage.rules [ edit | delete | rename ]
[FILE] 60-persistent-v4l.rules [ edit | delete | rename ]
[FILE] 60-sensor.rules [ edit | delete | rename ]
[FILE] 60-serial.rules [ edit | delete | rename ]
[FILE] 61-persistent-storage-android.rules [ edit | delete | rename ]
[FILE] 64-btrfs.rules [ edit | delete | rename ]
[FILE] 66-azure-ephemeral.rules [ edit | delete | rename ]
[FILE] 66-snapd-autoimport.rules [ edit | delete | rename ]
[FILE] 70-joystick.rules [ edit | delete | rename ]
[FILE] 70-memory.rules [ edit | delete | rename ]
[FILE] 70-mouse.rules [ edit | delete | rename ]
[FILE] 70-power-switch.rules [ edit | delete | rename ]
[FILE] 70-touchpad.rules [ edit | delete | rename ]
[FILE] 70-uaccess.rules [ edit | delete | rename ]
[FILE] 71-nvidia.rules [ edit | delete | rename ]
[FILE] 71-power-switch-proliant.rules [ edit | delete | rename ]
[FILE] 71-seat.rules [ edit | delete | rename ]
[FILE] 73-seat-late.rules [ edit | delete | rename ]
[FILE] 73-special-net-names.rules [ edit | delete | rename ]
[FILE] 75-net-description.rules [ edit | delete | rename ]
[FILE] 75-probe_mtd.rules [ edit | delete | rename ]
[FILE] 78-graphics-card.rules [ edit | delete | rename ]
[FILE] 78-sound-card.rules [ edit | delete | rename ]
[FILE] 80-debian-compat.rules [ edit | delete | rename ]
[FILE] 80-drivers.rules [ edit | delete | rename ]
[FILE] 80-net-setup-link.rules [ edit | delete | rename ]
[FILE] 81-net-dhcp.rules [ edit | delete | rename ]
[FILE] 90-rtc-sys-time-init.rules [ edit | delete | rename ]
[FILE] 95-dm-notify.rules [ edit | delete | rename ]
[FILE] 96-e2scrub.rules [ edit | delete | rename ]
[FILE] 99-systemd.rules [ edit | delete | rename ]

Viewing: /snap/core22/2437/usr/lib/udev/rules.d/71-seat.rules

#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

ACTION=="remove", GOTO="seat_end"

TAG=="uaccess", SUBSYSTEM!="sound", TAG+="seat"
SUBSYSTEM=="sound", KERNEL=="card*", TAG+="seat"
SUBSYSTEM=="input", KERNEL=="input*", TAG+="seat"
SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", TAG+="seat"

# Assign keyboard and LCD backlights to the seat
SUBSYSTEM=="leds", TAG+="seat"
SUBSYSTEM=="backlight", TAG+="seat"

# Allow efifb / uvesafb to be a master if KMS is disabled
SUBSYSTEM=="graphics", KERNEL=="fb[0-9]", IMPORT{cmdline}="nomodeset", TAG+="master-of-seat"

# Allow any PCI graphics device to be a master and synthesize a seat if KMS
# is disabled and the kernel doesn't have a driver that would work with this device.
SUBSYSTEM=="pci", ENV{ID_PCI_CLASS_FROM_DATABASE}=="Display controller", \
                  ENV{DRIVER}=="", IMPORT{cmdline}="nomodeset", TAG+="seat", TAG+="master-of-seat"

# Synthesize a seat for graphic devices without DRM and that fall back to fb
# device instead. Such HWs are listed in hwdb.
SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", ATTRS{modalias}=="?*", IMPORT{builtin}="hwdb fb:$attr{modalias}"
ENV{ID_TAG_MASTER_OF_SEAT}=="1", TAG+="master-of-seat"

SUBSYSTEM=="drm", KERNEL=="card[0-9]*", TAG+="seat", TAG+="master-of-seat"

# Allow individual USB ports to be assigned to a seat
SUBSYSTEM=="usb", ATTR{bDeviceClass}=="00", TAG+="seat"

# Allow USB hubs (and all downstream ports) to be assigned to a seat
SUBSYSTEM=="usb", ATTR{bDeviceClass}=="09", TAG+="seat"

# 'Plugable' USB hub, sound, network, graphics adapter
SUBSYSTEM=="usb", ATTR{idVendor}=="2230", ATTR{idProduct}=="000[13]", ENV{ID_AUTOSEAT}="1"

# qemu (version 2.4+) has a PCI-PCI bridge (-device pci-bridge-seat) to group
# devices belonging to one seat. See:
#     http://git.qemu.org/?p=qemu.git;a=blob;f=docs/multiseat.txt
SUBSYSTEM=="pci", ATTR{vendor}=="0x1b36", ATTR{device}=="0x000a", TAG+="seat", ENV{ID_AUTOSEAT}="1"

# Mimo 720, with integrated USB hub, displaylink graphics, and e2i
# touchscreen. This device carries no proper VID/PID in the USB hub,
# but it does carry good ID data in the graphics component, hence we
# check it from the parent. There's a bit of a race here however,
# given that the child devices might not exist yet at the time this
# rule is executed. To work around this we'll trigger the parent from
# the child if we notice that the parent wasn't recognized yet.

# Match parent
SUBSYSTEM=="usb", ATTR{idVendor}=="058f", ATTR{idProduct}=="6254", \
                  ATTR{%k.2/idVendor}=="17e9", ATTR{%k.2/idProduct}=="401a", ATTR{%k.2/product}=="mimo inc", \
                  ENV{ID_AUTOSEAT}="1", ENV{ID_AVOID_LOOP}="1"

# Match child, look for parent's ID_AVOID_LOOP
SUBSYSTEM=="usb", ATTR{idVendor}=="17e9", ATTR{idProduct}=="401a", ATTR{product}=="mimo inc", \
                  ATTR{../idVendor}=="058f", ATTR{../idProduct}=="6254", \
                  IMPORT{parent}="ID_AVOID_LOOP"

# Match child, retrigger parent
SUBSYSTEM=="usb", ATTR{idVendor}=="17e9", ATTR{idProduct}=="401a", ATTR{product}=="mimo inc", \
                  ATTR{../idVendor}=="058f", ATTR{../idProduct}=="6254", \
                  ENV{ID_AVOID_LOOP}=="", \
                  RUN+="/bin/udevadm trigger --parent-match=%p/.."

TAG=="seat", ENV{ID_PATH}=="", IMPORT{builtin}="path_id"
TAG=="seat", ENV{ID_FOR_SEAT}=="", ENV{ID_PATH_TAG}!="", ENV{ID_FOR_SEAT}="$env{SUBSYSTEM}-$env{ID_PATH_TAG}"

SUBSYSTEM=="input", ATTR{name}=="Wiebetech LLC Wiebetech", RUN+="/bin/loginctl lock-sessions"

LABEL="seat_end"

Upload File: