It seems that with a 70-printers.rules as follows at least a correct service name is generated
---------- # 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" ---------- Note that in the first rule the systemd-escape command has NO "-p" option and that the %c for ENV{SYSTEMD_WANTS} has extra single quotes. Compared to the original file only these single quotes got added. After restarting UDEV with sudo udevadm control --reload and re-plugging the printer in most cases the service does not get started. systemctl status 'udev-configure-printer@-devices- pci0000:00-0000:00:14.0-usb2-2\x2d2.service' > status.txt gives something like ---------- ● udev-configure-printer@devices-pci0000:00-0000:00:14.0-usb2-2\x2d2.service - Automatic USB/Bluetooth printer setup (devices-pci0000:00-0000:00:14.0-usb2-2\x2d2) Loaded: loaded (/lib/systemd/system/udev-configure-printer@.service; static; vendor preset: enabled) Active: inactive (dead) ---------- In such a case one can start the service manually with sudo systemctl start 'udev-configure-printer@-devices- pci0000:00-0000:00:14.0-usb2-2\x2d2.service' and this starts correctly udev-configure printer which sets up the printer (and starts ippusbxd if needed). In some very few cases the service actually gets correctly started (and the printer set up) when one plugs the printer, but this happens rarely (can there be some kind of race condition?). So this only rarely happening automatic start of the printer setup service is now the problem. The escaping seems to be fixed by the extra single quotes. -- 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