[BRLTTY] Are changes needed for systemd 247.1?

Alexander Epaneshnikov aarnaarn2 at gmail.com
Mon Dec 7 19:43:49 EST 2020


ok. don't know how to interpret this... at least for now but i found 
something.
[alex at alex-pc ~]$ udevadm monitor --property
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[9941.697191] add /devices/pci0000:00/0000:00:14.0/usb1/1-6 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/001/013
DEVTYPE=usb_device
PRODUCT=f4e/112/300
TYPE=0/0/0
BUSNUM=001
DEVNUM=013
SEQNUM=3941
MAJOR=189
MINOR=12

 >>>> i guess that's my focus.

KERNEL[9941.698195] add 
/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0
SUBSYSTEM=usb
DEVTYPE=usb_interface
PRODUCT=f4e/112/300
TYPE=0/0/0
INTERFACE=255/0/0
MODALIAS=usb:v0F4Ep0112d0300dc00dsc00dp00icFFisc00ip00in00
SEQNUM=3942

 >>>> i am not sure maybe another part of focus. don't really know how 
Linux usb system is working.

KERNEL[9941.698337] bind /devices/pci0000:00/0000:00:14.0/usb1/1-6 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/001/013
DEVTYPE=usb_device
DRIVER=usb
PRODUCT=f4e/112/300
TYPE=0/0/0
BUSNUM=001
DEVNUM=013
SEQNUM=3943
MAJOR=189
MINOR=12

 >>>> that a new event tipe systemd-news talked about it.

UDEV  [9941.705441] add /devices/pci0000:00/0000:00:14.0/usb1/1-6 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/001/013
DEVTYPE=usb_device
PRODUCT=f4e/112/300
TYPE=0/0/0
BUSNUM=001
DEVNUM=013
SEQNUM=3941
USEC_INITIALIZED=9941704924
ID_VENDOR=Freedom_Scientific
ID_VENDOR_ENC=Freedom\x20Scientific
ID_VENDOR_ID=0f4e
ID_MODEL=Focus_2
ID_MODEL_ENC=Focus\x202
ID_MODEL_ID=0112
ID_REVISION=0300
ID_SERIAL=Freedom_Scientific_Focus_2
ID_BUS=usb
ID_USB_INTERFACES=:ff0000:
ID_VENDOR_FROM_DATABASE=Freedom Scientific
ID_PATH=pci-0000:00:14.0-usb-0:6
ID_PATH_TAG=pci-0000_00_14_0-usb-0_6
DRIVER=usb
ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_6
BRLTTY_BRAILLE_DRIVER=fs
BRLTTY_BRAILLE_DEVICE=usb:vendor=0X0f4e+product=0X0112+serial=
SYSTEMD_WANTS=brltty at .service
MAJOR=189
MINOR=12
TAGS=:systemd:seat::
CURRENT_TAGS=:systemd:seat::

 >>>> udeve picked up display. at least i hope so.

UDEV  [9941.708050] add 
/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0 (usb)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0
SUBSYSTEM=usb
DEVTYPE=usb_interface
PRODUCT=f4e/112/300
TYPE=0/0/0
INTERFACE=255/0/0
MODALIAS=usb:v0F4Ep0112d0300dc00dsc00dp00icFFisc00ip00in00
SEQNUM=3942
USEC_INITIALIZED=9941707594
ID_VENDOR_FROM_DATABASE=Freedom Scientific
ID_PATH=pci-0000:00:14.0-usb-0:6:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_6_1_0

 >>>> that is other half. not sure if it's relevant.

UDEV  [9941.712003] bind /devices/pci0000:00/0000:00:14.0/usb1/1-6 (usb)
ACTION=bind
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6
SUBSYSTEM=usb
DEVNAME=/dev/bus/usb/001/013
DEVTYPE=usb_device
DRIVER=usb
PRODUCT=f4e/112/300
TYPE=0/0/0
BUSNUM=001
DEVNUM=013
SEQNUM=3943
USEC_INITIALIZED=9941704924
ID_VENDOR=Freedom_Scientific
ID_VENDOR_ENC=Freedom\x20Scientific
ID_VENDOR_ID=0f4e
ID_MODEL=Focus_2
ID_MODEL_ENC=Focus\x202
ID_MODEL_ID=0112
ID_REVISION=0300
ID_SERIAL=Freedom_Scientific_Focus_2
ID_BUS=usb
ID_USB_INTERFACES=:ff0000:
ID_VENDOR_FROM_DATABASE=Freedom Scientific
ID_PATH=pci-0000:00:14.0-usb-0:6
ID_PATH_TAG=pci-0000_00_14_0-usb-0_6
ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_6
BRLTTY_BRAILLE_DRIVER=fs
BRLTTY_BRAILLE_DEVICE=usb:vendor=0X0f4e+product=0X0112+serial=
MAJOR=189
MINOR=12
TAGS=:systemd:seat::
CURRENT_TAGS=:seat::

 >>>> TAGS=:systemd:seat::
      CURRENT_TAGS=:seat::
      shouldn't they be the same?
systemd news snip:

           To minimize issues resulting from this kernel change (but not avoid
           them entirely) starting with systemd-udevd 247 the udev "tags"
           concept (which is a concept for marking and filtering devices during
           enumeration and monitoring) has been reworked: udev tags are now
           "sticky", meaning that once a tag is assigned to a device it will not
           be removed from the device again until the device itself is removed
           (i.e. unplugged). This makes sure that any application monitoring
           devices that match a specific tag is guaranteed to both see uevents
           where the device starts being relevant, and those where it stops
           being relevant (the latter now regularly happening due to the new
           "unbind" uevent type). The udev tags concept is hence now a concept
           tied to a *device* instead of a device *event* — unlike for example
           udev properties whose lifecycle (as before) is generally tied to a
           device event, meaning that the previously determined properties are
           forgotten whenever a new uevent is processed.

           With the newly redefined udev tags concept, sometimes it's necessary
           to determine which tags are the ones applied by the most recent
           uevent/database update, in order to discern them from those
           originating from earlier uevents/database updates of the same
           device. To accommodate for this a new automatic property CURRENT_TAGS
           has been added that works similar to the existing TAGS property but
           only lists tags set by the most recent uevent/database
           update. Similarly, the libudev/sd-device API has been updated with
           new functions to enumerate these 'current' tags, in addition to the
           existing APIs that now enumerate the 'sticky' ones.

           To properly handle "bind"/"unbind" on Linux 4.14 and newer it is
           essential that all udev rules files and applications are updated to
           handle the new events. Specifically:

           • All rule files that currently use a header guard similar to
             ACTION!="add|change",GOTO="xyz_end" should be updated to use
             ACTION=="remove",GOTO="xyz_end" instead, so that the
             properties/tags they add are also applied whenever "bind" (or
             "unbind") is seen. (This is most important for all physical device
             types — those for which "bind" and "unbind" are currently
             generated, for all other device types this change is still
             recommended but not as important — but certainly prepares for
             future kernel uevent type additions).

           • Similarly, all code monitoring devices that contains an 'if' branch
             discerning the "add" + "change" uevent actions from all other
             uevents actions (i.e. considering devices only relevant after "add"
             or "change", and irrelevant on all other events) should be reworked
             to instead negatively check for "remove" only (i.e. considering
             devices relevant after all event types, except for "remove", which
             invalidates the device). Note that this also means that devices
             should be considered relevant on "unbind", even though conceptually
             this — in some form — invalidates the device. Since the precise
             effect of "unbind" is not generically defined, devices should be
             considered relevant even after "unbind", however I/O errors
             accessing the device should then be handled gracefully.

           • Any code that uses device tags for deciding whether a device is
             relevant or not most likely needs to be updated to use the new
             udev_device_has_current_tag() API (or sd_device_has_current_tag()
             in case sd-device is used), to check whether the tag is set at the
             moment an uevent is seen (as opposed to the existing
             udev_device_has_tag() API which checks if the tag ever existed on
             the device, following the API concept redefinition explained
             above).



KERNEL[9942.234100] add      /devices/virtual/input/input30 (input)
ACTION=add
DEVPATH=/devices/virtual/input/input30
SUBSYSTEM=input
PRODUCT=0/0/0/0
NAME="BRLTTY 6.1 Linux Screen Driver Keyboard"
PHYS="pid-5613/brltty/28"
PROP=0
EV=100003
KEY=402000007 ffc03078f800d2a9 f2beffdfffefffff fffffffffffffffe
MODALIAS=input:b0000v0000p0000e0000-e0,1,14,k71,72,73,74,75,77,79,7C,7D,7E,7F,80,83,85,87,89,8C,8E,8F,9B,9C,9D,9E,9F,A3,A4,A5,A6,AC,AD,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,D9,E2,ramlsfw
SEQNUM=3944

KERNEL[9942.234230] add      /devices/virtual/input/input30/event24 (input)
ACTION=add
DEVPATH=/devices/virtual/input/input30/event24
SUBSYSTEM=input
DEVNAME=/dev/input/event24
SEQNUM=3945
MAJOR=13
MINOR=88

UDEV  [9942.235831] add      /devices/virtual/input/input30 (input)
ACTION=add
DEVPATH=/devices/virtual/input/input30
SUBSYSTEM=input
PRODUCT=0/0/0/0
NAME="BRLTTY 6.1 Linux Screen Driver Keyboard"
PHYS="pid-5613/brltty/28"
PROP=0
EV=100003
KEY=402000007 ffc03078f800d2a9 f2beffdfffefffff fffffffffffffffe
MODALIAS=input:b0000v0000p0000e0000-e0,1,14,k71,72,73,74,75,77,79,7C,7D,7E,7F,80,83,85,87,89,8C,8E,8F,9B,9C,9D,9E,9F,A3,A4,A5,A6,AC,AD,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,D9,E2,ramlsfw
SEQNUM=3944
USEC_INITIALIZED=9942235438
ID_INPUT=1
ID_INPUT_KEY=1
ID_INPUT_KEYBOARD=1
.INPUT_CLASS=kbd
ID_SERIAL=noserial
TAGS=:seat::
CURRENT_TAGS=:seat::

UDEV  [9942.280787] add      /devices/virtual/input/input30/event24 (input)
ACTION=add
DEVPATH=/devices/virtual/input/input30/event24
SUBSYSTEM=input
DEVNAME=/dev/input/event24
SEQNUM=3945
USEC_INITIALIZED=9942280400
ID_INPUT=1
ID_INPUT_KEY=1
ID_INPUT_KEYBOARD=1
.INPUT_CLASS=kbd
ID_SERIAL=noserial
LIBINPUT_DEVICE_GROUP=0/0/0:pid-5613/brltty/28
MAJOR=13
MINOR=88
TAGS=:power-switch::
CURRENT_TAGS=:power-switch::

KERNEL[9946.301927] remove   /devices/virtual/input/input30/event24 (input)
ACTION=remove
DEVPATH=/devices/virtual/input/input30/event24
SUBSYSTEM=input
DEVNAME=/dev/input/event24
SEQNUM=3946
MAJOR=13
MINOR=88

UDEV  [9946.304428] remove   /devices/virtual/input/input30/event24 (input)
ACTION=remove
DEVPATH=/devices/virtual/input/input30/event24
SUBSYSTEM=input
DEVNAME=/dev/input/event24
SEQNUM=3946
USEC_INITIALIZED=9942280400
ID_INPUT=1
ID_INPUT_KEY=1
ID_INPUT_KEYBOARD=1
ID_SERIAL=noserial
LIBINPUT_DEVICE_GROUP=0/0/0:pid-5613/brltty/28
MAJOR=13
MINOR=88
TAGS=:power-switch::
CURRENT_TAGS=:power-switch::

KERNEL[9946.321840] remove   /devices/virtual/input/input30 (input)
ACTION=remove
DEVPATH=/devices/virtual/input/input30
SUBSYSTEM=input
PRODUCT=0/0/0/0
NAME="BRLTTY 6.1 Linux Screen Driver Keyboard"
PHYS="pid-5613/brltty/28"
PROP=0
EV=100003
KEY=402000007 ffc03078f800d2a9 f2beffdfffefffff fffffffffffffffe
MODALIAS=input:b0000v0000p0000e0000-e0,1,14,k71,72,73,74,75,77,79,7C,7D,7E,7F,80,83,85,87,89,8C,8E,8F,9B,9C,9D,9E,9F,A3,A4,A5,A6,AC,AD,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,D9,E2,ramlsfw
SEQNUM=3947

UDEV  [9946.322989] remove   /devices/virtual/input/input30 (input)
ACTION=remove
DEVPATH=/devices/virtual/input/input30
SUBSYSTEM=input
PRODUCT=0/0/0/0
NAME="BRLTTY 6.1 Linux Screen Driver Keyboard"
PHYS="pid-5613/brltty/28"
PROP=0
EV=100003
KEY=402000007 ffc03078f800d2a9 f2beffdfffefffff fffffffffffffffe
MODALIAS=input:b0000v0000p0000e0000-e0,1,14,k71,72,73,74,75,77,79,7C,7D,7E,7F,80,83,85,87,89,8C,8E,8F,9B,9C,9D,9E,9F,A3,A4,A5,A6,AC,AD,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF,C0,C1,C2,D9,E2,ramlsfw
SEQNUM=3947
USEC_INITIALIZED=9942235438
ID_INPUT=1
ID_INPUT_KEY=1
ID_INPUT_KEYBOARD=1
ID_SERIAL=noserial
TAGS=:seat::
CURRENT_TAGS=:seat::



-- 
Sincerely, Alexander.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://brltty.app/pipermail/brltty/attachments/20201208/bfa613e9/attachment.html>


More information about the BRLTTY mailing list