Description:
Recently I bought Epson EcoTank L14150 because of supporting such features as: A3 format, image scanner, continuous ink system, WiFi support. The list of obstacles I was running into:
- The funniest. Adding printer to a system - is a privileged process (cups asks for password/other auth mechanism). On my system I use Rutoken HSM and pam_p11 with different security purposes. So, when I added printer inside cups web interface (http://localhost:631 by default), cups daemon tried to auth me through token by itself ... and locked my HSM after 10 tries. When I decided to kill cupsd I noticed that systemd-journald consumed the whole core and all my tries to do sudo su couldn't be performed. I had to pull out HSM module and add printer with password.
- The printer doesn't work with IPP Everywhere. I have to use Epson Inkjet Printer Driver 2 (ESC/P-R) which supports different set of options like paper types.
- I decided to use native scanner application epsonscan2 for scanning over network, but it didn't work from the beginning.
Why:
- Slonko gentoo package media-gfx/epsonscan2 doesn't contain non-free tool: es2netif (figured it out when did some strace of epsonscan2 binary). That tools can be found in separate package: media-gfx/epsonscan2-non-free-plugin. You can see epsonscan2 debug messages if you create "secret" directory /tmp/epson (thanks strace again):
mkdir /tmp/epson
epsonscan2 --get-status <IP_ADDRESS>
[2023/12/24 23:39:56.206][epsonscan2 ][DbgLog.cpp ; 568][P7CDbgLog ][00102F05][-ERROR-] LoadModule Path:[/usr/bin/epsonscan2] Ver:[1.0.0]
[2023/12/24 23:39:56.221][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 7531 PID = 3
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 7531 PID = 2
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 8457 PID = 2066
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 1105 PID = 33088
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 1105 PID = 33088
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 7531 PID = 3
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 16700 PID = 34053
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 9583 PID = 50770
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 1390 PID = 284
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 8457 PID = 10258
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 2697 PID = 48
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 1105 PID = 33090
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 16700 PID = 42243
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 1105 PID = 33090
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 11802 PID = 19457
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 32903 PID = 41
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 4152 PID = 4832
[2023/12/24 23:39:56.222][epsonscan2 ][UsbFinder.cpp ; 48][Start ][00102F05][-TRACE-] USB device found VID = 7531 PID = 2
[2023/12/24 23:39:57.245][epsonscan2 ][DeviceResolver.cpp ; 67][Resolve ][00102F05][-TRACE-] Resolve 192.168.101.196
[2023/12/24 23:39:57.245][epsonscan2 ][Engine.cpp ; 354][LoadSDModule ][00102F05][-TRACE-] Enter
[2023/12/24 23:39:57.247][epsonscan2 ][ES2CommandAPI.cpp ; 33][ESCreateScanner ][00102F05][-TRACE-] ENTER : ESCreateScanner
[2023/12/24 23:39:57.248][epsonscan2 ][Engine.cpp ; 371][LoadSDModule ][00102F05][-TRACE-] Leave
[2023/12/24 23:39:57.248][epsonscan2 ][Engine.cpp ; 251][InitWithDeviceInfoDict ][00102F05][-TRACE-] Enter = {
"ConnectionSetting": [
{
"Address": {
"string": "<IP_ADDRESS>"
},
"ConnectType": {
"int": 1
}
}
]
}
...
- Even with es2netif tool epsonscan2 refused to detect scanner over the network. Then I tracked all binary executions with help of execsnoop (part of dev-util/bcc package).
Found this:
sh 1063620 1063615 0 /bin/sh -c avahi-browse -r -p -t _scanner._tcp 2>/dev/null
avahi-browse 1063621 1063620 0 /usr/bin/avahi-browse -r -p -t _scanner._tcp
Despite I used direct IP-address, tools invoked avahi-browse for MDNS requests. After I enabled local avahi-daemon service epsonscan2 started seeing my scanner and even work :)