alexpevzner / sane-airscan

Scanner Access Now Easy - universal driver for eSCL (Apple AirScan) and WSD
Other
289 stars 44 forks source link

Samsung SL M2875FD Error during device I/O #170

Closed diabolusss closed 1 year ago

diabolusss commented 3 years ago

Hello! I'm trying to get this mfd printer to work over lan, but i'm completely stuck with a bunch of errors. First, to get my printer recognized i had to start avahi-daemon systemctl start avahi-daemon

After this step it gets recognized as escl device, which, as i assume, is wrong, because it selects Sync Thru WebService port :80 and fails with out of memory error:

API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=46003
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=56955
WSDD: 10.160.195.129: started discovery, UDP port=35267
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=33995
API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
WSDD: 10.160.195.129: done discovery
WSDD: 192.168.1.218: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD"
API: sane_get_devices(): done
file.xml:1: parser error : Space required after the Public Identifier
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
                                                ^
file.xml:1: parser error : SystemLiteral " or ' expected
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
                                                ^
file.xml:1: parser error : SYSTEM or PUBLIC, the URI is missing
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
                                                ^
file.xml:12: parser error : Opening and ending tag mismatch: CENTER line 0 and BODY
</BODY>
       ^
file.xml:14: parser error : Opening and ending tag mismatch: BODY line 0 and HTML
</HTML>
       ^
file.xml:16: parser error : EndTag: '</' not found

^
scanimage: open of device escl:http://192.168.1.111:80 failed: Out of memory
Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

zeroconf: initial scan timer expired
API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD"
API: sane_get_devices(): done
List of available devices:
    escl:http://192.168.1.111:80 escl:http://192.168.1.111:80
    airscan:w0:Samsung SL M2875FD
API: sane_exit(): called
API: sane_exit(): OK

To get wsd recognized, i had to add it into "/etc/sane.d/airscan.conf" file, where wsd port i took from printer config.

[devices]
"Samsung SL M2875FD" = http://192.168.1.111:8018, wsd

Now i see both of them, but wsd is not completely working, too.

$ scanimage -d "airscan:w0:Samsung SL M2875FD" -v
Output format is not set, using pnm as a default.
API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=38733
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=54370
WSDD: 10.160.195.129: started discovery, UDP port=49487
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=59620
API: sane_open("w0:Samsung SL M2875FD"): called
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: 10.160.195.129: done discovery
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
WSDD: 192.168.1.218: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
Samsung SL M2875FD: device created
Samsung SL M2875FD: DEVICE_STM_OPENED->DEVICE_STM_PROBING
Samsung SL M2875FD: using protocol "WSD"
Samsung SL M2875FD: HTTP POST http://192.168.1.111:8018
Samsung SL M2875FD: HTTP using timeout: 5000 ms
Samsung SL M2875FD: HTTP resolving 192.168.1.111 8018
Samsung SL M2875FD: HTTP trying 192.168.1.111:8018
Samsung SL M2875FD: HTTP fdpoll: {--} -> {-w}
Samsung SL M2875FD: HTTP 969 bytes sent
Samsung SL M2875FD: HTTP done request sending
Samsung SL M2875FD: HTTP fdpoll: {-w} -> {rw}
Samsung SL M2875FD: HTTP fdpoll: {rw} -> {r-}
Samsung SL M2875FD: HTTP 48 bytes received
Samsung SL M2875FD: HTTP POST http://192.168.1.111:8018: got response headers (400)
Samsung SL M2875FD: HTTP done response reception
Samsung SL M2875FD: HTTP POST http://192.168.1.111:8018: 400 Bad Request
Samsung SL M2875FD: HTTP POST http://192.168.1.111:8018: Bad Request
Samsung SL M2875FD: scanner capabilities query: Bad Request
Samsung SL M2875FD: DEVICE_STM_PROBING->DEVICE_STM_PROBING_FAILED
Samsung SL M2875FD: removed from device table
Samsung SL M2875FD: closed protocol "WSD"
Samsung SL M2875FD: device destroyed
API: sane_open("w0:Samsung SL M2875FD"): Error during device I/O
scanimage: open of device airscan:w0:Samsung SL M2875FD failed: Error during device I/O
API: sane_exit(): called
API: sane_exit(): OK

However, It does work if directly connected to pc. From Lan Android and windows apps can scan and print without issues...

Printer Network configuration:

General
Assign IPv4 Address:    Automatically (DHCP)
Auto IP:    Enabled
IPv4 Address:  192.168.1.111
Subnet Mask:  255.255.255.0
Gateway Address:192.168.1.69
Domain Name
Domain Name:    lan
Primary DNS Server:  208.67.222.222
Secondary DNS Server:    208.67.220.220
Dynamic DNS Registration:    Enabled
Windows Internet Name Service (WINS)
WINS Protocol:    Enabled
Primary WINS Server:    Not Configured
Secondary WINS Server:   not configured 

Raw TCP/IP Printing
Raw TCP/IP Printing Protocol:    Enabled
Port Number:    9100
LPR/LPD
LPR/LPD Protocol:    Enabled
Port Number:    515
Internet Printing Protocol (IPP)
IPP Protocol:    Enabled
Printer Name:    SEC84251
Printer URI:    ipp://192.168.1.111/ipp/print
Printer Information:    Samsung M267x 287x Series (SEC84251)
More Printer Information:    http://192.168.1.111
Printer Location:    Entrance
Operation Message:    Operator Message
AirPrint
AirPrint:    Enabled
Samsung Cloud Print
Samsung Cloud Print Protocol:    Disabled
Google Cloud Print
Registration Status:    Printer is not Registered.
WSD
WSD Protocol:    Enabled
Port Number:    8018
Service Location Protocol (SLP)
SLP Protocol:    Enabled
Port Number:    427
Simple Service Discovery Protocol (SSDP)
SSDP Protocol:    Enabled
Port Number:    1900
Friendly Name:    Samsung M267x 287x Series (192.168.1.111)
Multicast DNS (mDNS)
mDNS Protocol:   Enabled
Port Number:    5353
mDNS Name:    SEC84251.local.
Friendly Name:    Samsung M267x 287x Series (SEC84251)
Simple Network Management Protocol (SNMP)
SNMPv1/v2 Protocol:    Enabled
SNMPv3 Protocol:    Disabled
HTTP
HTTP Protocol:    Enabled
Port Number:    80
Proxy
HTTP Proxy:    Disabled
HTTP Proxy Server Address:    Not Configured
Port Number:    Not Configured

Any help will be appreciated.

p.s. at the same time, even with this changes made, airscan-discover finds nothing. The same is with default scanning apps. Only dig is working if pointing it to printer address.

$ nmap --script=broadcast-dns-service-discovery
Starting Nmap 7.92 ( https://nmap.org ) at 2021-08-21 10:06 EEST
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 10.37 seconds

avahi-browse --all -a --resolve

$ dig @192.168.1.111 -p 5353 -t ptr +short _printer._tcp.local
Samsung\032M267x\032287x\032Series\032\(SEC84251963C5AB\)._printer._tcp.local.

p.p.s and i should note that printing from this pc to this printer via lan works as expected. From the same lan, but via Android or Windows i can scan without issues and in Windows Scan to PC works, too. I've noticed that Android app (Mobile print) uses default :9100 port to get info from printer, so i've tried this too, both as escl and wsd, with airscan without success.

NB airscan requests to ports (9100, 9400) just makes printer to print this request headers. It's useless.


PI: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_CONNECTING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=55553
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=52141
WSDD: 10.160.195.129: started discovery, UDP port=54155
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=60865
API: sane_open("w1:Samsung SL M2875FD:9100"): called
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: 192.168.1.218: done discovery
WSDD: 10.160.195.129: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: DNS-SD not finished...
zeroconf: initial scan timer expired
zeroconf: device_list wait: DNS-SD not finished...
zeroconf: device_list wait: timeout
Samsung SL M2875FD:9100: device created
Samsung SL M2875FD:9100: DEVICE_STM_OPENED->DEVICE_STM_PROBING
Samsung SL M2875FD:9100: using protocol "WSD"
Samsung SL M2875FD:9100: HTTP POST http://192.168.1.111:9100
Samsung SL M2875FD:9100: HTTP using timeout: 5000 ms
Samsung SL M2875FD:9100: HTTP resolving 192.168.1.111 9100
Samsung SL M2875FD:9100: HTTP trying 192.168.1.111:9100
Samsung SL M2875FD:9100: HTTP fdpoll: {--} -> {-w}
Samsung SL M2875FD:9100: HTTP 969 bytes sent
Samsung SL M2875FD:9100: HTTP done request sending
Samsung SL M2875FD:9100: HTTP fdpoll: {-w} -> {rw}
Samsung SL M2875FD:9100: HTTP fdpoll: {rw} -> {r-}
Samsung SL M2875FD:9100: HTTP POST http://192.168.1.111:9100: timeout
Samsung SL M2875FD:9100: scanner capabilities query: timeout
Samsung SL M2875FD:9100: DEVICE_STM_PROBING->DEVICE_STM_PROBING_FAILED
Samsung SL M2875FD:9100: removed from device table
Samsung SL M2875FD:9100: closed protocol "WSD"
Samsung SL M2875FD:9100: device destroyed
API: sane_open("w1:Samsung SL M2875FD:9100"): Error during device I/O
scanimage: open of device airscan:w1:Samsung SL M2875FD:9100 failed: Error during device I/O
Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
zeroconf: device_list wait: timeout
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD:8018"
zeroconf:   WSD   "w1:Samsung SL M2875FD:9100"
API: sane_get_devices(): done
List of available devices:
    airscan:w0:Samsung SL M2875FD:8018 airscan:w1:Samsung SL M2875FD:9100
API: sane_exit(): called
API: sane_exit(): OK

PI: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_CONNECTING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=47054
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=49080
WSDD: 10.160.195.129: started discovery, UDP port=58467
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=46528
API: sane_open("e1:Samsung SL M2875FD:9100"): called
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
WSDD: 192.168.1.218: done discovery
WSDD: 10.160.195.129: done discovery
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: DNS-SD not finished...
zeroconf: initial scan timer expired
zeroconf: device_list wait: DNS-SD not finished...
zeroconf: device_list wait: timeout
Samsung SL M2875FD:9100: device created
Samsung SL M2875FD:9100: DEVICE_STM_OPENED->DEVICE_STM_PROBING
Samsung SL M2875FD:9100: using protocol "eSCL"
Samsung SL M2875FD:9100: HTTP GET http://192.168.1.111:9100/ScannerCapabilities
Samsung SL M2875FD:9100: HTTP using timeout: 5000 ms
Samsung SL M2875FD:9100: HTTP resolving 192.168.1.111 9100
Samsung SL M2875FD:9100: HTTP trying 192.168.1.111:9100
Samsung SL M2875FD:9100: HTTP fdpoll: {--} -> {-w}
Samsung SL M2875FD:9100: HTTP 82 bytes sent
Samsung SL M2875FD:9100: HTTP done request sending
Samsung SL M2875FD:9100: HTTP fdpoll: {-w} -> {rw}
Samsung SL M2875FD:9100: HTTP fdpoll: {rw} -> {r-}
Samsung SL M2875FD:9100: HTTP GET http://192.168.1.111:9100/ScannerCapabilities: timeout
Samsung SL M2875FD:9100: scanner capabilities query: timeout
Samsung SL M2875FD:9100: DEVICE_STM_PROBING->DEVICE_STM_PROBING_FAILED
Samsung SL M2875FD:9100: removed from device table
Samsung SL M2875FD:9100: closed protocol "eSCL"
Samsung SL M2875FD:9100: device destroyed
API: sane_open("e1:Samsung SL M2875FD:9100"): Error during device I/O
scanimage: open of device airscan:e1:Samsung SL M2875FD:9100 failed: Error during device I/O
Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
zeroconf: device_list wait: timeout
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD:8018"
zeroconf:   eSCL  "e1:Samsung SL M2875FD:9100"
API: sane_get_devices(): done
List of available devices:
    airscan:w0:Samsung SL M2875FD:8018 airscan:e1:Samsung SL M2875FD:9100
API: sane_exit(): called
API: sane_exit(): OK

UPD01 managed to scan one page out of three, but at least something to start with... I've found that /etc/sane.d/xerox_mfp.conf has default tcp record for another samsung printer, and what is more important, that this file accepts not only pid&vid, i.e. direct usb connection. ~~ So i've added just tcp with my printer ip and luckily it got recognized.~~

# Samsung SCX-4500W, network mode
# tcp HOST_ADDR PORT
#     Uncomment and configure:
#tcp scx4500 9400

# Samsung SL M2875FD, network mode 
tcp 192.168.1.111

It got recognized only once, as xerox_mfp device and never come up again. At least i haven't yet figured out how i triggered that. But i suppose it got recognized instantly after it printed request to 9400 port headers and disappeared after going to sleep mode.


$ scanimage -h -d "escl:http://192.168.1.111:80"
Usage: scanimage [OPTION]...
...
Output format is not set, using pnm as a default.
file.xml:1: parser error : Space required after the Public Identifier
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
                                                ^
file.xml:1: parser error : SystemLiteral " or ' expected
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
                                                ^
file.xml:1: parser error : SYSTEM or PUBLIC, the URI is missing
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
                                                ^
file.xml:12: parser error : Opening and ending tag mismatch: CENTER line 0 and BODY
</BODY>
       ^
file.xml:14: parser error : Opening and ending tag mismatch: BODY line 0 and HTML
</HTML>
       ^
file.xml:16: parser error : EndTag: '</' not found

^
scanimage: open of device escl:http://192.168.1.111:80 failed: Out of memory
Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=35671
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=45115
WSDD: 10.160.195.129: started discovery, UDP port=42414
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=49366
API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: 192.168.1.218: done discovery
WSDD: 10.160.195.129: done discovery
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD:8018"
zeroconf:   eSCL  "e1:Samsung SL M2875FD:9100"
API: sane_get_devices(): done
List of available devices:
    escl:http://192.168.1.111:80 airscan:w0:Samsung SL M2875FD:8018
    airscan:e1:Samsung SL M2875FD:9100
API: sane_exit(): called
API: sane_exit(): OK

$ scanimage -h -d "airscan:e1:Samsung SL M2875FD:9400"
Usage: scanimage [OPTION]...

Start image acquisition on a scanner device and write image data to
standard output.
...
Output format is not set, using pnm as a default.
API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=49167
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=47664
WSDD: 10.160.195.129: started discovery, UDP port=39796
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=44041
API: sane_open("e1:Samsung SL M2875FD:9400"): called
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: 192.168.1.218: done discovery
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
WSDD: 10.160.195.129: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
Samsung SL M2875FD:9400: device created
Samsung SL M2875FD:9400: DEVICE_STM_OPENED->DEVICE_STM_PROBING
Samsung SL M2875FD:9400: using protocol "eSCL"
Samsung SL M2875FD:9400: HTTP GET http://192.168.1.111:9400/ScannerCapabilities
Samsung SL M2875FD:9400: HTTP using timeout: 5000 ms
Samsung SL M2875FD:9400: HTTP resolving 192.168.1.111 9400
Samsung SL M2875FD:9400: HTTP trying 192.168.1.111:9400
Samsung SL M2875FD:9400: HTTP fdpoll: {--} -> {-w}
Samsung SL M2875FD:9400: HTTP 82 bytes sent
Samsung SL M2875FD:9400: HTTP done request sending
Samsung SL M2875FD:9400: HTTP fdpoll: {-w} -> {rw}
Samsung SL M2875FD:9400: HTTP fdpoll: {rw} -> {r-}
zeroconf: initial scan timer expired
Samsung SL M2875FD:9400: HTTP GET http://192.168.1.111:9400/ScannerCapabilities: timeout
Samsung SL M2875FD:9400: scanner capabilities query: timeout
Samsung SL M2875FD:9400: DEVICE_STM_PROBING->DEVICE_STM_PROBING_FAILED
Samsung SL M2875FD:9400: removed from device table
Samsung SL M2875FD:9400: closed protocol "eSCL"
Samsung SL M2875FD:9400: device destroyed
API: sane_open("e1:Samsung SL M2875FD:9400"): Error during device I/O
scanimage: open of device airscan:e1:Samsung SL M2875FD:9400 failed: Error during device I/O
Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD:8018"
zeroconf:   eSCL  "e1:Samsung SL M2875FD:9400"
API: sane_get_devices(): done
List of available devices:
    xerox_mfp:tcp 192.168.1.111 escl:http://192.168.1.111:80
    airscan:w0:Samsung SL M2875FD:8018 airscan:e1:Samsung SL M2875FD:9400
API: sane_exit(): called
API: sane_exit(): OK
$ scanimage -h -d "xerox_mfp:tcp 192.168.1.111"
Usage: scanimage [OPTION]...

Start image acquisition on a scanner device and write image data to
standard output.

Parameters are separated by a blank from single-character options (e.g.
-d epson) and by a "=" from multi-character options (e.g. --device-name=epson).
-d, --device-name=DEVICE   use a given scanner device (e.g. hp:/dev/scanner)
    --format=pnm|tiff|png|jpeg  file format of output file
-i, --icc-profile=PROFILE  include this ICC profile into TIFF file
-L, --list-devices         show available scanner devices
-f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output
                           can be specified: %d (device name), %v (vendor),
                           %m (model), %t (type), %i (index number), and
                           %n (newline)
-b, --batch[=FORMAT]       working in batch mode, FORMAT is `out%d.pnm' `out%d.tif'
                           `out%d.png' or `out%d.jpg' by default depending on --format
                           This option is incompatible with --output-file.    --batch-start=#        page number to start naming files with
    --batch-count=#        how many pages to scan in batch mode
    --batch-increment=#    increase page number in filename by #
    --batch-double         increment page number by two, same as
                           --batch-increment=2
    --batch-print          print image filenames to stdout
    --batch-prompt         ask for pressing a key before scanning a page
    --accept-md5-only      only accept authorization requests using md5
-p, --progress             print progress messages
-o, --output-file=PATH     save output to the given file instead of stdout.
                           This option is incompatible with --batch.
-n, --dont-scan            only set options, don't actually scan
-T, --test                 test backend thoroughly
-A, --all-options          list all available backend options
-h, --help                 display this help message and exit
-v, --verbose              give even more status messages
-B, --buffer-size=#        change input buffer size (in kB, default 32)
-V, --version              print version information
Output format is not set, using pnm as a default.

Options specific to device `xerox_mfp:tcp 192.168.1.111':
  Standard:
    --resolution 75|100|150|200|300|600dpi [150]
        Sets the resolution of the scanned image.
    --mode Lineart|Halftone|Gray|Color [Color]
        Selects the scan mode (e.g., lineart, monochrome, or color).
    --highlight 30..70% (in steps of 10) [inactive]
        Select minimum-brightness to get a white point
    --source Flatbed|ADF|Auto [ADF]
        Selects the scan source (such as a document-feeder).
  Geometry:
    -l 0..216.069mm (in steps of 1) [0]
        Top-left x position of scan area.
    -t 0..355.6mm (in steps of 1) [0]
        Top-left y position of scan area.
    -x 0..216.069mm (in steps of 1) [216.069]
        Width of scan-area.
    -y 0..355.6mm (in steps of 1) [355.6]
        Height of scan-area.

Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=44517
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=50326
WSDD: 10.160.195.129: started discovery, UDP port=54088
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=60753
API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: 192.168.1.218: done discovery
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: 10.160.195.129: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD:8018"
zeroconf:   eSCL  "e1:Samsung SL M2875FD:9400"
API: sane_get_devices(): done
List of available devices:
    xerox_mfp:tcp 192.168.1.111 escl:http://192.168.1.111:80
    airscan:w0:Samsung SL M2875FD:8018 airscan:e1:Samsung SL M2875FD:9400
API: sane_exit(): called
API: sane_exit(): OK

$ scanimage -d "xerox_mfp:tcp 192.168.1.111" --format=png  --batch=./out%d.png
Scanning infinity pages, incrementing by 1, numbering from 1
Scanning page 1
Scanned page 1. (scanner status = 5)
Scanning page 2
scanimage: sane_start: Error during device I/O
Batch terminated, 1 page scanned

$ scanimage -d "xerox_mfp:tcp 192.168.1.111" --format=jpeg  --batch=./out0%d --resolution=75 --mode=Lineart 
scanimage: open of device xerox_mfp:tcp 192.168.1.111 failed: Invalid argument

$ scanimage -L
API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=39811
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=50390
WSDD: 10.160.195.129: started discovery, UDP port=38754
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=32780
API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: 192.168.1.218: done discovery
WSDD: 10.160.195.129: done discovery
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD:8018"
API: sane_get_devices(): done
device `escl:http://192.168.1.111:80' is a Samsung M267x 287x Series (192.168.1.111) flatbed or ADF scanner
device `airscan:w0:Samsung SL M2875FD:8018' is a WSD Samsung SL M2875FD:8018 ip=192.168.1.111
API: sane_exit(): called
API: sane_exit(): OK

$ scanimage -h -d "airscan:w0:Samsung SL M2875FD:8018"
Usage: scanimage [OPTION]...

Start image acquisition on a scanner device and write image data to
standard output.
...
Output format is not set, using pnm as a default.
API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=41646
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=49842
WSDD: 10.160.195.129: started discovery, UDP port=40852
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=39722
API: sane_open("w0:Samsung SL M2875FD:8018"): called
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: 192.168.1.218: done discovery
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
WSDD: 10.160.195.129: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
Samsung SL M2875FD:8018: device created
Samsung SL M2875FD:8018: DEVICE_STM_OPENED->DEVICE_STM_PROBING
Samsung SL M2875FD:8018: using protocol "WSD"
Samsung SL M2875FD:8018: HTTP POST http://192.168.1.111:8018
Samsung SL M2875FD:8018: HTTP using timeout: 5000 ms
Samsung SL M2875FD:8018: HTTP resolving 192.168.1.111 8018
Samsung SL M2875FD:8018: HTTP trying 192.168.1.111:8018
Samsung SL M2875FD:8018: HTTP fdpoll: {--} -> {-w}
Samsung SL M2875FD:8018: HTTP 969 bytes sent
Samsung SL M2875FD:8018: HTTP done request sending
Samsung SL M2875FD:8018: HTTP fdpoll: {-w} -> {rw}
Samsung SL M2875FD:8018: HTTP fdpoll: {rw} -> {r-}
Samsung SL M2875FD:8018: HTTP 48 bytes received
Samsung SL M2875FD:8018: HTTP POST http://192.168.1.111:8018: got response headers (400)
Samsung SL M2875FD:8018: HTTP done response reception
Samsung SL M2875FD:8018: HTTP POST http://192.168.1.111:8018: 400 Bad Request
Samsung SL M2875FD:8018: HTTP POST http://192.168.1.111:8018: Bad Request
Samsung SL M2875FD:8018: scanner capabilities query: Bad Request
Samsung SL M2875FD:8018: DEVICE_STM_PROBING->DEVICE_STM_PROBING_FAILED
Samsung SL M2875FD:8018: removed from device table
Samsung SL M2875FD:8018: closed protocol "WSD"
Samsung SL M2875FD:8018: device destroyed
API: sane_open("w0:Samsung SL M2875FD:8018"): Error during device I/O
scanimage: open of device airscan:w0:Samsung SL M2875FD:8018 failed: Error during device I/O
Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE.

zeroconf: initial scan timer expired
API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD:8018"
API: sane_get_devices(): done
List of available devices:
    escl:http://192.168.1.111:80 airscan:w0:Samsung SL M2875FD:8018
API: sane_exit(): called
API: sane_exit(): OK

$ scanimage -d "xerox_mfp:tcp 192.168.1.111" --format=jpeg  --batch=./out0%d --resolution=75 --mode=Lineart 
scanimage: open of device xerox_mfp:tcp 192.168.1.111 failed: Invalid argument
diabolusss commented 3 years ago

Xerox_mfp driver and sane debug log:

$ export SANE_DEBUG_DLL=255 && export SANE_DEBUG_XEROX_MFP=4 && scanimage -L
[09:22:12.865644] [sanei_debug] Setting debug level of dll to 255.
[09:22:12.865721] [dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.32
[09:22:12.865736] [dll] sane_init/read_dlld: attempting to open directory `./dll.d'
[09:22:12.865749] [dll] sane_init/read_dlld: attempting to open directory `/etc/sane.d/dll.d'
[09:22:12.865763] [dll] sane_init/read_dlld: using config directory `/etc/sane.d/dll.d'
[09:22:12.865788] [dll] sane_init/read_dlld: considering /etc/sane.d/dll.d/utsushi
[09:22:12.865807] [dll] sane_init/read_config: reading dll.d/utsushi
[09:22:12.865828] [dll] add_backend: adding backend `utsushi'
[09:22:12.865841] [dll] sane_init/read_dlld: considering /etc/sane.d/dll.d/airscan
[09:22:12.865855] [dll] sane_init/read_config: reading dll.d/airscan
[09:22:12.865868] [dll] add_backend: adding backend `airscan'
[09:22:12.865881] [dll] sane_init/read_dlld: done.
[09:22:12.865898] [dll] sane_init/read_config: reading dll.conf
[09:22:12.865919] [dll] add_backend: adding backend `escl'
[09:22:12.865928] [dll] add_backend: adding backend `hp'
[09:22:12.865935] [dll] add_backend: adding backend `hp3500'
[09:22:12.865945] [dll] add_backend: adding backend `hp3900'
[09:22:12.865954] [dll] add_backend: adding backend `hp4200'
[09:22:12.865962] [dll] add_backend: adding backend `hp5400'
[09:22:12.865971] [dll] add_backend: adding backend `hp5590'
[09:22:12.865993] [dll] add_backend: adding backend `hpljm1005'
[09:22:12.866002] [dll] add_backend: adding backend `hpsj5s'
[09:22:12.866011] [dll] add_backend: adding backend `hs2p'
[09:22:12.866027] [dll] add_backend: adding backend `pint'
[09:22:12.866042] [dll] add_backend: adding backend `xerox_mfp'
[09:22:12.866051] [dll] add_backend: adding backend `smfp'
[09:22:12.866070] [dll] sane_get_devices
[09:22:12.866080] [dll] load: searching backend `smfp' in `/usr/lib/sane'
[09:22:12.866088] [dll] load: trying to load `/usr/lib/sane/libsane-smfp.so.1'
[09:22:12.866105] [dll] load: dlopen()ing `/usr/lib/sane/libsane-smfp.so.1'
[09:22:12.867982] [dll] init: initializing backend `smfp'
[09:22:12.880831] [dll] init: backend `smfp' is version 1.0.1
[09:22:13.882132] [dll] load: searching backend `xerox_mfp' in `/usr/lib/sane'
[09:22:13.882196] [dll] load: trying to load `/usr/lib/sane/libsane-xerox_mfp.so.1'
[09:22:13.882219] [dll] load: dlopen()ing `/usr/lib/sane/libsane-xerox_mfp.so.1'
[09:22:13.882651] [dll] init: initializing backend `xerox_mfp'
[09:22:13.882681] [sanei_debug] Setting debug level of xerox_mfp to 4.
[09:22:13.882690] [xerox_mfp] sane_init: Xerox backend (build 13), version != null, authorize != null
[09:22:13.891292] [dll] init: backend `xerox_mfp' is version 1.0.13
[09:22:13.891320] [xerox_mfp] sane_xerox_mfp_get_devices: 0x7ffeab904220, 0
[09:22:13.891428] [xerox_mfp] list_one_device: tcp 192.168.1.111
[09:22:13.891446] [xerox_mfp] tcp_dev_open: open tcp 192.168.1.111
[09:22:13.894179] [xerox_mfp] :: dev_command(INQUIRY[0x12], 70)
[09:22:13.894281] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[09:22:14.971689] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 0
[09:22:14.971755] [xerox_mfp] dev_command: illegal response len 0, need 70
[09:22:14.971766] [xerox_mfp] tcp_dev_close: closing dev 0x5649ead50220
[09:22:14.971884] [xerox_mfp] list_one_device: dev_inquiry(tcp 192.168.1.111): Error during device I/O
[09:22:14.971975] [dll] load: searching backend `pint' in `/usr/lib/sane'
[09:22:14.971992] [dll] load: trying to load `/usr/lib/sane/libsane-pint.so.1'
[09:22:14.972013] [dll] load: couldn't open `/usr/lib/sane/libsane-pint.so.1' (No such file or directory)
[09:22:14.972023] [dll] load: couldn't find backend `pint' (No such file or directory)
[09:22:14.972042] [dll] load: searching backend `hs2p' in `/usr/lib/sane'
[09:22:14.972051] [dll] load: trying to load `/usr/lib/sane/libsane-hs2p.so.1'
[09:22:14.972073] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hs2p.so.1'
[09:22:14.972361] [dll] init: initializing backend `hs2p'
[09:22:14.972927] [dll] init: backend `hs2p' is version 1.0.0
[09:22:14.972960] [dll] load: searching backend `hpsj5s' in `/usr/lib/sane'
[09:22:14.972970] [dll] load: trying to load `/usr/lib/sane/libsane-hpsj5s.so.1'
[09:22:14.972985] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hpsj5s.so.1'
[09:22:14.973359] [dll] init: initializing backend `hpsj5s'
[09:22:14.973554] [dll] init: backend `hpsj5s' is version 1.0.3
[09:22:14.973575] [dll] load: searching backend `hpljm1005' in `/usr/lib/sane'
[09:22:14.973584] [dll] load: trying to load `/usr/lib/sane/libsane-hpljm1005.so.1'
[09:22:14.973599] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hpljm1005.so.1'
[09:22:14.973895] [dll] init: initializing backend `hpljm1005'
[09:22:14.974028] [dll] init: backend `hpljm1005' is version 1.0.1
[09:22:14.974052] [dll] load: searching backend `hp5590' in `/usr/lib/sane'
[09:22:14.974062] [dll] load: trying to load `/usr/lib/sane/libsane-hp5590.so.1'
[09:22:14.974091] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp5590.so.1'
[09:22:14.974391] [dll] init: initializing backend `hp5590'
[09:22:14.974513] [dll] init: backend `hp5590' is version 1.0.8
[09:22:14.974532] [dll] load: searching backend `hp5400' in `/usr/lib/sane'
[09:22:14.974543] [dll] load: trying to load `/usr/lib/sane/libsane-hp5400.so.1'
[09:22:14.974565] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp5400.so.1'
[09:22:14.974844] [dll] init: initializing backend `hp5400'
[09:22:14.975006] [dll] init: backend `hp5400' is version 1.0.3
[09:22:14.975027] [dll] load: searching backend `hp4200' in `/usr/lib/sane'
[09:22:14.975036] [dll] load: trying to load `/usr/lib/sane/libsane-hp4200.so.1'
[09:22:14.975049] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp4200.so.1'
[09:22:14.975339] [dll] init: initializing backend `hp4200'
[09:22:14.975494] [dll] init: backend `hp4200' is version 1.0.0
[09:22:14.975515] [dll] load: searching backend `hp3900' in `/usr/lib/sane'
[09:22:14.975524] [dll] load: trying to load `/usr/lib/sane/libsane-hp3900.so.1'
[09:22:14.975538] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp3900.so.1'
[09:22:14.976325] [dll] init: initializing backend `hp3900'
[09:22:14.976474] [dll] init: backend `hp3900' is version 1.0.0
[09:22:14.976501] [dll] load: searching backend `hp3500' in `/usr/lib/sane'
[09:22:14.976510] [dll] load: trying to load `/usr/lib/sane/libsane-hp3500.so.1'
[09:22:14.976529] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp3500.so.1'
[09:22:14.976769] [dll] init: initializing backend `hp3500'
[09:22:14.976857] [dll] init: backend `hp3500' is version 1.0.0
[09:22:14.976875] [dll] load: searching backend `hp' in `/usr/lib/sane'
[09:22:14.976886] [dll] load: trying to load `/usr/lib/sane/libsane-hp.so.1'
[09:22:14.976902] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp.so.1'
[09:22:14.977203] [dll] init: initializing backend `hp'
[09:22:14.977232] [dll] init: backend `hp' is version 1.0.8
[09:22:14.977816] [dll] load: searching backend `escl' in `/usr/lib/sane'
[09:22:14.977836] [dll] load: trying to load `/usr/lib/sane/libsane-escl.so.1'
[09:22:14.977849] [dll] load: dlopen()ing `/usr/lib/sane/libsane-escl.so.1'
[09:22:14.997963] [dll] init: initializing backend `escl'
[09:22:14.999620] [dll] init: backend `escl' is version 1.0.0
[09:22:16.018668] [dll] load: searching backend `airscan' in `/usr/lib/sane'
[09:22:16.018700] [dll] load: trying to load `/usr/lib/sane/libsane-airscan.so.1'
[09:22:16.018727] [dll] load: dlopen()ing `/usr/lib/sane/libsane-airscan.so.1'
[09:22:16.022409] [dll] init: initializing backend `airscan'
API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=39699
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=44714
WSDD: 10.160.195.129: started discovery, UDP port=39658
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=33992
[09:22:16.030165] [dll] init: backend `airscan' is version 1.0.0
API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: 192.168.1.218: done discovery
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: 10.160.195.129: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD:8018"
zeroconf:   eSCL  "e1:Samsung SL M2875FD:9400"
API: sane_get_devices(): done
[09:22:18.543965] [dll] load: searching backend `utsushi' in `/usr/lib/sane'
[09:22:18.543988] [dll] load: trying to load `/usr/lib/sane/libsane-utsushi.so.1'
[09:22:18.544019] [dll] load: dlopen()ing `/usr/lib/sane/libsane-utsushi.so.1'
[09:22:18.549993] [dll] init: initializing backend `utsushi'
[09:22:18.550034] [dll] init: backend `utsushi' is version 1.1.0
[09:22:18.663406] [dll] sane_get_devices: found 3 devices
device `escl:http://192.168.1.111:80' is a Samsung M267x 287x Series (192.168.1.111) flatbed or ADF scanner
device `airscan:w0:Samsung SL M2875FD:8018' is a WSD Samsung SL M2875FD:8018 ip=192.168.1.111
device `airscan:e1:Samsung SL M2875FD:9400' is a eSCL Samsung SL M2875FD:9400 ip=192.168.1.111
[09:22:18.663450] [dll] sane_exit: exiting
[09:22:18.663459] [dll] sane_exit: calling backend `smfp's exit function
[09:22:18.663800] [dll] sane_exit: calling backend `xerox_mfp's exit function
[09:22:18.663859] [dll] sane_exit: calling backend `hs2p's exit function
[09:22:18.663902] [dll] sane_exit: calling backend `hpsj5s's exit function
[09:22:18.663952] [dll] sane_exit: calling backend `hpljm1005's exit function
[09:22:18.663990] [dll] sane_exit: calling backend `hp5590's exit function
[09:22:18.664037] [dll] sane_exit: calling backend `hp5400's exit function
[09:22:18.664076] [dll] sane_exit: calling backend `hp4200's exit function
[09:22:18.664118] [dll] sane_exit: calling backend `hp3900's exit function
[09:22:18.664161] [dll] sane_exit: calling backend `hp3500's exit function
[09:22:18.664199] [dll] sane_exit: calling backend `hp's exit function
[09:22:18.664238] [dll] sane_exit: calling backend `escl's exit function
[09:22:18.664290] [dll] sane_exit: calling backend `airscan's exit function
API: sane_exit(): called
API: sane_exit(): OK
[09:22:18.668680] [dll] sane_exit: calling backend `utsushi's exit function
[09:22:18.668736] [dll] sane_exit: finished

I suppose it just doesn't know how to wake printer from sleep!? i'll check this later...

diabolusss commented 3 years ago

Ful log while scanning:

$ export SANE_DEBUG_DLL=255 && export SANE_DEBUG_XEROX_MFP=4 && scanimage -d "xerox_mfp:tcp 192.168.1.111" --format=png -p -v --resolution=100 --mode=Lineart --source=ADF  -x 216 -y 297 --batch='./SCANx%d.png'
[12:49:41.747628] [sanei_debug] Setting debug level of dll to 255.
[12:49:41.747689] [dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.32
[12:49:41.747704] [dll] sane_init/read_dlld: attempting to open directory `./dll.d'
[12:49:41.747718] [dll] sane_init/read_dlld: attempting to open directory `/etc/sane.d/dll.d'
[12:49:41.747733] [dll] sane_init/read_dlld: using config directory `/etc/sane.d/dll.d'
[12:49:41.747758] [dll] sane_init/read_dlld: considering /etc/sane.d/dll.d/utsushi
[12:49:41.747776] [dll] sane_init/read_config: reading dll.d/utsushi
[12:49:41.747795] [dll] add_backend: adding backend `utsushi'
[12:49:41.747808] [dll] sane_init/read_dlld: considering /etc/sane.d/dll.d/airscan
[12:49:41.747823] [dll] sane_init/read_config: reading dll.d/airscan
[12:49:41.747833] [dll] add_backend: adding backend `airscan'
[12:49:41.747847] [dll] sane_init/read_dlld: done.
[12:49:41.747861] [dll] sane_init/read_config: reading dll.conf
[12:49:41.747881] [dll] add_backend: adding backend `escl'
[12:49:41.747891] [dll] add_backend: adding backend `hp'
[12:49:41.747899] [dll] add_backend: adding backend `hp3500'
[12:49:41.747908] [dll] add_backend: adding backend `hp3900'
[12:49:41.747916] [dll] add_backend: adding backend `hp4200'
[12:49:41.747923] [dll] add_backend: adding backend `hp5400'
[12:49:41.747930] [dll] add_backend: adding backend `hp5590'
[12:49:41.747939] [dll] add_backend: adding backend `hpljm1005'
[12:49:41.747948] [dll] add_backend: adding backend `hpsj5s'
[12:49:41.747956] [dll] add_backend: adding backend `hs2p'
[12:49:41.747969] [dll] add_backend: adding backend `pint'
[12:49:41.747983] [dll] add_backend: adding backend `xerox_mfp'
[12:49:41.747991] [dll] add_backend: adding backend `smfp'
[12:49:41.748012] [dll] sane_open: trying to open `xerox_mfp:tcp 192.168.1.111'
[12:49:41.748023] [dll] load: searching backend `xerox_mfp' in `/usr/lib/sane'
[12:49:41.748032] [dll] load: trying to load `/usr/lib/sane/libsane-xerox_mfp.so.1'
[12:49:41.748047] [dll] load: dlopen()ing `/usr/lib/sane/libsane-xerox_mfp.so.1'
[12:49:41.748241] [dll] init: initializing backend `xerox_mfp'
[12:49:41.748256] [sanei_debug] Setting debug level of xerox_mfp to 4.
[12:49:41.748267] [xerox_mfp] sane_init: Xerox backend (build 13), version != null, authorize != null
[12:49:41.756988] [dll] init: backend `xerox_mfp' is version 1.0.13
[12:49:41.757028] [xerox_mfp] sane_xerox_mfp_open: 'tcp 192.168.1.111'
[12:49:41.757037] [xerox_mfp] sane_xerox_mfp_get_devices: (nil), 1
[12:49:41.757145] [xerox_mfp] list_one_device: tcp 192.168.1.111
[12:49:41.757156] [xerox_mfp] tcp_dev_open: open tcp 192.168.1.111
[12:49:41.759789] [xerox_mfp] :: dev_command(INQUIRY[0x12], 70)
[12:49:41.759887] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:42.951490] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 70
[12:49:42.951560] [xerox_mfp] dev_inquiry: found Samsung/M267x 287x Series
[12:49:42.951575] [xerox_mfp] tcp_dev_close: closing dev 0x55aa3757caf0
[12:49:42.951732] [xerox_mfp] tcp_dev_open: open tcp 192.168.1.111
[12:49:42.953173] [dll] sane_open: open successful
[12:49:42.953244] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=0)
[12:49:42.953255] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 0
[12:49:42.953264] [dll] sane_control_option(handle=0x55aa37580a50,option=0,action=0,value=0x7ffe8e6b13cc,info=(nil))
[12:49:42.953272] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 0, <0>, 0x7ffe8e6b13cc, (nil)
[12:49:42.953281] [xerox_mfp] sane_xerox_mfp_control_option: 0, <0> => 0000000b, 0
[12:49:42.953292] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=0)
[12:49:42.953300] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 0
[12:49:42.953312] [dll] sane_control_option(handle=0x55aa37580a50,option=0,action=0,value=0x7ffe8e6b12d0,info=(nil))
[12:49:42.953320] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 0, <0>, 0x7ffe8e6b12d0, (nil)
[12:49:42.953328] [xerox_mfp] sane_xerox_mfp_control_option: 0, <0> => 0000000b, 0
[12:49:42.953341] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=1)
[12:49:42.953355] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 1
[12:49:42.953366] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=2)
[12:49:42.953376] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 2
[12:49:42.953392] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=3)
[12:49:42.953402] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 3
[12:49:42.953419] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=4)
[12:49:42.953431] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 4
[12:49:42.953442] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=5)
[12:49:42.953449] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 5
[12:49:42.953456] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=6)
[12:49:42.953464] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 6
[12:49:42.953475] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=7)
[12:49:42.953484] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 7
[12:49:42.953495] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=8)
[12:49:42.953515] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 8
[12:49:42.953526] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=9)
[12:49:42.953538] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 9
[12:49:42.953550] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=10)
[12:49:42.953560] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 10
[12:49:42.953567] [dll] sane_control_option(handle=0x55aa37580a50,option=9,action=0,value=0x55aa36b2c3a0,info=(nil))
[12:49:42.953575] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 9, <0>, 0x55aa36b2c3a0, (nil)
[12:49:42.953588] [xerox_mfp] sane_xerox_mfp_control_option: 9, <0> => 00d811bf, 0
[12:49:42.953600] [dll] sane_control_option(handle=0x55aa37580a50,option=7,action=0,value=0x7ffe8e6b12d4,info=(nil))
[12:49:42.953610] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 7, <0>, 0x7ffe8e6b12d4, (nil)
[12:49:42.953626] [xerox_mfp] sane_xerox_mfp_control_option: 7, <0> => 00000000, 0
[12:49:42.953637] [dll] sane_control_option(handle=0x55aa37580a50,option=10,action=0,value=0x55aa36b2c3a4,info=(nil))
[12:49:42.953645] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 10, <0>, 0x55aa36b2c3a4, (nil)
[12:49:42.953655] [xerox_mfp] sane_xerox_mfp_control_option: 10, <0> => 01639999, 0
[12:49:42.953666] [dll] sane_control_option(handle=0x55aa37580a50,option=8,action=0,value=0x7ffe8e6b12d4,info=(nil))
[12:49:42.953676] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 8, <0>, 0x7ffe8e6b12d4, (nil)
[12:49:42.953686] [xerox_mfp] sane_xerox_mfp_control_option: 8, <0> => 00000000, 0
[12:49:42.953701] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=2)
[12:49:42.953712] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 2
[12:49:42.953724] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=2)
[12:49:42.953734] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 2
[12:49:42.953743] [dll] sane_control_option(handle=0x55aa37580a50,option=2,action=1,value=0x55aa37560980,info=0x7ffe8e6b1294)
[12:49:42.953753] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 2, <1>, 0x55aa37560980, 0x7ffe8e6b1294
[12:49:42.953769] [xerox_mfp] sane_xerox_mfp_control_option: 2, <1> => 00000064, 4
[12:49:42.953780] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=3)
[12:49:42.953790] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 3
[12:49:42.953800] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=3)
[12:49:42.953810] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 3
[12:49:42.953820] [dll] sane_control_option(handle=0x55aa37580a50,option=3,action=1,value=0x55aa375612f0,info=0x7ffe8e6b1294)
[12:49:42.953831] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 3, <1>, 0x55aa375612f0, 0x7ffe8e6b1294
[12:49:42.953843] [xerox_mfp] sane_xerox_mfp_control_option: 3, <1> => 656e694c, 6
[12:49:42.953853] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=0)
[12:49:42.953864] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 0
[12:49:42.953874] [dll] sane_control_option(handle=0x55aa37580a50,option=0,action=0,value=0x7ffe8e6b1240,info=(nil))
[12:49:42.953889] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 0, <0>, 0x7ffe8e6b1240, (nil)
[12:49:42.953899] [xerox_mfp] sane_xerox_mfp_control_option: 0, <0> => 0000000b, 0
[12:49:42.953909] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=1)
[12:49:42.953919] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 1
[12:49:42.953928] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=2)
[12:49:42.953938] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 2
[12:49:42.953947] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=3)
[12:49:42.953957] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 3
[12:49:42.953966] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=4)
[12:49:42.953976] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 4
[12:49:42.953985] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=5)
[12:49:42.953995] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 5
[12:49:42.954005] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=6)
[12:49:42.954014] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 6
[12:49:42.954026] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=7)
[12:49:42.954047] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 7
[12:49:42.954056] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=8)
[12:49:42.954064] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 8
[12:49:42.954073] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=9)
[12:49:42.954082] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 9
[12:49:42.954090] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=10)
[12:49:42.954099] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 10
[12:49:42.954107] [dll] sane_control_option(handle=0x55aa37580a50,option=9,action=0,value=0x55aa36b2c3a0,info=(nil))
[12:49:42.954114] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 9, <0>, 0x55aa36b2c3a0, (nil)
[12:49:42.954124] [xerox_mfp] sane_xerox_mfp_control_option: 9, <0> => 00d811bf, 0
[12:49:42.954133] [dll] sane_control_option(handle=0x55aa37580a50,option=7,action=0,value=0x7ffe8e6b1244,info=(nil))
[12:49:42.954142] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 7, <0>, 0x7ffe8e6b1244, (nil)
[12:49:42.954153] [xerox_mfp] sane_xerox_mfp_control_option: 7, <0> => 00000000, 0
[12:49:42.954161] [dll] sane_control_option(handle=0x55aa37580a50,option=10,action=0,value=0x55aa36b2c3a4,info=(nil))
[12:49:42.954170] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 10, <0>, 0x55aa36b2c3a4, (nil)
[12:49:42.954180] [xerox_mfp] sane_xerox_mfp_control_option: 10, <0> => 01639999, 0
[12:49:42.954191] [dll] sane_control_option(handle=0x55aa37580a50,option=8,action=0,value=0x7ffe8e6b1244,info=(nil))
[12:49:42.954203] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 8, <0>, 0x7ffe8e6b1244, (nil)
[12:49:42.954212] [xerox_mfp] sane_xerox_mfp_control_option: 8, <0> => 00000000, 0
[12:49:42.954222] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=5)
[12:49:42.954230] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 5
[12:49:42.954239] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=5)
[12:49:42.954247] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 5
[12:49:42.954255] [dll] sane_control_option(handle=0x55aa37580a50,option=5,action=1,value=0x55aa375612f0,info=0x7ffe8e6b1294)
[12:49:42.954267] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 5, <1>, 0x55aa375612f0, 0x7ffe8e6b1294
[12:49:42.954279] [xerox_mfp] sane_xerox_mfp_control_option: 5, <1> => 00464441, 0
[12:49:42.954292] [dll] sane_control_option(handle=0x55aa37580a50,option=7,action=0,value=0x7ffe8e6b1400,info=(nil))
[12:49:42.954303] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 7, <0>, 0x7ffe8e6b1400, (nil)
[12:49:42.954313] [xerox_mfp] sane_xerox_mfp_control_option: 7, <0> => 00000000, 0
[12:49:42.954322] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=9)
[12:49:42.954331] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 9
[12:49:42.954341] [dll] sane_control_option(handle=0x55aa37580a50,option=9,action=1,value=0x7ffe8e6b1420,info=0x7ffe8e6b12e4)
[12:49:42.954352] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 9, <1>, 0x7ffe8e6b1420, 0x7ffe8e6b12e4
[12:49:42.954364] [xerox_mfp] sane_xerox_mfp_control_option: 9, <1> => 00d80000, 4
[12:49:42.954373] [dll] sane_control_option(handle=0x55aa37580a50,option=8,action=0,value=0x7ffe8e6b1400,info=(nil))
[12:49:42.954384] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 8, <0>, 0x7ffe8e6b1400, (nil)
[12:49:42.954396] [xerox_mfp] sane_xerox_mfp_control_option: 8, <0> => 00000000, 0
[12:49:42.954404] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=10)
[12:49:42.954413] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 10
[12:49:42.954421] [dll] sane_control_option(handle=0x55aa37580a50,option=10,action=1,value=0x7ffe8e6b1420,info=0x7ffe8e6b12e4)
[12:49:42.954432] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 10, <1>, 0x7ffe8e6b1420, 0x7ffe8e6b12e4
[12:49:42.954444] [xerox_mfp] sane_xerox_mfp_control_option: 10, <1> => 01290000, 4
[12:49:42.954454] [dll] sane_get_option_descriptor(handle=0x55aa37580a50,option=2)
[12:49:42.954463] [xerox_mfp] sane_xerox_mfp_get_option_descriptor: 0x55aa3757caf0, 2
[12:49:42.954471] [dll] sane_control_option(handle=0x55aa37580a50,option=2,action=0,value=0x7ffe8e6b12e0,info=(nil))
[12:49:42.954480] [xerox_mfp] sane_xerox_mfp_control_option: 0x55aa3757caf0, 2, <0>, 0x7ffe8e6b12e0, (nil)
[12:49:42.954491] [xerox_mfp] sane_xerox_mfp_control_option: 2, <0> => 00000064, 0
Scanning infinity pages, incrementing by 1, numbering from 1
Scanning page 1
[12:49:42.954529] [dll] sane_start(handle=0x55aa37580a50)
[12:49:42.954537] [xerox_mfp] sane_xerox_mfp_start: 0x55aa3757caf0
[12:49:42.954546] [xerox_mfp] :: dev_command(RESERVE_UNIT[0x16], 32)
[12:49:42.954602] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:43.991261] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:43.991334] [xerox_mfp] :: dev_command(SET_WINDOW[0x24], 32)
[12:49:43.991435] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:45.031304] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:45.031376] [xerox_mfp] :: dev_command(OBJECT_POSITION[0x31], 32)
[12:49:45.031498] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:46.081224] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:46.081293] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:49:46.081356] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:47.111324] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:47.111372] [xerox_mfp] dev_command(READ[0x28]): => 3: Device busy
[12:49:47.111426] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:49:47.111501] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:48.151447] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:48.151519] [xerox_mfp] dev_command(READ[0x28]): => 3: Device busy
[12:49:48.151530] [xerox_mfp] (READ) sleeping(10 ms).. [0 0]
[12:49:48.161641] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:49:48.161794] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:49.191200] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:49.191266] [xerox_mfp] dev_command(READ[0x28]): => 3: Device busy
[12:49:49.191277] [xerox_mfp] (READ) sleeping(100 ms).. [0 0]
[12:49:49.291411] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:49:49.291605] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:50.391329] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:50.391385] [xerox_mfp] acquiring, size per band v: 128, h: 128, block: 16400, slack: 16
[12:49:50.391494] [dll] sane_get_parameters(handle=0x55aa37580a50,params=0x7ffe8e6b1400)
[12:49:50.391526] [xerox_mfp] sane_xerox_mfp_get_parameters: 0x55aa3757caf0, 0x7ffe8e6b1400
scanimage: scanning image of size 864x1189 pixels at 1 bits/pixel
scanimage: acquiring gray frame
[12:49:50.391652] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:49:50.391678] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:49:50.391691] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:49:50.391773] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:49:51.431175] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 16400
[12:49:51.432193] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:49:51.432213] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:49:51.432223] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:49:51.432284] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:52.471428] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:52.471499] [xerox_mfp] acquiring, size per band v: 128, h: 128, block: 16400, slack: 16
[12:49:52.471509] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:49:52.471629] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:49:53.511689] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 16400
[12:49:53.513635] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:49:53.513664] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:49:53.513674] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:49:53.513741] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:54.551470] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:54.551553] [xerox_mfp] acquiring, size per band v: 128, h: 128, block: 16400, slack: 16
[12:49:54.551564] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:49:54.551680] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:49:55.591304] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 16400
[12:49:55.593688] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:49:55.593738] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:49:55.593750] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:49:55.593855] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:56.631280] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:56.631358] [xerox_mfp] acquiring, size per band v: 128, h: 128, block: 16400, slack: 16
[12:49:56.631369] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:49:56.631471] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:49:58.711440] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 16400
[12:49:58.714455] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:49:58.714494] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:49:58.714505] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:49:58.714619] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:49:59.751472] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:49:59.751529] [xerox_mfp] acquiring, size per band v: 128, h: 128, block: 16400, slack: 16
[12:49:59.751539] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:49:59.751609] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:50:00.801590] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 16400
[12:50:00.803656] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:50:00.803677] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:50:00.803687] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:50:00.803816] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:01.831264] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:50:01.831315] [xerox_mfp] acquiring, size per band v: 128, h: 128, block: 16400, slack: 16
[12:50:01.831328] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:50:01.831410] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:50:02.871494] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 16400
[12:50:02.873377] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:50:02.873392] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:50:02.873402] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:50:02.873493] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:03.921187] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:50:03.921253] [xerox_mfp] acquiring, size per band v: 128, h: 128, block: 16400, slack: 16
[12:50:03.921265] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:50:03.921324] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:50:04.951510] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 16400
[12:50:04.953375] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:50:04.953394] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:50:04.953404] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:50:04.953514] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:05.991167] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:50:05.991222] [xerox_mfp] acquiring, size per band v: 128, h: 128, block: 16400, slack: 16
[12:50:05.991238] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:50:05.991301] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:50:07.031172] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 16400
[12:50:07.033689] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:50:07.033714] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:50:07.033724] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:50:07.033774] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:08.081648] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:50:08.081738] [xerox_mfp] acquiring, size per band v: 128, h: 128, block: 16400, slack: 16
[12:50:08.081750] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:50:08.081857] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:50:09.121255] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 16400
[12:50:09.122509] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:50:09.122525] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:50:09.122535] [xerox_mfp] :: dev_command(READ[0x28], 32)
[12:50:09.122592] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:10.151516] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:50:10.151584] [xerox_mfp] acquiring, size per band v: 5, h: 128, last block: 656, slack: 16
[12:50:10.151595] [xerox_mfp] :: dev_command(READ_IMAGE[0x29], 32)
[12:50:10.151658] [xerox_mfp] tcp_dev_request: wait for 65536 bytes
[12:50:11.191315] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 65536, bytes read: 656
[12:50:11.191419] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:50:11.191436] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:50:11.191859] [dll] sane_read(handle=0x55aa37580a50,data=0x55aa37561ea0,maxlen=32768,lenp=0x7ffe8e6b13d4)
[12:50:11.191874] [xerox_mfp] sane_xerox_mfp_read: 0x55aa3757caf0, 0x55aa37561ea0, 32768, 0x7ffe8e6b13d4
[12:50:11.191884] [xerox_mfp] dev_stop: 0x55aa3757caf0, scanning 1, reserved 1
[12:50:11.191894] [xerox_mfp] :: dev_command(RELEASE_UNIT[0x17], 32)
[12:50:11.191993] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:12.231192] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:50:12.231252] [xerox_mfp] total image 864*1189 size 128412 (win 10204*14031), 1024*1157 10 data: 148256, out 128412 bytes
scanimage: read 128412 bytes in total
Scanned page 1. (scanner status = 5)
Scanning page 2
[12:50:12.231538] [dll] sane_start(handle=0x55aa37580a50)
[12:50:12.231559] [xerox_mfp] sane_xerox_mfp_start: 0x55aa3757caf0
[12:50:12.231572] [xerox_mfp] :: dev_command(RESERVE_UNIT[0x16], 32)
[12:50:12.231650] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:13.271525] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:50:13.271608] [xerox_mfp] :: dev_command(SET_WINDOW[0x24], 32)
[12:50:13.271780] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:14.311887] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:50:14.311949] [xerox_mfp] dev_command(SET_WINDOW[0x24]): => 3: Device busy
[12:50:14.311961] [xerox_mfp] :: dev_command(OBJECT_POSITION[0x31], 32)
[12:50:14.312051] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:15.351240] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 32
[12:50:15.351293] [xerox_mfp] dev_command(OBJECT_POSITION[0x31]): => 3: Device busy
[12:50:15.351303] [xerox_mfp] (OBJECT_POSITION) sleeping(10 ms).. [0 1]
[12:50:15.361386] [xerox_mfp] :: dev_command(OBJECT_POSITION[0x31], 32)
[12:50:15.361493] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:16.391239] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 0
[12:50:16.391309] [xerox_mfp] dev_command: illegal response len 0, need 32
[12:50:16.391320] [xerox_mfp] dev_stop: 0x55aa3757caf0, scanning 0, reserved 1
[12:50:16.391329] [xerox_mfp] :: dev_command(RELEASE_UNIT[0x17], 32)
[12:50:16.391432] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[12:50:17.431729] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 0
[12:50:17.431785] [xerox_mfp] dev_command: illegal response len 0, need 32
[12:50:17.431795] [xerox_mfp] total image 864*1189 size 0 (win 10204*14031), 1024*1157 0 data: 0, out 0 bytes
scanimage: sane_start: Error during device I/O
Batch terminated, 1 page scanned
[12:50:17.431812] [dll] sane_cancel(handle=0x55aa37580a50)
[12:50:17.431823] [xerox_mfp] sane_xerox_mfp_cancel: 0x55aa3757caf0
[12:50:17.431833] [dll] sane_close(handle=0x55aa37580a50)
[12:50:17.431840] [xerox_mfp] sane_xerox_mfp_close: 0x55aa3757caf0 (tcp 192.168.1.111)
[12:50:17.431848] [xerox_mfp] tcp_dev_close: closing dev 0x55aa3757caf0
[12:50:17.431949] [dll] sane_exit: exiting
[12:50:17.431964] [dll] sane_exit: calling backend `xerox_mfp's exit function
[12:50:17.432106] [dll] sane_exit: finished

Still can't figure it out, how to make xerox_mfp to appear in scanner list...

alexpevzner commented 3 years ago

Hi @diabolusss,

first of all, I see the following lines:

List of available devices:
    escl:http://192.168.1.111:80 escl:http://192.168.1.111:80
    airscan:w0:Samsung SL M2875FD

It means that your printer was recognized by 2 drivers: sane-escl, which supports only eSCL protocol, and sane-airscan, which supports eSCL and WSD. And sane-airscan recognizes your printer as WSD device.

Then, scanimage fails, trying to open device, exposed by sane-escl:

scanimage: open of device escl:http://192.168.1.111:80 failed: Out of memory

It is hard to say, why scanimage prefers device, exposed by sane-escl, not by sane-airscan. Probably, it happens because that device name appears first in the list. So you may try to give device's name to the scanimage directly (w0:Samsung SL M2875FD) or use some GUI app that allows to choose device out of the list.

Then about your changes in the airscan.conf file. Guessing WSD port is exceptionally hard. Typically, it is not 80, not 8080 and not printer's port. There are airscan-discover utility that comes with sane-airscan, it does it automatically and prints all the discovered devices in the format, suitable to adding to the airscan.conf file. But as I see in the first log that device was discovered, probably this step is not needed.

Also, I see a lot of error messages from the XML parser. Most likely, these messages come from the sane-escl driver, because sane-airscan attempts to hook libxml error messages, but here I cannot be 100% sure, because this stuff in libxml is quite messy.

It is hard to say, why sane-airscan doesn't discover the device as eSCL, while sane-escl does, without seeing the sane-airscan trace files (it is much more detailed log that log which goes to console). To enable protocol trace, the following lines in the airscan.conf file needs to be uncommented:

[debug]
trace = ~/airscan/trace
enable = true

Protocol trace files will be written to the ~/airscan/trace directory, which will be created automatically.

So, my recommendations are following: 1, With unmodified airscan.conf, try to choose the w0:Samsung SL M2875FD device explicitly

  1. If you got "device not found" error, write the following lines in the airscan.conf file and retry:
    [options]
    protocol = manual

    Note, setting protocol = manual will expose WSD side of the device, even if shadowed by its eSCL instance (by default, if device supports both protocols, sane-airscan automatically prefers eSCL).

  2. If more investigations are required, please enable protocol trace and come back with these files.
diabolusss commented 3 years ago

Hello, @alexpevzner! First of all, thank you for checking this issue.

It means that your printer was recognized by 2 drivers: sane-escl, which supports only eSCL protocol, and sane-airscan, which supports eSCL and WSD. And sane-airscan recognizes your printer as WSD device.

  1. With unmodified airscan.conf, try to choose the w0:Samsung SL M2875FD device explicitly
  2. If you got "device not found" error, write the following lines in the airscan.conf file and retry:

I don't know about escl side, (i've remembered, that it's static record, too) but second part, related to sane-aiscan, wasn't automatically recognized - i have statically added this line to airscan.conf, as i've previously mentioned. What i see from tests, that it doesn't matter what i write there - it will be listed (and checked) anyway. airscan-discover finds nothing in any case.

Guessing WSD port is exceptionally hard.

I believe there is nothing to guess, because it's listed in printer settings as 8018. But it just doesn't work. I suppose service can be hidden behind some url path, like in example "Kyocera MFP Scanner" = http://192.168.1.102:9095/eSCL, or like http://192.168.1.111:8018/ScannerCapabilities. But of course, this obvious examples doesn't work. Maybe we can find an answer in Samsung mobile print app which perfectly works on android from the same place...

scanimage-zeroconf.log scanimage-Samsung-SL-M2875FD:8018.log scanimage-Samsung-SL-M2875FD:test.log

It is hard to say, why scanimage prefers device, exposed by sane-escl, not by sane-airscan

Sorry for that, i've forgot that i made changes in escl.conf, too. I've explicitly added "device http://192.168.1.111:80 "Samsung M267x 287x Series (192.168.1.111)" \"hack=localhost\"", which actually means that only xerox_mfp is kind of working out of the box (magically triggered, only once and only for 1 page)...

Checking escl debug we see that it just return invalid request html page. export SANE_DEBUG_DLL=255 && export SANE_DEBUG_XEROX_MFP=4 && export SANE_DEBUG_ESCL=255 && scanimage -d "escl:http://192.168.1.111:80"

[sanei_debug] Setting debug level of escl to 255.
[07:46:44.653294] [escl] escl sane_init
[07:46:44.655191] [dll] init: backend `escl' is version 1.0.0
[07:46:44.655227] [escl] escl sane_open
[07:46:44.655236] [escl] escl_parse_name
[07:46:44.655278] [escl] escl_curl_url: URL: http://192.168.1.111:80/eSCL/ScannerCapabilities
[07:46:44.655303] [escl] Before use hack
[07:46:44.655310] [escl] After use hack
[07:46:44.660937] [escl] XML Capabilities[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Invalid Request</TITLE>
</HEAD>

<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<CENTER>
<FONT SIZE="+2" COLOR="#FFFFFF" ALIGN="Center">
</FONT>
<B>Invalid Request. Some Error</B>
</BODY>

</HTML>

]
file.xml:1: parser error : Space required after the Public Identifier
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
                                                ^
file.xml:1: parser error : SystemLiteral " or ' expected
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
                                                ^
file.xml:1: parser error : SYSTEM or PUBLIC, the URI is missing
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
                                                ^
file.xml:12: parser error : Opening and ending tag mismatch: CENTER line 0 and BODY
</BODY>
       ^
file.xml:14: parser error : Opening and ending tag mismatch: BODY line 0 and HTML
</HTML>
       ^
file.xml:16: parser error : EndTag: '</' not found

^
scanimage: open of device escl:http://192.168.1.111:80 failed: Out of memory
[07:46:44.661415] [dll] sane_exit: exiting
[07:46:44.661438] [dll] sane_exit: calling backend `escl's exit function
[07:46:44.661447] [escl] escl sane_exit
[07:46:44.661851] [dll] sane_exit: finished
alexpevzner commented 3 years ago

Hi @diabolusss,

Samsung mobile print app may use its own proprietary protocol. If printer supports eSCL, it must work with Mopria scan for Android.

I've looked to the manual for your device.

The manual claims, on page 248, that WSD URL is http://111.111.111.111/ws/ (assuming device address is 111.111.111.111)

Also strange that device is not recognized by Avahi. Are you sure that MDNS is enabled? Page 203 of the manual explains how to enable it.

diabolusss commented 3 years ago

Thank you, for finding manual, i haven't thought that there could be any useful information. I have tried any new possible option using new url, but have no success. However, now i have a strong belief that this printer is not escl capable based on Samsung mobile print app - i think that you are right, it uses propritary driver, because it

  1. automatically finds printer and can scan from any place without issues (i mean on the same lan, but behind another router, too).
  2. mopria app can't do that, i can't even add it manually.
  3. xerox_mfp sometimes magically reveals - while testing mopria i have resetted network configuration to default, tried any port i could imagine, including :9100 - it printed some garbage like before and now i can see xerox_mfp from my laptop. I think that samsung communicates on this :9100 port and sends some magic byte sequence, because even now, when xerox_mfp sees it - it fails to properly query it.

It's interesting, but xerox_mfp uses some unknown port, because when i use 80 or 8018(wsd) it doesn't recognize it.

$ export SANE_DEBUG_DLL=255 && export SANE_DEBUG_XEROX_MFP=255 && SANE_DEBUG_ESCL=255 && scanimage -L
[23:01:00.866358] [sanei_debug] Setting debug level of dll to 255.
[23:01:00.866447] [dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.32
[23:01:00.866464] [dll] sane_init/read_dlld: attempting to open directory `./dll.d'
[23:01:00.866481] [dll] sane_init/read_dlld: attempting to open directory `/etc/sane.d/dll.d'
[23:01:00.866497] [dll] sane_init/read_dlld: using config directory `/etc/sane.d/dll.d'
[23:01:00.866528] [dll] sane_init/read_dlld: considering /etc/sane.d/dll.d/utsushi
[23:01:00.866549] [dll] sane_init/read_config: reading dll.d/utsushi
[23:01:00.866577] [dll] add_backend: adding backend `utsushi'
[23:01:00.866591] [dll] sane_init/read_dlld: considering /etc/sane.d/dll.d/airscan
[23:01:00.866609] [dll] sane_init/read_config: reading dll.d/airscan
[23:01:00.866624] [dll] add_backend: adding backend `airscan'
[23:01:00.866642] [dll] sane_init/read_dlld: done.
[23:01:00.866657] [dll] sane_init/read_config: reading dll.conf
[23:01:00.866681] [dll] add_backend: adding backend `escl'
[23:01:00.866692] [dll] add_backend: adding backend `hp'
[23:01:00.866701] [dll] add_backend: adding backend `hp3500'
[23:01:00.866709] [dll] add_backend: adding backend `hp3900'
[23:01:00.866717] [dll] add_backend: adding backend `hp4200'
[23:01:00.866724] [dll] add_backend: adding backend `hp5400'
[23:01:00.866735] [dll] add_backend: adding backend `hp5590'
[23:01:00.866743] [dll] add_backend: adding backend `hpljm1005'
[23:01:00.866753] [dll] add_backend: adding backend `hpsj5s'
[23:01:00.866760] [dll] add_backend: adding backend `hs2p'
[23:01:00.866773] [dll] add_backend: adding backend `pint'
[23:01:00.866787] [dll] add_backend: adding backend `xerox_mfp'
[23:01:00.866799] [dll] add_backend: adding backend `smfp'
[23:01:00.866826] [dll] sane_get_devices
[23:01:00.866838] [dll] load: searching backend `smfp' in `/usr/lib/sane'
[23:01:00.866849] [dll] load: trying to load `/usr/lib/sane/libsane-smfp.so.1'
[23:01:00.866867] [dll] load: dlopen()ing `/usr/lib/sane/libsane-smfp.so.1'
[23:01:00.868894] [dll] init: initializing backend `smfp'
[23:01:00.881464] [dll] init: backend `smfp' is version 1.0.1
[23:01:01.883537] [dll] load: searching backend `xerox_mfp' in `/usr/lib/sane'
[23:01:01.883596] [dll] load: trying to load `/usr/lib/sane/libsane-xerox_mfp.so.1'
[23:01:01.883620] [dll] load: dlopen()ing `/usr/lib/sane/libsane-xerox_mfp.so.1'
[23:01:01.884056] [dll] init: initializing backend `xerox_mfp'
[23:01:01.884088] [sanei_debug] Setting debug level of xerox_mfp to 255.
[23:01:01.884098] [xerox_mfp] sane_init: Xerox backend (build 13), version != null, authorize != null
[23:01:01.892523] [dll] init: backend `xerox_mfp' is version 1.0.13
[23:01:01.892552] [xerox_mfp] sane_xerox_mfp_get_devices: 0x7ffd8848d910, 0
[23:01:01.892679] [xerox_mfp] list_one_device: tcp 192.168.1.111
[23:01:01.892692] [xerox_mfp] tcp_dev_open: open tcp 192.168.1.111
[23:01:01.894064] [xerox_mfp] :: dev_command(INQUIRY[0x12], 70)
[23:01:01.894163] [xerox_mfp] tcp_dev_request: wait for 1024 bytes
[23:01:02.942502] [xerox_mfp] tcp_dev_request: error Resource temporarily unavailable, bytes requested: 1024, bytes read: 70
[23:01:02.942558] [xerox_mfp] [70] a8 00 43 10 53 61 6d 73 75 6e 67 20 4d 32 36 37 78 20 32 38 37 78 20 53 65 72 69 65 73 20 20 20 20 20 20 20 11 33 86 2b 00 00 27 e0 00 00 41 a0 00 01 51 00 00 02 00 00 00 00 41 a0 00 00 36 d8 00 00 05 05 11 00
[23:01:02.942571] [xerox_mfp] dev_inquiry: found Samsung/M267x 287x Series
[23:01:02.942584] [xerox_mfp] tcp_dev_close: closing dev 0x55e1760d5ca0
[23:01:02.942743] [dll] load: searching backend `pint' in `/usr/lib/sane'
[23:01:02.942760] [dll] load: trying to load `/usr/lib/sane/libsane-pint.so.1'
[23:01:02.942780] [dll] load: couldn't open `/usr/lib/sane/libsane-pint.so.1' (No such file or directory)
[23:01:02.942790] [dll] load: couldn't find backend `pint' (No such file or directory)
[23:01:02.942799] [dll] load: searching backend `hs2p' in `/usr/lib/sane'
[23:01:02.942806] [dll] load: trying to load `/usr/lib/sane/libsane-hs2p.so.1'
[23:01:02.942832] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hs2p.so.1'
[23:01:02.943038] [dll] init: initializing backend `hs2p'
[23:01:02.943531] [dll] init: backend `hs2p' is version 1.0.0
[23:01:02.943549] [dll] load: searching backend `hpsj5s' in `/usr/lib/sane'
[23:01:02.943560] [dll] load: trying to load `/usr/lib/sane/libsane-hpsj5s.so.1'
[23:01:02.943575] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hpsj5s.so.1'
[23:01:02.943852] [dll] init: initializing backend `hpsj5s'
[23:01:02.943992] [dll] init: backend `hpsj5s' is version 1.0.3
[23:01:02.944007] [dll] load: searching backend `hpljm1005' in `/usr/lib/sane'
[23:01:02.944018] [dll] load: trying to load `/usr/lib/sane/libsane-hpljm1005.so.1'
[23:01:02.944032] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hpljm1005.so.1'
[23:01:02.944259] [dll] init: initializing backend `hpljm1005'
[23:01:02.944362] [dll] init: backend `hpljm1005' is version 1.0.1
[23:01:02.944380] [dll] load: searching backend `hp5590' in `/usr/lib/sane'
[23:01:02.944390] [dll] load: trying to load `/usr/lib/sane/libsane-hp5590.so.1'
[23:01:02.944409] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp5590.so.1'
[23:01:02.944625] [dll] init: initializing backend `hp5590'
[23:01:02.944712] [dll] init: backend `hp5590' is version 1.0.8
[23:01:02.944728] [dll] load: searching backend `hp5400' in `/usr/lib/sane'
[23:01:02.944739] [dll] load: trying to load `/usr/lib/sane/libsane-hp5400.so.1'
[23:01:02.944756] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp5400.so.1'
[23:01:02.944965] [dll] init: initializing backend `hp5400'
[23:01:02.945079] [dll] init: backend `hp5400' is version 1.0.3
[23:01:02.945093] [dll] load: searching backend `hp4200' in `/usr/lib/sane'
[23:01:02.945102] [dll] load: trying to load `/usr/lib/sane/libsane-hp4200.so.1'
[23:01:02.945115] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp4200.so.1'
[23:01:02.945318] [dll] init: initializing backend `hp4200'
[23:01:02.945439] [dll] init: backend `hp4200' is version 1.0.0
[23:01:02.945451] [dll] load: searching backend `hp3900' in `/usr/lib/sane'
[23:01:02.945459] [dll] load: trying to load `/usr/lib/sane/libsane-hp3900.so.1'
[23:01:02.945471] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp3900.so.1'
[23:01:02.946069] [dll] init: initializing backend `hp3900'
[23:01:02.946199] [dll] init: backend `hp3900' is version 1.0.0
[23:01:02.946214] [dll] load: searching backend `hp3500' in `/usr/lib/sane'
[23:01:02.946223] [dll] load: trying to load `/usr/lib/sane/libsane-hp3500.so.1'
[23:01:02.946237] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp3500.so.1'
[23:01:02.946474] [dll] init: initializing backend `hp3500'
[23:01:02.946563] [dll] init: backend `hp3500' is version 1.0.0
[23:01:02.946583] [dll] load: searching backend `hp' in `/usr/lib/sane'
[23:01:02.946596] [dll] load: trying to load `/usr/lib/sane/libsane-hp.so.1'
[23:01:02.946615] [dll] load: dlopen()ing `/usr/lib/sane/libsane-hp.so.1'
[23:01:02.946906] [dll] init: initializing backend `hp'
[23:01:02.946943] [dll] init: backend `hp' is version 1.0.8
[23:01:02.947548] [dll] load: searching backend `escl' in `/usr/lib/sane'
[23:01:02.947569] [dll] load: trying to load `/usr/lib/sane/libsane-escl.so.1'
[23:01:02.947582] [dll] load: dlopen()ing `/usr/lib/sane/libsane-escl.so.1'
[23:01:02.967732] [dll] init: initializing backend `escl'
[23:01:02.967776] [sanei_debug] Setting debug level of escl to 255.
[23:01:02.967785] [escl] escl sane_init
[23:01:02.969479] [dll] init: backend `escl' is version 1.0.0
[23:01:02.969505] [escl] escl sane_get_devices
[23:01:03.986287] [dll] load: searching backend `airscan' in `/usr/lib/sane'
[23:01:03.986357] [dll] load: trying to load `/usr/lib/sane/libsane-airscan.so.1'
[23:01:03.986395] [dll] load: dlopen()ing `/usr/lib/sane/libsane-airscan.so.1'
[23:01:03.990410] [dll] init: initializing backend `airscan'
API: sane_init(): called
loading configuration file /etc/sane.d/airscan.conf
MDNS: AVAHI_CLIENT_S_RUNNING
WSDD: netif addresses update:
WSDD:  + 192.168.1.218
WSDD:  + fe80::aa5e:45ff:fe38:3f1d%2
WSDD:  + 10.160.195.129%2
WSDD:  + fe80::216:3eff:fec7:3df0%4
WSDD: 192.168.1.218: started discovery, UDP port=38477
WSDD: fe80::aa5e:45ff:fe38:3f1d: started discovery, UDP port=36458
WSDD: 10.160.195.129: started discovery, UDP port=36597
WSDD: fe80::216:3eff:fec7:3df0: started discovery, UDP port=34315
[23:01:03.999445] [dll] init: backend `airscan' is version 1.0.0
API: sane_get_devices(): called
zeroconf: zeroconf_device_list_get: requested
zeroconf: device_list wait: requested
zeroconf: device_list wait: DNS-SD not finished...
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_CACHE_EXHAUSTED
MDNS: browse-ipv6("_ipp._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_ipps._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
MDNS: browse-ipv6("_uscan._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCAN_TCP: initial scan finished
MDNS: browse-ipv6("_uscans._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_USCANS_TCP: initial scan finished
MDNS: browse-ipv6("_scanner._tcp"): AVAHI_BROWSER_ALL_FOR_NOW
zeroconf: ZEROCONF_MDNS_HINT: initial scan finished
zeroconf: device_list wait: WSDD not finished...
WSDD: fe80::aa5e:45ff:fe38:3f1d: done discovery
WSDD: fe80::216:3eff:fec7:3df0: done discovery
WSDD: 192.168.1.218: done discovery
WSDD: 10.160.195.129: done discovery
zeroconf: ZEROCONF_WSD: initial scan finished
zeroconf: device_list wait: OK
zeroconf: zeroconf_device_list_get: building list of devices
zeroconf: zeroconf_device_list_get: resulting list:
zeroconf:   WSD   "w0:Samsung SL M2875FD:8018"
zeroconf:   WSD   "w1:Samsung SL M2875FD:manual"
API: sane_get_devices(): done
[23:01:06.513086] [dll] load: searching backend `utsushi' in `/usr/lib/sane'
[23:01:06.513117] [dll] load: trying to load `/usr/lib/sane/libsane-utsushi.so.1'
[23:01:06.513165] [dll] load: dlopen()ing `/usr/lib/sane/libsane-utsushi.so.1'
[23:01:06.519921] [dll] init: initializing backend `utsushi'
[23:01:06.519954] [dll] init: backend `utsushi' is version 1.1.0
[23:01:06.635139] [dll] sane_get_devices: found 3 devices
device `xerox_mfp:tcp 192.168.1.111' is a Samsung M267x 287x Series multi-function peripheral
device `airscan:w0:Samsung SL M2875FD:8018' is a WSD Samsung SL M2875FD:8018 ip=192.168.1.111
device `airscan:w1:Samsung SL M2875FD:manual' is a WSD Samsung SL M2875FD:manual ip=192.168.1.111
[23:01:06.635184] [dll] sane_exit: exiting
[23:01:06.635192] [dll] sane_exit: calling backend `smfp's exit function
[23:01:06.635657] [dll] sane_exit: calling backend `xerox_mfp's exit function
[23:01:06.635738] [dll] sane_exit: calling backend `hs2p's exit function
[23:01:06.635791] [dll] sane_exit: calling backend `hpsj5s's exit function
[23:01:06.635850] [dll] sane_exit: calling backend `hpljm1005's exit function
[23:01:06.635903] [dll] sane_exit: calling backend `hp5590's exit function
[23:01:06.635956] [dll] sane_exit: calling backend `hp5400's exit function
[23:01:06.636011] [dll] sane_exit: calling backend `hp4200's exit function
[23:01:06.636061] [dll] sane_exit: calling backend `hp3900's exit function
[23:01:06.636122] [dll] sane_exit: calling backend `hp3500's exit function
[23:01:06.636172] [dll] sane_exit: calling backend `hp's exit function
[23:01:06.636237] [dll] sane_exit: calling backend `escl's exit function
[23:01:06.636248] [escl] escl sane_exit
[23:01:06.636308] [dll] sane_exit: calling backend `airscan's exit function
API: sane_exit(): called
API: sane_exit(): OK
[23:01:06.640923] [dll] sane_exit: calling backend `utsushi's exit function
[23:01:06.640975] [dll] sane_exit: finished

I tried to scan which ports are open on printer and after that xefox_mfd lost printer and printer got insane: web service doesn't load properly and doesn't respond on succesfully rendered options, and printer doesn't respond on wakeup button. Samsung app can't scan, too. Power cycling is needed...

$ sudo nmap -sTU -O 192.168.1.111
Starting Nmap 7.92 ( https://nmap.org ) at 2021-08-26 23:43 EEST
Nmap scan report for 192.168.1.111
Host is up (0.0011s latency).
Not shown: 993 closed udp ports (port-unreach), 993 closed tcp ports (conn-refused)
PORT      STATE         SERVICE
80/tcp    open          http
427/tcp   open          svrloc
515/tcp   open          printer
631/tcp   open          ipp
5200/tcp  open          targus-getdata
9100/tcp  open          jetdirect
10001/tcp open          scp-config
137/udp   open|filtered netbios-ns
161/udp   open|filtered snmp
427/udp   open|filtered svrloc
1900/udp  open|filtered upnp
3702/udp  open|filtered ws-discovery
5353/udp  open|filtered zeroconf
6000/udp  open|filtered X11
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.92%E=4%D=8/26%OT=80%CT=1%CU=2%PV=Y%DS=2%DC=I%G=Y%TM=6127FCF8%P=
OS:x86_64-pc-linux-gnu)SEQ(SP=104%GCD=1%ISR=105%TI=I%II=I%TS=A)SEQ(SP=105%G
OS:CD=1%ISR=10B%TI=I%CI=I%II=I%TS=A)SEQ(SP=108%GCD=1%ISR=10B%TI=I%TS=A)OPS(
OS:O1=M5B4NW0NNSNNT11%O2=M578NW0NNSNNT11%O3=M280NW0NNT11%O4=M218NW0NNSNNT11
OS:%O5=M218NW0NNSNNT11%O6=M109NNSNNT11)WIN(W1=21F0%W2=2088%W3=2258%W4=20C0%
OS:W5=20C0%W6=209D)ECN(R=Y%DF=Y%T=40%W=2238%O=M5B4NW0NNS%CC=N%Q=)T1(R=Y%DF=
OS:Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=N%T=40%W=0%S=A%A=Z%
OS:F=R%O=%RD=0%Q=)T5(R=Y%DF=N%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=N
OS:%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=N)U1(R=Y%DF=N%T=FF%IPL=38%UN=0%RIP
OS:L=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=FF%CD=S)

Network Distance: 2 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 16.21 seconds

Clean scan after power cycling . There is no 8018 port, while settings show that WSD is enabled.

$ sudo nmap -sTU -O 192.168.1.111
Starting Nmap 7.92 ( https://nmap.org ) at 2021-08-26 23:25 EEST
Nmap scan report for 192.168.1.111
Host is up (0.0012s latency).
Not shown: 993 closed udp ports (port-unreach), 993 closed tcp ports (conn-refused)
PORT      STATE         SERVICE
80/tcp    open          http
427/tcp   open          svrloc
515/tcp   open          printer
631/tcp   open          ipp
5200/tcp  open          targus-getdata
9100/tcp  open          jetdirect
10001/tcp open          scp-config
137/udp   open          netbios-ns
161/udp   open          snmp
427/udp   open          svrloc
1900/udp  open|filtered upnp
3702/udp  open|filtered ws-discovery
5353/udp  open          zeroconf
6000/udp  open|filtered X11
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.92%E=4%D=8/26%OT=80%CT=1%CU=2%PV=Y%DS=2%DC=I%G=Y%TM=6127F8E4%P=
OS:x86_64-pc-linux-gnu)SEQ(SP=103%GCD=1%ISR=10E%TI=I%CI=RI%II=RI%SS=O%TS=A)
OS:SEQ(SP=100%GCD=1%ISR=107%TI=I%CI=I%II=I%TS=A)SEQ(SP=106%GCD=1%ISR=107%TI
OS:=I%TS=A)OPS(O1=M5B4NW0NNSNNT11%O2=M578NW0NNSNNT11%O3=M280NW0NNT11%O4=M21
OS:8NW0NNSNNT11%O5=M218NW0NNSNNT11%O6=M109NNSNNT11)WIN(W1=21F0%W2=2088%W3=2
OS:258%W4=20C0%W5=20C0%W6=209D)ECN(R=Y%DF=Y%T=40%W=2238%O=M5B4NW0NNS%CC=N%Q
OS:=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=N%T=40%
OS:W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=N%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=
OS:)T6(R=Y%DF=N%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=N)U1(R=Y%DF=N%T=FF%IPL
OS:=38%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=FF%CD=S)

Network Distance: 2 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.82 seconds

Maybe i'll try to sniff packets when xerox_mfd will show up again... I'm curious which port it actually uses.

diabolusss commented 3 years ago

By the way, xerox_mfp 70 byte long response

a800431053616d73756e67204d32363778203238377820536572696573202020202020201133862b000027e0000041a00001510000020000000041a0000036d8000005051100

can be decoded as

¨CSamsung M267x 287x Series       3†+'àA QA 6Ø
diabolusss commented 3 years ago

Xerox mfp is scanning via 9400 port. But it's doing it very long. Maybe it's related with network speed setting that was set to auto, i'll try again with full speed (100mbps full duplex)...

xerox_mfp driver log wireshark capture calling scanimage -L and -h -d "xerox_mfp:..." wireshark capture while scanning

Just for a note Version info. (Network settings can be found in first post, it's default and still valid)

System Firmware Version V3.00.01.40 AUG-18-2017
Network Firmware Version 31.03.60_0.1_13-11-18
IP Core Version 31.03.60_0.1_13-11-18
Engine Firmware Version V1.00.15 06-05-2017
PCL5E Version F7.67.01 01-15-2016 
PCLXL Version F9.00.12.01 03-22-2016 
SPL Version SPL 5.98.01 05-15-2015 

UPD01 Network speed setting change fixes scanner service availability for sure. More than 3 consecutive scans using ADF and flatbed sources and it's still there. But only 1 page out of two can be scanned using ADF, second page gets lost somewhere. Flatbed is buggy. While ADF is working (scans only 1 page, but still i can repeat multiple times), Flatbed got lost and xerox_mfp can't read from there (device busy). Every scan is very long, and i suppose it's a problem of driver, because printer physically make scan in few seconds. But to receive bytes via xerox_mfp passes a way more that few seconds. I believe it's the main reason why with adf scan only one page gets retrieved and with flatbed high resolution it disappears - buffer overflow on scanner side.

xerox_mfp_9400_scanimage_adf_scan2.pcapng.gz xerox_mfp_9400_scanimage_adf_scan3.pcapng.gz

To finish this up i'll try to scan from wine maybe there is will work, obviously with proprietary drivers. It's very sad that manufacturer doesn't fully support Linux...

markosjal commented 3 years ago

I have been testing with a Brother MFP8710 . This scanner pre-dates eSCL on Brother. I have the choice of WSD or Brother drivers on this device. Honestly I found the WSD driver here to be spotty. It does not provide full resolutions on most scanners and does not work consistently on others . I strongly suggest you install the Brother Linux drivers and call it good. In fact I have now seen that if Windows installs a generic WSD driver like it did on Brother and on an HP, WSD did not offer the full resolutions offered by proprietary ( or in the case of the HP driverless escl) drivers . I mean on the HP if I compare mopria Android resolutions and features available over eSCL it is superior to any WSD support I have seen for it. Same goes for the HP drivers, which also are way better than WSD.

The Brother is no different it just seems to be a limited feature set on WSD.

diabolusss commented 3 years ago

@markosjal Thank you for your suggestion, but i can hardly imagine how Brother even linux drivers can help me to scan using Samsung mfp over lan. If you know how it will help me, then, please, describe the steps i should follow to be able to scan over lan. I'm using archlinux. And, in my case Android Mopria app doesn't even identify my scanner (please, see above).

markosjal commented 3 years ago

Sorry My bad about Brother but Ditto for Samsung. I have one of those too . Mine is a M283fdw so I guess I confused them at time of writing. The Samsung ULD driver works well https://support.hp.com/in-en/drivers/selfservice/samsung-xpress-sl-m2875-laser-multifunction-printer-series/16462699/model/16462703. I know there is a debian ULD repo somewhere but if all else fails download the ULD (Universal Linux Driver) driver from Samsung . Once extracted you can choose to install only the scanner if you are Okay with the driverless printing option, but I think you will get more options using the Samsung Print driver.

This will allow you to connect over a LAN to the Samsung MFP. It also offers more options than the WSD driver . I did finally have some success also with SimulPiscator/AirSane to share the Samsung with Android using Mopria but came to find out the hard way that it does not support the feeder, which defeats the whole purpose in my case.

runningman84 commented 3 years ago

maybe you should try this config:

[devices]
"Samsung M2070" = http://10.0.1.111:8018/wsd/scan, wsd

in my arch setup this works just fine!

alexpevzner commented 2 years ago

Hi!

sorry for disappearing for very long time.

Is this issue still relevant?

diabolusss commented 2 years ago

Hi. I believe it's not, i don't use scanner very often, so for my needs scanimage via tcp is enough right now. It's stable for few consequential scans even for ADF source, but i haven't tested it thoroughly. Of course, it's sad that i couldn't find any UI app for user-friendly management, but like i've said, for a rare use case it's acceptable right now.

device xerox_mfp:tcp 192.168.1.111' is a Samsung M267x 287x Series multi-function peripheral

$ cat /usr/bin/scanimage_adf
#!/bin/bash
scanimage --batch='scan_out%d.png' --source ADF -d 'xerox_mfp:tcp 192.168.1.111 9400'
alexpevzner commented 1 year ago

The issue looks obsoleted - closing it for now