Basically, "scanimage -v -d epson2:libusb:003:005 --format png > outfile.png" works, but "scanimage -v --mode color -d epson2:libusb:003:005 --format png > outfile.png" throws the classic "invalid argument"
(It is, in fact, an Epson Perfection 610 USB scanner.) This is a new computer; the scanner worked on my old computer in much the same setup. Running Mint (Ubuntu) 64bit, Sane 1.0.22-7ubuntu1 The following is the output after setting "export SANE_DEBUG_EPSON2=255": scanimage -v --mode color -d epson2:libusb:003:005 --format png > outfile.png [sanei_debug] Setting debug level of epson2 to 255. [epson2] sane_epson2_init: sane-backends 1.0.22 [epson2] epson2 backend, version 1.0.124 [epson2] sane_epson2_open: name = libusb:003:005 [epson2] e2_dev_init [epson2] open_scanner: libusb:003:005 [epson2] scanner opened [epson2] found valid Epson scanner: 0x4b8/0x103 (vendorID/productID) [epson2] e2_set_model: model is 'generic' [epson2] esci_reset [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC @ [epson2] buf[0] 1b . [epson2] buf[1] 40 @ [epson2] e2_send: cmd count, r = 0, w = 1 [epson2] e2_recv: size = 1, buf = 0x7fffd8a8144f [epson2] e2_recv: cmd count, r = 1, w = 1 [epson2] buf[0] 06 . [epson2] e2_discover_capabilities [epson2] esci_request_identity [epson2] e2_cmd_info_block, params len = 2, reply len = 0, buf = 0x7fffd8a813d8 [epson2] e2_send: size = 2, reply = 0 [epson2] e2_send: ESC I [epson2] buf[0] 1b . [epson2] buf[1] 49 I [epson2] e2_send: cmd count, r = 1, w = 2 [epson2] e2_recv: size = 4, buf = 0x7fffd8a81300 [epson2] e2_recv: cmd count, r = 2, w = 2 [epson2] buf[0] 02 . [epson2] buf[1] 00 . [epson2] buf[2] 13 . [epson2] buf[3] 00 . [epson2] e2_recv_info_block: payload length: 19 [epson2] e2_recv: size = 19, buf = 0x1ca1fc0 [epson2] e2_recv: cmd count, r = 3, w = 2 [epson2] buf[0] 44 D [epson2] buf[1] 31 1 [epson2] buf[2] 52 R [epson2] buf[3] 4b K [epson2] buf[4] 00 . [epson2] buf[5] 52 R [epson2] buf[6] 96 . [epson2] buf[7] 00 . [epson2] buf[8] 52 R [epson2] buf[9] 2c , [epson2] buf[10] 01 . [epson2] buf[11] 52 R [epson2] buf[12] 58 X [epson2] buf[13] 02 . [epson2] buf[14] 41 A [epson2] buf[15] ec . [epson2] buf[16] 13 . [epson2] buf[17] 7c | [epson2] buf[18] 1b . [epson2] e2_set_cmd_level: D1 [epson2] e2_add_resolution: add (dpi): 75 [epson2] e2_add_resolution: add (dpi): 150 [epson2] e2_add_resolution: add (dpi): 300 [epson2] e2_add_resolution: add (dpi): 600 [epson2] maximum scan area: 5100x7036 [epson2] e2_set_fbf_area: 0.000000,0.000000 215.899994,297.857330 600 [mm] [epson2] esci_request_status [epson2] e2_send: size = 2, reply = 4 [epson2] e2_send: ESC F [epson2] buf[0] 1b . [epson2] buf[1] 46 F [epson2] e2_send: cmd count, r = 3, w = 3 [epson2] e2_recv: size = 4, buf = 0x7fffd8a81340 [epson2] e2_recv: cmd count, r = 4, w = 3 [epson2] buf[0] 02 . [epson2] buf[1] 00 . [epson2] buf[2] 00 . [epson2] buf[3] 00 . [epson2] status: 00 [epson2] ready [epson2] no option equipment installed [epson2] does NOT support extended commands [epson2] detection with request_extended_status [epson2] esci_request_extended_status [epson2] e2_cmd_info_block, params len = 2, reply len = 42, buf = 0x7fffd8a81380 [epson2] e2_send: size = 2, reply = 46 [epson2] e2_send: ESC f [epson2] buf[0] 1b . [epson2] buf[1] 66 f [epson2] e2_send: cmd count, r = 4, w = 4 [epson2] e2_recv: size = 4, buf = 0x7fffd8a812e0 [epson2] e2_recv: cmd count, r = 5, w = 4 [epson2] buf[0] 02 . [epson2] buf[1] 00 . [epson2] buf[2] 2a * [epson2] buf[3] 00 . [epson2] e2_recv_info_block: payload length: 42 [epson2] e2_recv: size = 42, buf = 0x1ca2000 [epson2] e2_recv: cmd count, r = 6, w = 4 [epson2] buf[0] 01 . [epson2] buf[1] 00 . [epson2] buf[2] 00 . [epson2] buf[3] 00 . [epson2] buf[4] 00 . [epson2] buf[5] 00 . [epson2] buf[6] 00 . [epson2] buf[7] 00 . [epson2] buf[8] 00 . [epson2] buf[9] 00 . [epson2] buf[10] 00 . [epson2] buf[11] 00 . [epson2] buf[12] 00 . [epson2] buf[13] 00 . [epson2] buf[14] 00 . [epson2] buf[15] 00 . [epson2] buf[16] 00 . [epson2] buf[17] 00 . [epson2] buf[18] 00 . [epson2] buf[19] 00 . [epson2] buf[20] 00 . [epson2] buf[21] 00 . [epson2] buf[22] 00 . [epson2] buf[23] 00 . [epson2] buf[24] 00 . [epson2] buf[25] 00 . [epson2] buf[26] 50 P [epson2] buf[27] 65 e [epson2] buf[28] 72 r [epson2] buf[29] 66 f [epson2] buf[30] 65 e [epson2] buf[31] 63 c [epson2] buf[32] 74 t [epson2] buf[33] 69 i [epson2] buf[34] 6f o [epson2] buf[35] 6e n [epson2] buf[36] 36 6 [epson2] buf[37] 31 1 [epson2] buf[38] 30 0 [epson2] buf[39] 20 [epson2] buf[40] 20 [epson2] buf[41] 20 [epson2] main = 01, ADF = 00, TPU = 00, main 2 = 00 [epson2] e2_set_model: model is 'Perfection610' [epson2] push button detected [epson2] no command available to detect capabilities [epson2] esci_request_identity2 [epson2] e2_cmd_info_block, params len = 2, reply len = 0, buf = 0x7fffd8a813d8 [epson2] e2_send: size = 2, reply = 0 [epson2] e2_send: ESC i [epson2] buf[0] 1b . [epson2] buf[1] 69 i [epson2] e2_send: cmd count, r = 6, w = 5 [epson2] e2_recv: size = 4, buf = 0x7fffd8a812f0 [epson2] e2_recv: cmd count, r = 7, w = 5 [epson2] buf[0] 02 . [epson2] buf[1] 00 . [epson2] buf[2] 2c , [epson2] buf[3] 00 . [epson2] e2_recv_info_block: payload length: 44 [epson2] e2_recv: size = 44, buf = 0x1ca2000 [epson2] e2_recv: cmd count, r = 8, w = 5 [epson2] buf[0] 58 X [epson2] buf[1] 02 . [epson2] buf[2] d5 . [epson2] buf[3] 00 . [epson2] buf[4] 08 . [epson2] buf[5] 08 . [epson2] buf[6] 08 . [epson2] buf[7] 00 . [epson2] buf[8] 00 . [epson2] buf[9] 00 . [epson2] buf[10] 00 . [epson2] buf[11] 00 . [epson2] buf[12] 00 . [epson2] buf[13] 00 . [epson2] buf[14] 32 2 [epson2] buf[15] 00 . [epson2] buf[16] 4b K [epson2] buf[17] 00 . [epson2] buf[18] 64 d [epson2] buf[19] 00 . [epson2] buf[20] 96 . [epson2] buf[21] 00 . [epson2] buf[22] c8 . [epson2] buf[23] 00 . [epson2] buf[24] 2c , [epson2] buf[25] 01 . [epson2] buf[26] 58 X [epson2] buf[27] 02 . [epson2] buf[28] 00 . [epson2] buf[29] 00 . [epson2] buf[30] 4b K [epson2] buf[31] 00 . [epson2] buf[32] 96 . [epson2] buf[33] 00 . [epson2] buf[34] 2c , [epson2] buf[35] 01 . [epson2] buf[36] 58 X [epson2] buf[37] 02 . [epson2] buf[38] b0 . [epson2] buf[39] 04 . [epson2] buf[40] 60 ` [epson2] buf[41] 09 . [epson2] buf[42] 00 . [epson2] buf[43] 00 . [epson2] discovering max depth, NAKs are expected [epson2] e2_esc_cmd: cmd = 0x44, val = 16 [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC D [epson2] buf[0] 1b . [epson2] buf[1] 44 D [epson2] e2_send: cmd count, r = 8, w = 6 [epson2] e2_recv: size = 1, buf = 0x7fffd8a8136f [epson2] e2_recv: cmd count, r = 9, w = 6 [epson2] buf[0] 06 . [epson2] e2_cmd_simple: size = 1 [epson2] e2_send: size = 1, reply = 1 [epson2] buf[0] 10 . [epson2] e2_send: cmd count, r = 9, w = 7 [epson2] e2_recv: size = 1, buf = 0x7fffd8a8136f [epson2] e2_recv: cmd count, r = 10, w = 7 [epson2] buf[0] 15 . [epson2] e2_cmd_simple: NAK [epson2] e2_esc_cmd: cmd = 0x44, val = 14 [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC D [epson2] buf[0] 1b . [epson2] buf[1] 44 D [epson2] e2_send: cmd count, r = 10, w = 8 [epson2] e2_recv: size = 1, buf = 0x7fffd8a8136f [epson2] e2_recv: cmd count, r = 11, w = 8 [epson2] buf[0] 06 . [epson2] e2_cmd_simple: size = 1 [epson2] e2_send: size = 1, reply = 1 [epson2] buf[0] 0e . [epson2] e2_send: cmd count, r = 11, w = 9 [epson2] e2_recv: size = 1, buf = 0x7fffd8a8136f [epson2] e2_recv: cmd count, r = 12, w = 9 [epson2] buf[0] 15 . [epson2] e2_cmd_simple: NAK [epson2] e2_esc_cmd: cmd = 0x44, val = 12 [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC D [epson2] buf[0] 1b . [epson2] buf[1] 44 D [epson2] e2_send: cmd count, r = 12, w = 10 [epson2] e2_recv: size = 1, buf = 0x7fffd8a8136f [epson2] e2_recv: cmd count, r = 13, w = 10 [epson2] buf[0] 06 . [epson2] e2_cmd_simple: size = 1 [epson2] e2_send: size = 1, reply = 1 [epson2] buf[0] 0c . [epson2] e2_send: cmd count, r = 13, w = 11 [epson2] e2_recv: size = 1, buf = 0x7fffd8a8136f [epson2] e2_recv: cmd count, r = 14, w = 11 [epson2] buf[0] 15 . [epson2] e2_cmd_simple: NAK [epson2] maximum supported color depth: 8 [epson2] esci_request_focus_position [epson2] setting focus is not supported [epson2] e2_dev_post_init [epson2] CCT model id is 0x06, profile offset 2 [epson2] esci_reset [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC @ [epson2] buf[0] 1b . [epson2] buf[1] 40 @ [epson2] e2_send: cmd count, r = 14, w = 12 [epson2] e2_recv: size = 1, buf = 0x7fffd8a8144f [epson2] e2_recv: cmd count, r = 15, w = 12 [epson2] buf[0] 06 . [epson2] scanner model: Perfection610 [epson2] handle obtained [epson2] open_scanner: libusb:003:005 [epson2] scanner is already open: fd = 1 [epson2] esci_reset [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC @ [epson2] buf[0] 1b . [epson2] buf[1] 40 @ [epson2] e2_send: cmd count, r = 15, w = 13 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814df [epson2] e2_recv: cmd count, r = 16, w = 13 [epson2] buf[0] 06 . [epson2] sane_epson2_control_option: action = 0, option = 0 [epson2] getvalue: option = 0 [epson2] sane_epson2_control_option: action = 0, option = 0 [epson2] getvalue: option = 0 [epson2] sane_epson2_control_option: action = 0, option = 27 [epson2] getvalue: option = 27 [epson2] sane_epson2_control_option: action = 0, option = 25 [epson2] getvalue: option = 25 [epson2] sane_epson2_control_option: action = 0, option = 28 [epson2] getvalue: option = 28 [epson2] sane_epson2_control_option: action = 0, option = 26 [epson2] getvalue: option = 26 [epson2] sane_epson2_control_option: action = 1, option = 2 [epson2] setvalue: option = 2, value = 0x1ca2120 [epson2] setvalue: end [epson2] sane_epson2_control_option: action = 0, option = 0 [epson2] getvalue: option = 0 [epson2] sane_epson2_control_option: action = 0, option = 27 [epson2] getvalue: option = 27 [epson2] sane_epson2_control_option: action = 0, option = 25 [epson2] getvalue: option = 25 [epson2] sane_epson2_control_option: action = 0, option = 28 [epson2] getvalue: option = 28 [epson2] sane_epson2_control_option: action = 0, option = 26 [epson2] getvalue: option = 26 [epson2] sane_epson2_control_option: action = 0, option = 25 [epson2] getvalue: option = 25 [epson2] sane_epson2_control_option: action = 1, option = 27 [epson2] setvalue: option = 27, value = 0x7fffd8a8167c [epson2] setting size to 215.899994 [epson2] setvalue: end [epson2] sane_epson2_control_option: action = 0, option = 26 [epson2] getvalue: option = 26 [epson2] sane_epson2_control_option: action = 1, option = 28 [epson2] setvalue: option = 28, value = 0x7fffd8a8167c [epson2] setting size to 297.857330 [epson2] setvalue: end [epson2] sane_epson2_start [epson2] e2_check_adf [epson2] e2_init_parameters [epson2] e2_init_parameters: resolution = 75, preview = 0 [epson2] e2_init_parameters: 0x1ca2370 0x1ca2ba0 tlx 0.000000 tly 0.000000 brx 215.899994 bry 297.857330 [mm] [epson2] e2_init_parameters: color shuffling required [epson2] e2_setup_block_mode [epson2] max req size: 131072, line count: 69 [epson2] final line count is 68 [epson2] params.format = 1 [epson2] params.last_frame = 1 [epson2] params.bytes_per_line = 1896 [epson2] params.pixels_per_line = 632 [epson2] params.lines = 879 [epson2] params.depth = 8 [epson2] e2_set_scanning_parameters [epson2] e2_esc_cmd: cmd = 0x43, val = 19 [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC C [epson2] buf[0] 1b . [epson2] buf[1] 43 C [epson2] e2_send: cmd count, r = 16, w = 14 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ef [epson2] e2_recv: cmd count, r = 17, w = 14 [epson2] buf[0] 06 . [epson2] e2_cmd_simple: size = 1 [epson2] e2_send: size = 1, reply = 1 [epson2] buf[0] 13 . [epson2] e2_send: cmd count, r = 17, w = 15 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ef [epson2] e2_recv: cmd count, r = 18, w = 15 [epson2] buf[0] 06 . [epson2] e2_set_scanning_parameters: setting data format to 8 bits [epson2] e2_esc_cmd: cmd = 0x44, val = 8 [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC D [epson2] buf[0] 1b . [epson2] buf[1] 44 D [epson2] e2_send: cmd count, r = 18, w = 16 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ef [epson2] e2_recv: cmd count, r = 19, w = 16 [epson2] buf[0] 06 . [epson2] e2_cmd_simple: size = 1 [epson2] e2_send: size = 1, reply = 1 [epson2] buf[0] 08 . [epson2] e2_send: cmd count, r = 19, w = 17 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ef [epson2] e2_recv: cmd count, r = 20, w = 17 [epson2] buf[0] 06 . [epson2] e2_esc_cmd: cmd = 0x5a, val = 4 [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC Z [epson2] buf[0] 1b . [epson2] buf[1] 5a Z [epson2] e2_send: cmd count, r = 20, w = 18 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ef [epson2] e2_recv: cmd count, r = 21, w = 18 [epson2] buf[0] 06 . [epson2] e2_cmd_simple: size = 1 [epson2] e2_send: size = 1, reply = 1 [epson2] buf[0] 04 . [epson2] e2_send: cmd count, r = 21, w = 19 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ef [epson2] e2_recv: cmd count, r = 22, w = 19 [epson2] buf[0] 06 . [epson2] e2_esc_cmd: cmd = 0x67, val = 0 [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC g [epson2] buf[0] 1b . [epson2] buf[1] 67 g [epson2] e2_send: cmd count, r = 22, w = 20 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ef [epson2] e2_recv: cmd count, r = 23, w = 20 [epson2] buf[0] 06 . [epson2] e2_cmd_simple: size = 1 [epson2] e2_send: size = 1, reply = 1 [epson2] buf[0] 00 . [epson2] e2_send: cmd count, r = 23, w = 21 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ef [epson2] e2_recv: cmd count, r = 24, w = 21 [epson2] buf[0] 06 . [epson2] esci_set_resolution: x = 75, y = 75 [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC R [epson2] buf[0] 1b . [epson2] buf[1] 52 R [epson2] e2_send: cmd count, r = 24, w = 22 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ff [epson2] e2_recv: cmd count, r = 25, w = 22 [epson2] buf[0] 06 . [epson2] e2_cmd_simple: size = 4 [epson2] e2_send: size = 4, reply = 1 [epson2] buf[0] 4b K [epson2] buf[1] 00 . [epson2] buf[2] 4b K [epson2] buf[3] 00 . [epson2] e2_send: cmd count, r = 25, w = 23 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814ff [epson2] e2_recv: cmd count, r = 26, w = 23 [epson2] buf[0] 06 . [epson2] esci_set_scan_area: x = 0, y = 0, w = 632, h = 881 [epson2] e2_cmd_simple: size = 2 [epson2] e2_send: size = 2, reply = 1 [epson2] e2_send: ESC A [epson2] buf[0] 1b . [epson2] buf[1] 41 A [epson2] e2_send: cmd count, r = 26, w = 24 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814df [epson2] e2_recv: cmd count, r = 27, w = 24 [epson2] buf[0] 06 . [epson2] e2_cmd_simple: size = 8 [epson2] e2_send: size = 8, reply = 1 [epson2] buf[0] 00 . [epson2] buf[1] 00 . [epson2] buf[2] 00 . [epson2] buf[3] 00 . [epson2] buf[4] 78 x [epson2] buf[5] 02 . [epson2] buf[6] 71 q [epson2] buf[7] 03 . [epson2] e2_send: cmd count, r = 27, w = 25 [epson2] e2_recv: size = 1, buf = 0x7fffd8a814df [epson2] e2_recv: cmd count, r = 28, w = 25 [epson2] buf[0] 15 . [epson2] e2_cmd_simple: NAK scanimage: sane_start: Invalid argument [epson2] close_scanner: fd = 1 [epson2] esci_request_extended_status [epson2] e2_cmd_info_block, params len = 2, reply len = 42, buf = 0x7fffd8a83600 [epson2] e2_send: size = 2, reply = 46 [epson2] e2_send: ESC f [epson2] buf[0] 1b . [epson2] buf[1] 66 f [epson2] e2_send: cmd count, r = 28, w = 26 [epson2] e2_recv: size = 4, buf = 0x7fffd8a83560 [epson2] e2_recv: cmd count, r = 29, w = 26 [epson2] buf[0] 02 . [epson2] buf[1] 00 . [epson2] buf[2] 2a * [epson2] buf[3] 00 . [epson2] e2_recv_info_block: payload length: 42 [epson2] e2_recv: size = 42, buf = 0x1ca2140 [epson2] e2_recv: cmd count, r = 30, w = 26 [epson2] buf[0] 01 . [epson2] buf[1] 00 . [epson2] buf[2] 00 . [epson2] buf[3] 00 . [epson2] buf[4] 00 . [epson2] buf[5] 00 . [epson2] buf[6] 00 . [epson2] buf[7] 00 . [epson2] buf[8] 00 . [epson2] buf[9] 00 . [epson2] buf[10] 00 . [epson2] buf[11] 00 . [epson2] buf[12] 00 . [epson2] buf[13] 00 . [epson2] buf[14] 00 . [epson2] buf[15] 00 . [epson2] buf[16] 00 . [epson2] buf[17] 00 . [epson2] buf[18] 00 . [epson2] buf[19] 00 . [epson2] buf[20] 00 . [epson2] buf[21] 00 . [epson2] buf[22] 00 . [epson2] buf[23] 00 . [epson2] buf[24] 00 . [epson2] buf[25] 00 . [epson2] buf[26] 50 P [epson2] buf[27] 65 e [epson2] buf[28] 72 r [epson2] buf[29] 66 f [epson2] buf[30] 65 e [epson2] buf[31] 63 c [epson2] buf[32] 74 t [epson2] buf[33] 69 i [epson2] buf[34] 6f o [epson2] buf[35] 6e n [epson2] buf[36] 36 6 [epson2] buf[37] 31 1 [epson2] buf[38] 30 0 [epson2] buf[39] 20 [epson2] buf[40] 20 [epson2] buf[41] 20 [epson2] main = 01, ADF = 00, TPU = 00, main 2 = 00 [epson2] sane_epson2_exit [epson2] free_devices