I have looked through Pitti's (upstream author) instructions of the
tool, ut it seems that it only works on the already running device and
that there is no way to capture the startup and shutdown sequences.

I have recorded the main record of the device this way:

till@till-x1carbon:~$ lsusb
[...]
Bus 002 Device 009: ID 03f0:c211 Hewlett-Packard 
[...]
till@till-x1carbon:~$ sudo umockdev-record /dev/bus/usb/002/009 > 
deskjet-2540.umockdev

I have attached the file.

One can record device operations, but only those which can get triggered
by a shell command, not those who are triggered by a manual operation on
the device (plug/unplug, power-cycle, press button, ...).

Is there a shell command which triggers a shutdown, start-up, or reboot
of the printer? Especially one has to take into account that the device
keeps only its bus ID and the device ID increments by 1.

@pitti, is there a way to record start-up or shutdown of a USB device?

** Attachment added: "deskjet-2540.umockdev"
   
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1721839/+attachment/4967899/+files/deskjet-2540.umockdev

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1721839

Title:
  Services asked for by UDEV do not get triggered

Status in systemd package in Ubuntu:
  Confirmed

Bug description:
  The packages system-config-printer-udev and ippusbxd are installed,
  having the following UDEV rule files:

  /lib/udev/rules.d/70-printers.rules

  ----------
  # Low-level USB device add trigger
  ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{ID_USB_INTERFACES}=="*:0701??:*", TAG+="udev-configure-printer", 
TAG+="systemd", PROGRAM="/bin/systemd-escape 
--template=udev-configure-printer@.service %p", ENV{SYSTEMD_WANTS}+="%c"
  # Low-level USB device remove trigger
  ACTION=="remove", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", 
ENV{ID_USB_INTERFACES}=="*:0701*:*", RUN+="udev-configure-printer remove %p"
  ----------

  /lib/udev/rules.d/55-ippusbxd.rules

  ----------
  # ippusbxd udev rules file

  ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device" 
ENV{ID_USB_INTERFACES}=="*:070104:*", OWNER="root", GROUP="lp", MODE="0664", 
PROGRAM="/bin/systemd-escape --template=ippusbxd@.service 
$env{BUSNUM}:$env{DEVNUM}", ENV{SYSTEMD_WANTS}+="%c"
  ----------

  If I turn on an appropriate printer (USB, supporting IPP-over-USB,
  here the HP DeskJet 2540) I get in the output of "udevadm monitor
  --environment"

  ----------
  UDEV  [17527.514150] add      /devices/pci0000:00/0000:00:14.0/usb2/2-2 (usb)
  ACTION=add
  BUSNUM=002
  DEVNAME=/dev/bus/usb/002/033
  DEVNUM=033
  DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2
  DEVTYPE=usb_device
  DRIVER=usb
  ID_BUS=usb
  ID_MODEL=Deskjet_2540_series
  ID_MODEL_ENC=Deskjet\x202540\x20series
  ID_MODEL_ID=c211
  ID_REVISION=0100
  ID_SERIAL=HP_Deskjet_2540_series_BR54BFB02C05XK
  ID_SERIAL_SHORT=BR54BFB02C05XK
  ID_USB_INTERFACES=:ffcc00:070104:070102:ff0401:
  ID_VENDOR=HP
  ID_VENDOR_ENC=HP
  ID_VENDOR_FROM_DATABASE=Hewlett-Packard
  ID_VENDOR_ID=03f0
  MAJOR=189
  MINOR=160
  PRODUCT=3f0/c211/100
  SEQNUM=9891
  SUBSYSTEM=usb
  SYSTEMD_WANTS=ippusbxd@002:033.service 
udev-configure-printer@-devices-pci0000:00-0000:00:14.0-usb2-2\x2d2.service 
printer.target
  TAGS=:udev-configure-printer:systemd:
  TYPE=0/0/0
  USEC_INITIALIZED=17527513940

  UDEV  [17527.517724] add      
/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0 (usb)
  .MM_USBIFNUM=00
  ACTION=add
  DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.0
  DEVTYPE=usb_interface
  ID_VENDOR_FROM_DATABASE=Hewlett-Packard
  INTERFACE=255/204/0
  MODALIAS=usb:v03F0pC211d0100dc00dsc00dp00icFFiscCCip00in00
  PRODUCT=3f0/c211/100
  SEQNUM=9892
  SUBSYSTEM=usb
  TYPE=0/0/0
  USEC_INITIALIZED=17527517478

  UDEV  [17527.522565] add      
/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.2 (usb)
  .MM_USBIFNUM=02
  ACTION=add
  DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.2
  DEVTYPE=usb_interface
  ID_VENDOR_FROM_DATABASE=Hewlett-Packard
  INTERFACE=255/4/1
  MODALIAS=usb:v03F0pC211d0100dc00dsc00dp00icFFisc04ip01in02
  PRODUCT=3f0/c211/100
  SEQNUM=9895
  SUBSYSTEM=usb
  TYPE=0/0/0
  USEC_INITIALIZED=17527522332

  UDEV  [17527.523761] add      
/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.1 (usb)
  .MM_USBIFNUM=01
  ACTION=add
  DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.1
  DEVTYPE=usb_interface
  DRIVER=usblp
  ID_VENDOR_FROM_DATABASE=Hewlett-Packard
  INTERFACE=7/1/2
  MODALIAS=usb:v03F0pC211d0100dc00dsc00dp00ic07isc01ip02in01
  PRODUCT=3f0/c211/100
  SEQNUM=9893
  SUBSYSTEM=usb
  TYPE=0/0/0
  USEC_INITIALIZED=17527523500

  UDEV  [17527.527275] add      
/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.1/usbmisc/lp1 (usbmisc)
  .MM_USBIFNUM=01
  ACTION=add
  DEVNAME=/dev/usb/lp1
  DEVPATH=/devices/pci0000:00/0000:00:14.0/usb2/2-2/2-2:1.1/usbmisc/lp1
  MAJOR=180
  MINOR=1
  SEQNUM=9894
  SUBSYSTEM=usbmisc
  USEC_INITIALIZED=17527527175
  ----------

  Here one can see that the UDEV rules files are correct, leading to the
  correct systemd services being requested

  SYSTEMD_WANTS=ippusbxd@002:033.service udev-configure-printer
  @-devices-pci0000:00-0000:00:14.0-usb2-2\x2d2.service printer.target

  but neither the service ippusbxd@002:033.service nor the service udev-
  configure-printer@-devices-pci0000:00-0000:00:14.0-usb2-2\x2d2.service
  get started (note that I have put the .service file for ippusbxd in
  place by "sudo cp /usr/share/doc/ippusbxd/examples/ippusbxd@.service
  /lib/systemd/system/").

  I can start each of these services manually though:

  sudo systemctl start 'udev-configure-printer@-devices-
  pci0000:00-0000:00:14.0-usb2-2\x2d2.service'

  sudo systemctl start ippusbxd@002:033.service

  In each case ippusbxd gets started for this printer and a print queue
  auto-created.

  What I expect is that the services get automatically started (and that
  worked in 17.04) so that after plugging in an USB printer I can
  immediately print as the print queue gets created automatically.

  The "udev-configure-printer..." service works for all USB printers,
  not only IPP-over-USB (it automatically recognizes the printer typ and
  does an appropriate setup).

  This is a regression as we had always automatic setup of USB printers.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1721839/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to