Discussion:
Bug#918358: libsane:amd64: Missing permissions for scanner group on usb device
(too old to reply)
Alexandre Vaissière
2019-01-05 14:00:02 UTC
Permalink
Package: libsane
Version: 1.0.27-3.1
Severity: normal

Dear Maintainer,

I experience this issue since december 2018. I scan my docs every two monthes,
so I would not have noticed any change between october and december.

Context
-------

* investigation on the following issue
https://gitlab.gnome.org/World/OpenPaperwork/paperwork/issues/810
* Canon LiDE 700F scanner (USB)
* usage via saned daemon (run by systemd with saned user)
* saned user is in scanner group
* I have enabled saned daemon with

systemctl enable saned.socket
systemctl start saned.socket


Observed behaviour
------------------

saned seems to never find my device.

Indeed here are the results of sane-find-scanner, run by saned and by root:

$ sudo -u saned sane-find-scanner -q
could not open USB device 0x0b05/0x179c at 003:007: Access denied (insufficient
permissions)
could not open USB device 0x0451/0x8142 at 003:015: Access denied (insufficient
permissions)
could not open USB device 0x04a9/0x1907 at 003:014: Access denied (insufficient
permissions)
could not open USB device 0x0451/0x8142 at 003:013: Access denied (insufficient
permissions)
could not open USB device 0x046d/0xc52b at 003:004: Access denied (insufficient
permissions)
could not open USB device 0x1050/0x0407 at 003:006: Access denied (insufficient
permissions)
could not open USB device 0x05e3/0x0608 at 003:003: Access denied (insufficient
permissions)
could not open USB device 0x8087/0x0024 at 003:002: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0002 at 003:001: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0003 at 006:001: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0002 at 005:001: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0003 at 004:001: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0002 at 002:001: Access denied (insufficient
permissions)
could not open USB device 0x8087/0x0024 at 001:002: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0002 at 001:001: Access denied (insufficient
permissions)

$ sudo sane-find-scanner -q
found USB scanner (vendor=0x04a9 [Canon], product=0x1907 [CanoScan],
chip=GL847) at libusb:003:014

saned user does not have the proper permissions!

Expected behaviour
------------------

saned user should see my scanner, so that this scanner is usable via saned
daemon.

Possible lead
-------------

It seems to me that the /lib/udev/rules.d/60-libsane.rules file should contain
an action line such as

ENV{libsane_matched}=="yes", RUN+="/bin/setfacl -m g:scanner:rw $env{DEVNAME}"

but i cannot find in my system version of this file.



-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (900, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.19.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8), LANGUAGE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages libsane:amd64 depends on:
ii acl 2.2.52-3+b1
ii adduser 3.118
ii libavahi-client3 0.7-4+b1
ii libavahi-common3 0.7-4+b1
ii libc6 2.28-2
ii libgphoto2-6 2.5.21-1
ii libgphoto2-port12 2.5.21-1
ii libieee1284-3 0.2.11-13
ii libjpeg62-turbo 1:1.5.2-2+b1
ii libsane-common 1.0.27-3.1
ii libsnmp30 5.7.3+dfsg-4+b2
ii libssl1.1 1.1.1a-1
ii libtiff5 4.0.10-3
ii libusb-1.0-0 2:1.0.22-2
ii udev 240-2

Versions of packages libsane:amd64 recommends:
ii sane-utils 1.0.27-3.1

Versions of packages libsane:amd64 suggests:
ii avahi-daemon 0.7-4+b1
ii hplip 3.18.12+dfsg0-2

-- no debconf information
Jürgen Mellinger
2019-10-17 14:30:02 UTC
Permalink
I experience the same problem with 1.0.27-3.2.
Inspecting the udev rules, I found that the file 60-libsane.rules is missing a line to apply permissions to the device if it has been recognized.
Such a line is present towards the file’s end in older versions:

ENV{libsane_matched}=="yes", RUN+="/bin/setfacl -m g:scanner:rw $env{DEVNAME}"

Putting this line into a file /etc/udev/rules.d/65-libsane.rules allows scanners to be recognized normally after a reboot.

-Juergen
Post by Alexandre Vaissière
Package: libsane
Version: 1.0.27-3.1
Severity: normal
Dear Maintainer,
I experience this issue since december 2018. I scan my docs every two monthes,
so I would not have noticed any change between october and december.
Context
-------
* investigation on the following issue
https://gitlab.gnome.org/World/OpenPaperwork/paperwork/issues/810
* Canon LiDE 700F scanner (USB)
* usage via saned daemon (run by systemd with saned user)
* saned user is in scanner group
* I have enabled saned daemon with
systemctl enable saned.socket
systemctl start saned.socket
Observed behaviour
------------------
saned seems to never find my device.
$ sudo -u saned sane-find-scanner -q
could not open USB device 0x0b05/0x179c at 003:007: Access denied (insufficient
permissions)
could not open USB device 0x0451/0x8142 at 003:015: Access denied (insufficient
permissions)
could not open USB device 0x04a9/0x1907 at 003:014: Access denied (insufficient
permissions)
could not open USB device 0x0451/0x8142 at 003:013: Access denied (insufficient
permissions)
could not open USB device 0x046d/0xc52b at 003:004: Access denied (insufficient
permissions)
could not open USB device 0x1050/0x0407 at 003:006: Access denied (insufficient
permissions)
could not open USB device 0x05e3/0x0608 at 003:003: Access denied (insufficient
permissions)
could not open USB device 0x8087/0x0024 at 003:002: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0002 at 003:001: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0003 at 006:001: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0002 at 005:001: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0003 at 004:001: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0002 at 002:001: Access denied (insufficient
permissions)
could not open USB device 0x8087/0x0024 at 001:002: Access denied (insufficient
permissions)
could not open USB device 0x1d6b/0x0002 at 001:001: Access denied (insufficient
Florent Rougon
2019-10-17 22:20:02 UTC
Permalink
Hello,

Same problem for me as well as for other people at [1]. This happened
after upgrading to 'buster' the machine where the scanner is plugged.
Adding the udev rule fixes the issue. This regression is annoying, it
would be nice for other users if our dear maintainers could fix it. :-)

Thanks & regards

[1] https://www.raspberrypi.org/forums/viewtopic.php?t=243513
--
Florent
Chris Nospam
2019-12-27 03:10:01 UTC
Permalink
On my Buster machine I can completely reproduce that. However, things are more complicated. For any somehow newer Epson scanner one needs to install the vendor drivers from http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX , e.g., like it i the case for my Perfection V37.

While installing the package iscan-data-xx.deb (among others of them), /lib/udev/60-iscan.rules was generated which is basically a copy of the 60-libsane.rules file of the machine, enriched with some own rules. Once I installed iscan-data there was the old operating version of 60-libsance.rules and thus the generated 60-iscan.rules contains the rule to set the ACL right on the device file.

Thus, until now installing a new version iscan 2.30.4, I noticed nothing, although I have had updated libsane continuously. But now the dance started.
During installation of iscan-data the (contained and quite naive) post-install script /usr/lib/iscan-data/make-policy-file tried to generate a new version of 60-iscan.rules but silently failed as the structure of the parsed 60-libsane.conf changed. It copied something, but could not manage to include alle rules, like the ones about vendor or product ids. And of course no ENV{libsane_matched}=="yes", RUN+="/bin/setfacl -m g:scanner:rw $env{DEVNAME}" as this was not contained any more.

Of course, I know that it is not Debian's fault if a proprietary script of Epson fails, however, I think that many people will fall over this and have then to find and fix TWO interacting failures. As a workaround I now list a manually created version of 60-iscan.conf to put into /etc/udev/rules.6 which overrules the not operable version under /lib/...:

ACTION!="add", GOTO="iscan_rules_end"
ENV{DEVTYPE}=="usb_device", GOTO="iscan_create_usb_dev"
SUBSYSTEMS=="scsi", GOTO="iscan_scsi_rules_begin"
SUBSYSTEM=="usb_device", GOTO="iscan_usb_rules_begin"
SUBSYSTEM!="usb_device", GOTO="iscan_usb_rules_end"

# Kernel >= 2.6.22 jumps here
LABEL="iscan_create_usb_dev"

# For Linux >= 2.6.22 without CONFIG_USB_DEVICE_CLASS=y
# If the following rule does not exist on your system yet, uncomment it
# ENV{DEVTYPE}=="usb_device", MODE="0664", OWNER="root", GROUP="root"

# Kernel < 2.6.22 jumps here
LABEL="iscan_usb_rules_begin"

ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0101", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0102", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0103", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0104", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0105", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0106", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0107", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0108", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0109", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="010a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="010b", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="010c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="010d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="010e", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="010f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0110", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0112", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0114", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0116", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0118", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0119", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="011a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="011b", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="011c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="011d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="011e", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="011f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0120", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0121", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0122", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0126", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0128", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0129", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="012a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="012b", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="012c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="012d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="012e", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="012f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0130", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0131", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0133", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0135", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0136", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0137", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0138", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="013a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="013b", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="013c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="013d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0142", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0143", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0144", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0147", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="014a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="014b", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0151", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0153", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="015b", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0801", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0802", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0805", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0806", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0807", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0808", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="080a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="080c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="080d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="080e", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="080f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0810", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0811", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0813", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0814", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0815", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0817", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0818", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0819", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="081a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="081c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="081d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="081f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0820", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0821", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0827", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0828", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0829", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="082a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="082b", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="082e", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="082f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0830", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0831", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0833", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0834", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0835", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0836", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0837", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0838", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0839", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="083a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="083c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="083f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0841", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0843", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0844", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0846", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0847", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0848", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0849", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="084a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="084c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="084d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="084f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0850", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0851", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0852", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0853", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0854", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0855", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0856", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="085c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="085d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="085e", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="085f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0860", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0861", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0862", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0863", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0864", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0865", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0866", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0869", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="086a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0870", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0871", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0872", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0873", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0878", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0879", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="087b", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="087c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="087d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="087e", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="087f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0880", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0881", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0883", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0884", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0885", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="088f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0890", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0891", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0892", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0893", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0894", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0895", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0896", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0897", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0898", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0899", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="089a", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="089b", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="089c", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="089d", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="089e", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="089f", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08a0", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08a1", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08a5", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08a6", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08a8", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08a9", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08aa", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08ab", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08ac", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08ad", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08ae", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08af", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08b0", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08b3", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08b4", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08b5", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08b6", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08b7", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08b8", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08b9", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08bd", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08be", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08bf", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08c0", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08c1", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08c3", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08c4", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08c5", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08c6", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08c7", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08c8", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08c9", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08ca", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08cd", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="08d0", ENV{libsane_matched}="yes"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="1111", ENV{libsane_matched}="yes"


# The following rule will disable USB autosuspend for the device
ENV{libsane_matched}=="yes", TEST=="power/control", ATTR{power/control}="on"
#ENV{libsane_matched}=="yes", RUN+="/bin/sh -c 'if test -e /sys/$env{DEVPATH}/power/control; then echo on > /sys/$env{DEVPATH}/power/control; elif test -e /sys/$env{DEVPATH}/power/level; then echo on > /sys/$env{DEVPATH}/power/level; fi'"

LABEL="iscan_usb_rules_end"

SUBSYSTEMS=="scsi", GOTO="iscan_scsi_rules_begin"
GOTO="iscan_scsi_rules_end"

LABEL="iscan_scsi_rules_begin"
KERNEL!="sg[0-9]*", GOTO="iscan_rules_end"

# Generic: SCSI device type 6 indicates a scanner
ATTRS{type}=="6", ENV{libsane_matched}="yes"

# Some scanners advertise themselves as SCSI device type 3

# Wildcard: for some Epson SCSI scanners
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="SCANNER*", ENV{libsane_matched}="yes"

# Epson Expression 800 | Epson Expression 800
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="Expression800", ENV{libsane_matched}="yes"

# Epson Perfection 2450 | Epson GT-9700F | Epson Perfection 2450 PHOTO
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="GT-9700", ENV{libsane_matched}="yes"

# Epson Perfection 3200 | Epson GT-9800F | Epson Perfection 3200 PHOTO
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="GT-9800", ENV{libsane_matched}="yes"

# Epson GT-X900 | Epson Perfection V700 Photo | Epson Perfection V750 Photo
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="GT-X900", ENV{libsane_matched}="yes"

# Epson Perfection 636S | Epson Perfection 1200S | Epson Perfection 1200S
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="Perfection1200", ENV{libsane_matched}="yes"

# Epson Perfection 636 | Epson Perfection 636S
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="Perfection636", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 4p
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C1130A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet IIc
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C1750A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet IIp
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C1790A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet IIcx
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C2500A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 4c
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C2520A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 5p
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C5110A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 6200C
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C6270A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 6300C
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C7670A", ENV{libsane_matched}="yes"
LABEL="iscan_scsi_rules_end"

ENV{libsane_matched}=="yes", RUN+="/bin/setfacl -m g:scanner:rw $env{DEVNAME}"
#ENV{libsane_matched}=="yes", GROUP="scanner"

LABEL="iscan_rules_end"



For the completeness here I also list the faulty generated version (ommiting 200 empty lines in the end) where
e.g. ENV{libsane_matched}="yes" is never set und thus simply adding the line as suggested above does not help:

# This file is generated as part of the installation of "Image
# Scan! for Linux". Any changes will be overwritten with each
# upgrade of the package.
ACTION!="add", GOTO="iscan_rules_end"

# The following rule will disable USB autosuspend for the device
ENV{DEVTYPE}=="usb_device", ENV{libsane_matched}=="yes", TEST=="power/control", ATTR{power/control}="on"

SUBSYSTEMS=="scsi", GOTO="iscan_scsi_rules_begin"
GOTO="iscan_rules_end"

LABEL="iscan_scsi_rules_begin"
KERNEL!="sg[0-9]*", GOTO="iscan_rules_end"

# Generic: SCSI device type 6 indicates a scanner
ATTRS{type}=="6", ENV{libsane_matched}="yes"

# Some scanners advertise themselves as SCSI device type 3

# Wildcard: for some Epson SCSI scanners
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="SCANNER*", ENV{libsane_matched}="yes"

# Epson Expression 800 | Epson Expression 800
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="Expression800", ENV{libsane_matched}="yes"

# Epson Perfection 2450 | Epson GT-9700F | Epson Perfection 2450 PHOTO
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="GT-9700", ENV{libsane_matched}="yes"

# Epson Perfection 3200 | Epson GT-9800F | Epson Perfection 3200 PHOTO
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="GT-9800", ENV{libsane_matched}="yes"

# Epson GT-X900 | Epson Perfection V700 Photo | Epson Perfection V750 Photo
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="GT-X900", ENV{libsane_matched}="yes"

# Epson Perfection 636S | Epson Perfection 1200S | Epson Perfection 1200S
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="Perfection1200", ENV{libsane_matched}="yes"

# Epson Perfection 636 | Epson Perfection 636S
ATTRS{type}=="3", ATTRS{vendor}=="EPSON", ATTRS{model}=="Perfection636", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 4p
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C1130A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet IIc
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C1750A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet IIp
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C1790A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet IIcx
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C2500A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 4c
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C2520A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 5p
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C5110A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 6200C
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C6270A", ENV{libsane_matched}="yes"

# Hewlett-Packard ScanJet 6300C
ATTRS{type}=="3", ATTRS{vendor}=="HP", ATTRS{model}=="C7670A", ENV{libsane_matched}="yes"


LABEL="iscan_rules_end"


OT: I do not know/understand why Epson does not write all hw ids into their hw db /lib/udev/hwdb.d/iscan-data.hwdb where they should be in my humble opinion.

Hoping that I could help somehow and of course for some fixes from Debian and/or Epson,

Chris
Chris Nospam
2020-06-11 05:50:02 UTC
Permalink
Dear Maintainer, dear Jörg,

the bug is closed since a couple of weeks. However, there was no patch released at least for debian testing. The (lib)sane version is still 1.0.27 and the bug(s) still exists.

$ dpkg -l | grep sane
ii libcommon-sense-perl 3.75-1+b1 amd64 module that implements some sane defaults for Perl programs
ii libkf5sane-data 19.08.1-1 all scanner library (data files)
ii libkf5sane5:amd64 19.08.1-1+b1 amd64 scanner library (runtime)
ii libsane:amd64 1.0.27-3.2+b1 amd64 API library for scanners
ii libsane:i386 1.0.27-3.2+b1 i386 API library for scanners
ii libsane-common 1.0.27-3.2 all API library for scanners -- documentation and support files
ii libsane-hpaio:amd64 3.20.5+dfsg0-3 amd64 HP SANE backend for multi-function peripherals
ii sane 1.0.14-15 amd64 scanner graphical frontends
ii sane-utils 1.0.27-3.2+b1 amd64 API library for scanners -- utilities
ii xsane 0.999-8 amd64 featureful graphical frontend for SANE (Scanner Access Now Easy)
ii xsane-common 0.999-8 all xsane architecture independent files

Are there any remaining quirks which are not documented here preventing a patch release? If not, please release the new version to testing.

Thanks for maintaining sane,

Chris
Jörg Frings-Fürst
2020-06-12 11:40:02 UTC
Permalink
Hello Chris,

the version 1.0.30-1~experimental2 is almost ready to start the upcoming
transition. At the moment only the build on 2 architectures[1] is missing.

As soon as they are finished I will talk to my mentor and apply for the start of
the transition.

Since the fix to fix the bug is quite simple[2] there is no bugfix release.

CU
Jörg

[1] https://buildd.debian.org/status/package.php?p=sane-backends&suite=experimental
[2] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918358#12
--
New:
GPG Fingerprint: 63E0 075F C8D4 3ABB 35AB 30EE 09F8 9F3C 8CA1 D25D
GPG key (long) : 09F89F3C8CA1D25D
GPG Key : 8CA1D25D
CAcert Key S/N : 0E:D4:56

Old pgp Key: BE581B6E (revoked since 2014-12-31).

Jörg Frings-FÌrst
D-54470 Lieser


git: https://jff.email/cgit/

Threema: SYR8SJXB
Wire: @joergfringsfuerst
Skype: joergpenguin
Ring: jff
Telegram: @joergfringsfuerst


My wish list:
- Please send me a picture from the nature at your home.
Loading...