Epson GT-S50 扫描仪从 16.04 升级到 18.04 后无法工作

Man*_*anu 4 usb epson scanner 16.04 18.04

由于升级,我的爱普生扫描仪GT-S50(Epkowa驱动程序)。dmesg插入时会被检测到 ( ):

[ 3755.680091] usb 3-4.4.1: new high-speed USB device number 8 using ehci-pci
[ 3755.789893] usb 3-4.4.1: New USB device found, idVendor=04b8, idProduct=0137
[ 3755.789895] usb 3-4.4.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 3755.789896] usb 3-4.4.1: Product: EPSON Scanner
[ 3755.789897] usb 3-4.4.1: Manufacturer: EPSON
Run Code Online (Sandbox Code Playgroud)

但是当开始“图像扫描!” 或“简单扫描”,则无法检测到扫描仪。

图像扫描! 错误

它仍然以某种方式被 Sane 检测到,因为在运行 sane-find-scanner 时,它“看到”了它:

...
found USB scanner (vendor=0x04b8 [Language Error], product=0x0137 [Language Error]) at libusb:003:008
...
Run Code Online (Sandbox Code Playgroud)

但是,scanimage -L无法检测到它!

没有发现扫描仪。如果您期待不同的东西,请检查扫描仪是否已插入、打开并被 sane-find-scanner 工具(如果适用)检测到。请阅读此软件附带的文档(自述文件、常见问题解答、联机帮助页)。

如果我找不到解决方案,我会考虑降级回 16.04。

经过一些额外调查后的额外信息:似乎升级到 Ubuntu 18.04 破坏了理智设置中的某些内容。iscan由于系统日志中的以下错误,调用或其他正常的相关应用程序导致所有无法发现我的扫描仪:

iscan: io/hpmud/pp.c 627: unable to read device-id ret=-1
Run Code Online (Sandbox Code Playgroud)

出于同样的原因,其他对理智实用程序的调用失败:

colord-sane: io/hpmud/pp.c 627: unable to read device-id ret=-1
scanimage: io/hpmud/pp.c 627: unable to read device-id ret=-1
xsane: io/hpmud/pp.c 627: unable to read device-id ret=-1
Run Code Online (Sandbox Code Playgroud)

编辑 2:好的,找到并解决了io/hpmud/pp.c 627: unable to read device-id ret=-1消息的来源;它是由 hplip 的(libsane 的)hpio 模块引起的。我已禁用它(= 在/etc/sane.d/dll.d/hplip文件中注释掉)并且该消息现已消失。

此外,我已经尝试通过向指定我扫描器理智usb 0x04b8 0x0137/etc/sane.d/epkowa.conf的文件,并添加下面的udev规则/etc/udev/rules.d/的文件55-libsane.rules

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE=="0666"
SUBSYSTEM=="usb_device", MODE=="0666"
ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0137", MODE="0666", 
GROUP="scanner", ENV{libsane_matched}="yes"
Run Code Online (Sandbox Code Playgroud)

但是,到目前为止仍然无济于事......扫描仪顽固地未被发现:'(

旁注:不知道这是否重要,但是当断开扫描仪的连接时,我看到以下消息出现在/var/log/syslog

May 16 09:37:40 hades kernel: [22174.197243] usb 3-4.4.1: USB disconnect, device number 7
May 16 09:37:40 hades upowerd[1809]: unhandled action 'unbind' on /sys/devices/pci0000:00/0000:00:1c.5/0000:05:00.0/0000:06:00.2/usb3/3-4/3-4.4/3-4.4.1
May 16 09:37:40 hades colord-sane[7678]: failed to receive list of devices: Failed to connect to missing device /org/freedesktop/ColorManager/devices/sysfs_EPSON_EPSON_Scanner
Run Code Online (Sandbox Code Playgroud)

Man*_*anu 7

我在Ubuntu's sane-backends bug #1728012的评论中发现一个词是一种有效的解决方法。我将其记录为对错误报告的评论

问题似乎在于/usr/lib/x86_64-linux-gnu/sane(或更一般地说,/usr/lib/$(uname -m)-linux-gnu/sane)文件夹中缺少指向 epkowa (SEIKO EPSON) 库的符号链接。

我因此做了以下事情:

  1. sudo ln -sfr /usr/lib/sane/libsane-epkowa* /usr/lib/x86_64-linux-gnu/sane

  2. 删除了usb 0x04b8 0x0137我添加的条目/etc/sane.d/epkowa.conf

  3. 添加了一个带有以下文本的55-epson-libsane.rules文件/etc/udev/rules.d/

    SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE=="0666"
    SUBSYSTEM=="usb_device", MODE=="0666"
    
    ATTRS{manufacturer}=="EPSON", DRIVERS=="usb", SUBSYSTEMS=="usb", ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="*", MODE="0666"
    
    ATTRS{idVendor}=="04b8", ATTRS{idProduct}=="0137", MODE="0666", GROUP="scanner", ENV{libsane_matched}="yes"
    
    Run Code Online (Sandbox Code Playgroud)
  4. 最后我拔掉/插入我的扫描仪并尝试

    scanimage -L
    
    Run Code Online (Sandbox Code Playgroud)

    并得到了这个令人鼓舞的答案:

    device `epkowa:interpreter:003:011' is a Epson GT-S50 flatbed scanner
    
    Run Code Online (Sandbox Code Playgroud)
  5. 然后我开始iscan(图像扫描!),它立即检测到我的扫描仪。然后我可以成功扫描页面。一比!:-)

更新:(Ubuntu 20.04) 升级到 Ubuntu 20.04 后,我突然发现了这个问题。我搜索了很多,因为我的配置中似乎没有任何变化......突然间我注意到我的/etc/sane.d/epkowa.conf文件权限以某种方式被改变了并且该文件只能被 root 读取!

将其改回“世界”可读 ( chmod +r /etc/sane.d/epkowa.conf) 后,一切都恢复正常,iscan 和 scanimage 将再次能够正确检测扫描仪,而无需使用“sudo”调用。