[Bug 1721839] Re: Services asked for by UDEV do not get triggered
Till Kamppeter
1721839 at bugs.launchpad.net
Mon Oct 9 16:33:38 UTC 2017
Some discussion with xnox on IRC helped me to get to a possible cause of
the problem:
journalctl -u udev-configure-printer at -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 at -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 at -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 at -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 at .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
Foundations Bugs, 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 at .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 at .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 at 002:033.service udev-configure-printer at -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 at 002:033.service udev-configure-printer
@-devices-pci0000:00-0000:00:14.0-usb2-2\x2d2.service printer.target
but neither the service ippusbxd at 002:033.service nor the service udev-
configure-printer at -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 at .service
/lib/systemd/system/").
I can start each of these services manually though:
sudo systemctl start 'udev-configure-printer at -devices-
pci0000:00-0000:00:14.0-usb2-2\x2d2.service'
sudo systemctl start ippusbxd at 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
More information about the foundations-bugs
mailing list