Now I tried to investigate from which UDEV rule the wrong setting comes
from. First I searched all UDEV rules for the word "audio":

till@till-x1yoga:~$ grep -l '\baudio\b' /*/udev/rules.d/*.rules
/lib/udev/rules.d/50-udev-default.rules
/lib/udev/rules.d/60-persistent-v4l.rules
/lib/udev/rules.d/69-libmtp.rules
/lib/udev/rules.d/70-uaccess.rules
/lib/udev/rules.d/90-pulseaudio.rules
till@till-x1yoga:~$ 


So I expect only one of these can be the culprit. Actually a 'GROUP="audio"' 
setting exists only in

/lib/udev/rules.d/50-udev-default.rules

and

/lib/udev/rules.d/69-libmtp.rules

The former is probably no problem as it assigns this group only to
devices of 'SUBSYSTEM=="sound"" where the latter seems to be actually
the culprit.

First it includes some devices explicitly and then it lists thousands of
supported devices. In the end there is some rule for passing a wide
range of devices through an auto-probing:

---------
# Autoprobe vendor-specific, communication and PTP devices
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", 
ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{ID_GPHOTO}!="1", 
ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", 
PROGRAM="mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", 
SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", 
ENV{ID_MEDIA_PLAYER}="1"
---------

And this auto-probing tests positive on my printer:

till@till-x1yoga:~$ /lib/udev/mtp-probe 
/sys/devices/pci0000:00/0000:00:14.0/usb1/1-1 001 012
1
till@till-x1yoga:~$ 

The device path of the printer I have taken from the blob in the udevadm
output (attached to previous comment) which also contains
"ID_MEDIA_PLAYER=1". So mtp-probe identifies my printer as a media
player and assigns the device file to the "audio" group.

I assume that this happens to most or even all HP printers, so an
exclusion of only my device via Vendor and Product ID would not be the
correct solution.

Either mtp-probe needs to get fixed or before said rule in the end of
the 69-libmtp.rules file and after the lines explicitly identifying
media players from HP, there should be placed a line to exclude further
HP devices, like

----------
...
# Exclude any further, not explicitly specified HP devices
ATTR{idVendor}=="03f0", GOTO="libmtp_rules_end"
# Autoprobe vendor-specific, communication and PTP devices
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", 
ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{ID_GPHOTO}!="1", 
ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", 
PROGRAM="mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", 
SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", 
ENV{ID_MEDIA_PLAYER}="1"

LABEL="libmtp_rules_end"
----------


** Changed in: systemd (Ubuntu)
       Status: Incomplete => Invalid

** Changed in: libmtp (Ubuntu)
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1863239

Title:
  /dev/bus/usb/*/* device file of HP multi-function printer assigned to
  "audio" group

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to