<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    ok. don't know how to interpret this... at least for now but i found
    something.<br>
    [alex@alex-pc ~]$ udevadm monitor --property<br>
    monitor will print the received events for:<br>
    UDEV - the event which udev sends out after rule processing<br>
    KERNEL - the kernel uevent<br>
    <br>
    KERNEL[9941.697191] add     
    /devices/pci0000:00/0000:00:14.0/usb1/1-6 (usb)<br>
    ACTION=add<br>
    DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6<br>
    SUBSYSTEM=usb<br>
    DEVNAME=/dev/bus/usb/001/013<br>
    DEVTYPE=usb_device<br>
    PRODUCT=f4e/112/300<br>
    TYPE=0/0/0<br>
    BUSNUM=001<br>
    DEVNUM=013<br>
    SEQNUM=3941<br>
    MAJOR=189<br>
    MINOR=12<br>
    <br>
    >>>> i guess that's my focus.<br>
    <br>
    KERNEL[9941.698195] add     
    /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0 (usb)<br>
    ACTION=add<br>
    DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0<br>
    SUBSYSTEM=usb<br>
    DEVTYPE=usb_interface<br>
    PRODUCT=f4e/112/300<br>
    TYPE=0/0/0<br>
    INTERFACE=255/0/0<br>
    MODALIAS=usb:v0F4Ep0112d0300dc00dsc00dp00icFFisc00ip00in00<br>
    SEQNUM=3942<br>
    <br>
    >>>> i am not sure maybe another part of focus. don't
    really know how Linux usb system is working.<br>
    <br>
    KERNEL[9941.698337] bind    
    /devices/pci0000:00/0000:00:14.0/usb1/1-6 (usb)<br>
    ACTION=bind<br>
    DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6<br>
    SUBSYSTEM=usb<br>
    DEVNAME=/dev/bus/usb/001/013<br>
    DEVTYPE=usb_device<br>
    DRIVER=usb<br>
    PRODUCT=f4e/112/300<br>
    TYPE=0/0/0<br>
    BUSNUM=001<br>
    DEVNUM=013<br>
    SEQNUM=3943<br>
    MAJOR=189<br>
    MINOR=12<br>
    <br>
    >>>> that a new event tipe systemd-news talked about it.<br>
    <br>
    UDEV  [9941.705441] add     
    /devices/pci0000:00/0000:00:14.0/usb1/1-6 (usb)<br>
    ACTION=add<br>
    DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6<br>
    SUBSYSTEM=usb<br>
    DEVNAME=/dev/bus/usb/001/013<br>
    DEVTYPE=usb_device<br>
    PRODUCT=f4e/112/300<br>
    TYPE=0/0/0<br>
    BUSNUM=001<br>
    DEVNUM=013<br>
    SEQNUM=3941<br>
    USEC_INITIALIZED=9941704924<br>
    ID_VENDOR=Freedom_Scientific<br>
    ID_VENDOR_ENC=Freedom\x20Scientific<br>
    ID_VENDOR_ID=0f4e<br>
    ID_MODEL=Focus_2<br>
    ID_MODEL_ENC=Focus\x202<br>
    ID_MODEL_ID=0112<br>
    ID_REVISION=0300<br>
    ID_SERIAL=Freedom_Scientific_Focus_2<br>
    ID_BUS=usb<br>
    ID_USB_INTERFACES=:ff0000:<br>
    ID_VENDOR_FROM_DATABASE=Freedom Scientific<br>
    ID_PATH=pci-0000:00:14.0-usb-0:6<br>
    ID_PATH_TAG=pci-0000_00_14_0-usb-0_6<br>
    DRIVER=usb<br>
    ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_6<br>
    BRLTTY_BRAILLE_DRIVER=fs<br>
    BRLTTY_BRAILLE_DEVICE=usb:vendor=0X0f4e+product=0X0112+serial=<br>
    <a class="moz-txt-link-abbreviated" href="mailto:SYSTEMD_WANTS=brltty@.service">SYSTEMD_WANTS=brltty@.service</a><br>
    MAJOR=189<br>
    MINOR=12<br>
    TAGS=:systemd:seat::<br>
    CURRENT_TAGS=:systemd:seat::<br>
    <br>
    >>>> udeve picked up display. at least i hope so.<br>
    <br>
    UDEV  [9941.708050] add     
    /devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0 (usb)<br>
    ACTION=add<br>
    DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6/1-6:1.0<br>
    SUBSYSTEM=usb<br>
    DEVTYPE=usb_interface<br>
    PRODUCT=f4e/112/300<br>
    TYPE=0/0/0<br>
    INTERFACE=255/0/0<br>
    MODALIAS=usb:v0F4Ep0112d0300dc00dsc00dp00icFFisc00ip00in00<br>
    SEQNUM=3942<br>
    USEC_INITIALIZED=9941707594<br>
    ID_VENDOR_FROM_DATABASE=Freedom Scientific<br>
    ID_PATH=pci-0000:00:14.0-usb-0:6:1.0<br>
    ID_PATH_TAG=pci-0000_00_14_0-usb-0_6_1_0<br>
    <br>
    >>>> that is other half. not sure if it's relevant.<br>
    <br>
    UDEV  [9941.712003] bind    
    /devices/pci0000:00/0000:00:14.0/usb1/1-6 (usb)<br>
    ACTION=bind<br>
    DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-6<br>
    SUBSYSTEM=usb<br>
    DEVNAME=/dev/bus/usb/001/013<br>
    DEVTYPE=usb_device<br>
    DRIVER=usb<br>
    PRODUCT=f4e/112/300<br>
    TYPE=0/0/0<br>
    BUSNUM=001<br>
    DEVNUM=013<br>
    SEQNUM=3943<br>
    USEC_INITIALIZED=9941704924<br>
    ID_VENDOR=Freedom_Scientific<br>
    ID_VENDOR_ENC=Freedom\x20Scientific<br>
    ID_VENDOR_ID=0f4e<br>
    ID_MODEL=Focus_2<br>
    ID_MODEL_ENC=Focus\x202<br>
    ID_MODEL_ID=0112<br>
    ID_REVISION=0300<br>
    ID_SERIAL=Freedom_Scientific_Focus_2<br>
    ID_BUS=usb<br>
    ID_USB_INTERFACES=:ff0000:<br>
    ID_VENDOR_FROM_DATABASE=Freedom Scientific<br>
    ID_PATH=pci-0000:00:14.0-usb-0:6<br>
    ID_PATH_TAG=pci-0000_00_14_0-usb-0_6<br>
    ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_6<br>
    BRLTTY_BRAILLE_DRIVER=fs<br>
    BRLTTY_BRAILLE_DEVICE=usb:vendor=0X0f4e+product=0X0112+serial=<br>
    MAJOR=189<br>
    MINOR=12<br>
    TAGS=:systemd:seat::<br>
    CURRENT_TAGS=:seat::<br>
    <br>
    >>>> TAGS=:systemd:seat::<br>
         CURRENT_TAGS=:seat::<br>
         shouldn't they be the same?<br>
    systemd news snip:<br>
    <pre>          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).</pre>
    <br>
    <br>
    KERNEL[9942.234100] add      /devices/virtual/input/input30 (input)<br>
    ACTION=add<br>
    DEVPATH=/devices/virtual/input/input30<br>
    SUBSYSTEM=input<br>
    PRODUCT=0/0/0/0<br>
    NAME="BRLTTY 6.1 Linux Screen Driver Keyboard"<br>
    PHYS="pid-5613/brltty/28"<br>
    PROP=0<br>
    EV=100003<br>
    KEY=402000007 ffc03078f800d2a9 f2beffdfffefffff fffffffffffffffe<br>
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<br>
    SEQNUM=3944<br>
    <br>
    KERNEL[9942.234230] add      /devices/virtual/input/input30/event24
    (input)<br>
    ACTION=add<br>
    DEVPATH=/devices/virtual/input/input30/event24<br>
    SUBSYSTEM=input<br>
    DEVNAME=/dev/input/event24<br>
    SEQNUM=3945<br>
    MAJOR=13<br>
    MINOR=88<br>
    <br>
    UDEV  [9942.235831] add      /devices/virtual/input/input30 (input)<br>
    ACTION=add<br>
    DEVPATH=/devices/virtual/input/input30<br>
    SUBSYSTEM=input<br>
    PRODUCT=0/0/0/0<br>
    NAME="BRLTTY 6.1 Linux Screen Driver Keyboard"<br>
    PHYS="pid-5613/brltty/28"<br>
    PROP=0<br>
    EV=100003<br>
    KEY=402000007 ffc03078f800d2a9 f2beffdfffefffff fffffffffffffffe<br>
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<br>
    SEQNUM=3944<br>
    USEC_INITIALIZED=9942235438<br>
    ID_INPUT=1<br>
    ID_INPUT_KEY=1<br>
    ID_INPUT_KEYBOARD=1<br>
    .INPUT_CLASS=kbd<br>
    ID_SERIAL=noserial<br>
    TAGS=:seat::<br>
    CURRENT_TAGS=:seat::<br>
    <br>
    UDEV  [9942.280787] add      /devices/virtual/input/input30/event24
    (input)<br>
    ACTION=add<br>
    DEVPATH=/devices/virtual/input/input30/event24<br>
    SUBSYSTEM=input<br>
    DEVNAME=/dev/input/event24<br>
    SEQNUM=3945<br>
    USEC_INITIALIZED=9942280400<br>
    ID_INPUT=1<br>
    ID_INPUT_KEY=1<br>
    ID_INPUT_KEYBOARD=1<br>
    .INPUT_CLASS=kbd<br>
    ID_SERIAL=noserial<br>
    LIBINPUT_DEVICE_GROUP=0/0/0:pid-5613/brltty/28<br>
    MAJOR=13<br>
    MINOR=88<br>
    TAGS=:power-switch::<br>
    CURRENT_TAGS=:power-switch::<br>
    <br>
    KERNEL[9946.301927] remove   /devices/virtual/input/input30/event24
    (input)<br>
    ACTION=remove<br>
    DEVPATH=/devices/virtual/input/input30/event24<br>
    SUBSYSTEM=input<br>
    DEVNAME=/dev/input/event24<br>
    SEQNUM=3946<br>
    MAJOR=13<br>
    MINOR=88<br>
    <br>
    UDEV  [9946.304428] remove   /devices/virtual/input/input30/event24
    (input)<br>
    ACTION=remove<br>
    DEVPATH=/devices/virtual/input/input30/event24<br>
    SUBSYSTEM=input<br>
    DEVNAME=/dev/input/event24<br>
    SEQNUM=3946<br>
    USEC_INITIALIZED=9942280400<br>
    ID_INPUT=1<br>
    ID_INPUT_KEY=1<br>
    ID_INPUT_KEYBOARD=1<br>
    ID_SERIAL=noserial<br>
    LIBINPUT_DEVICE_GROUP=0/0/0:pid-5613/brltty/28<br>
    MAJOR=13<br>
    MINOR=88<br>
    TAGS=:power-switch::<br>
    CURRENT_TAGS=:power-switch::<br>
    <br>
    KERNEL[9946.321840] remove   /devices/virtual/input/input30 (input)<br>
    ACTION=remove<br>
    DEVPATH=/devices/virtual/input/input30<br>
    SUBSYSTEM=input<br>
    PRODUCT=0/0/0/0<br>
    NAME="BRLTTY 6.1 Linux Screen Driver Keyboard"<br>
    PHYS="pid-5613/brltty/28"<br>
    PROP=0<br>
    EV=100003<br>
    KEY=402000007 ffc03078f800d2a9 f2beffdfffefffff fffffffffffffffe<br>
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<br>
    SEQNUM=3947<br>
    <br>
    UDEV  [9946.322989] remove   /devices/virtual/input/input30 (input)<br>
    ACTION=remove<br>
    DEVPATH=/devices/virtual/input/input30<br>
    SUBSYSTEM=input<br>
    PRODUCT=0/0/0/0<br>
    NAME="BRLTTY 6.1 Linux Screen Driver Keyboard"<br>
    PHYS="pid-5613/brltty/28"<br>
    PROP=0<br>
    EV=100003<br>
    KEY=402000007 ffc03078f800d2a9 f2beffdfffefffff fffffffffffffffe<br>
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<br>
    SEQNUM=3947<br>
    USEC_INITIALIZED=9942235438<br>
    ID_INPUT=1<br>
    ID_INPUT_KEY=1<br>
    ID_INPUT_KEYBOARD=1<br>
    ID_SERIAL=noserial<br>
    TAGS=:seat::<br>
    CURRENT_TAGS=:seat::<br>
    <br>
    <br>
    <br>
    <pre class="moz-signature" cols="72">-- 
Sincerely, Alexander.</pre>
  </body>
</html>