Some discussion with xnox on IRC helped me to get to a possible cause of
the problem:

journalctl -u udev-configure-printer@-devices-
pci0000:00-0000:00:14.0-usb2-2x2d2.service > journalctl-u.txt

gives (file redirection prevents trimming ;lines to terminal width):

----------
-- Logs begin at Mon 2017-10-09 09:07:44 -03, end at Mon 2017-10-09 12:17:45 
-03. --
Oct 09 11:29:17 till-x1carbon systemd[1]: Starting Automatic USB/Bluetooth 
printer setup (-devices-pci0000:00-0000:00:14.0-usb2-2x2d2)...
Oct 09 11:29:17 till-x1carbon udev-configure-printer[23296]: add 
/devices/pci0000:00/0000:00:14.0/usb2/2x2d2
Oct 09 11:29:17 till-x1carbon udev-configure-printer[23296]: unable to access 
/sys/devices/pci0000:00/0000:00:14.0/usb2/2x2d2
Oct 09 11:29:17 till-x1carbon systemd[1]: 
udev-configure-printer@-devices-pci0000:00-0000:00:14.0-usb2-2x2d2.service: 
Control process exited, code=exited status=1
Oct 09 11:29:17 till-x1carbon systemd[1]: Failed to start Automatic 
USB/Bluetooth printer setup (-devices-pci0000:00-0000:00:14.0-usb2-2x2d2).
Oct 09 11:29:17 till-x1carbon systemd[1]: 
udev-configure-printer@-devices-pci0000:00-0000:00:14.0-usb2-2x2d2.service: 
Unit entered failed state.
Oct 09 11:29:17 till-x1carbon systemd[1]: 
udev-configure-printer@-devices-pci0000:00-0000:00:14.0-usb2-2x2d2.service: 
Failed with result 'exit-code'.
----------

The directory which needs to get accessed by udev-configure-printer is:
/sys/devices/pci0000:00/0000:00:14.0/usb2/2-2, note that the second last
character is a dash. UDEV/systemd(?) inserts for the %i in the second
line of the /lib/systemd/system/udev-configure-printer@.service file:
-devices-pci0000:00-0000:00:14.0-usb2-2x2d2, replacing each slash by a
dash and the original dash by "x2d" (should it not be "\x2d"? Not sure
what gets inserted for the %I in the ExecStart line, but udev-configure-
printer ends up with a /sys/devices/pci0000:00/0000:00:14.0/usb2/2x2d2
which it does not find as the "x2d" is not turned back into a dash.

This worked in 17.04 so it is a regression.

-- 
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:
  New

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