[Bug 1721839] Re: Services asked for by UDEV do not get triggered
Till Kamppeter
1721839 at bugs.launchpad.net
Wed Oct 11 19:42:31 UTC 2017
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 at till-x1carbon:~$ lsusb
[...]
Bus 002 Device 009: ID 03f0:c211 Hewlett-Packard
[...]
till at 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
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:
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 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