[sane-devel] trying Canon DR-3080C

D. Hugh Redelmeier hugh at mimosa.com
Tue Mar 2 21:45:48 UTC 2010


| From: m. allan noah <kitno455 at gmail.com>

| Looks like the driver cannot write to the operator panel. the dr-20xx
| are the same way. Find the function init_model, and add this block
| after all the other model-specific blocks around line 1202:
| 
| else if (strstr (s->model_name,"DR-3080")){
|   s->can_write_panel = 0;
| }

That fixed it.  Now the device is recognized.

BTW, the gcc warnings generated when compileing canon_dr.c point to
real bugs.  On my machine (AMD64),
	sizeof(size_t) != sizeof(int)
If you use a %d format for a size_t thing, the runtime stdargs logic
will get out of sync.  The simplest fix (assuming that you know that
the value will fit in an int) is to cast the arg to int type.  Even
better would be to use %lu format and cast to unsigned long.

Now the next roadblock.  scanimage fails when trying to actually scan.

sudo doesn't make a difference, but I used it anyway.

Various logsfiles get this:
  Mar  2 16:11:27 redace scanimage: io/hpmud/pp.c 627: unable to read device-id ret=-1
I'm assuming that some hp libsane driver is causing this and that it
doesn't matter.

Here's the scanimage log.  Is it OK to send logs like this to the
mailing list or is it better to use a pastebin?

hugh at redace:~/CanonDR3080C$ sudo SANE_DEBUG_CANON_DR=15 scanimage -d 'canon_dr:/dev/sg2' >junk.pnm
[sanei_debug] Setting debug level of canon_dr to 15.
[canon_dr] sane_init: start
[canon_dr] sane_init: canon_dr backend 1.0.35, from sane-backends 1.0.21cvs
[canon_dr] sane_init: finish
[canon_dr] sane_open: start
[canon_dr] sane_open: no scanners currently attached, attaching
[canon_dr] sane_get_devices: start
[canon_dr] sane_get_devices: reading config file canon_dr.conf
[canon_dr] sane_get_devices: looking for 'scsi CANON CR'
[canon_dr] sane_get_devices: looking for 'scsi CANON DR'
[canon_dr] attach_one: start
[canon_dr] attach_one: looking for '/dev/sg2'
[canon_dr] connect_fd: start
[canon_dr] connect_fd: opening SCSI device
[canon_dr] connect_fd: cannot get requested buffer size (2097152/524288)
[canon_dr] wait_scanner: start
[canon_dr] do_scsi_cmd: start
[canon_dr] do_scsi_cmd: finish
[canon_dr] wait_scanner: finish
[canon_dr] connect_fd: finish
[canon_dr] init_inquire: start
[canon_dr] do_scsi_cmd: start
[canon_dr] do_scsi_cmd: finish
[canon_dr] init_inquire: Found CANON scanner DR-3080C version 2.07 at /dev/sg2
[canon_dr] init_inquire: finish
[canon_dr] init_vpd: start
[canon_dr] do_scsi_cmd: start
[canon_dr] do_scsi_cmd: finish
[canon_dr] init_vpd: length=19
[canon_dr] standard options
[canon_dr]   basic x res: 300 dpi
[canon_dr]   basic y res: 300 dpi
[canon_dr]   step x res: 0 dpi
[canon_dr]   step y res: 0 dpi
[canon_dr]   max x res: 300 dpi
[canon_dr]   max y res: 300 dpi
[canon_dr]   min x res: 100 dpi
[canon_dr]   min y res: 100 dpi
[canon_dr]   60 dpi: 0
[canon_dr]   75 dpi: 0
[canon_dr]   100 dpi: 1
[canon_dr]   120 dpi: 0
[canon_dr]   150 dpi: 0
[canon_dr]   160 dpi: 0
[canon_dr]   180 dpi: 0
[canon_dr]   200 dpi: 1
[canon_dr]   240 dpi: 1
[canon_dr]   300 dpi: 1
[canon_dr]   320 dpi: 0
[canon_dr]   400 dpi: 0
[canon_dr]   480 dpi: 0
[canon_dr]   600 dpi: 0
[canon_dr]   800 dpi: 0
[canon_dr]   1200 dpi: 0
[canon_dr]   max width: 12096 (10.08 in)
[canon_dr]   max length: 17200 (14.33 in)
[canon_dr]   AWD: 0
[canon_dr]   CE Emphasis: 0
[canon_dr]   C Emphasis: 1
[canon_dr]   High quality: 1
[canon_dr]   grayscale: 1
[canon_dr]   halftone: 1
[canon_dr]   monochrome: 1
[canon_dr]   overflow: 0
[canon_dr] init_vpd: finish
[canon_dr] init_model: start
[canon_dr] init_model: finish
[canon_dr] init_panel: start
[canon_dr] read_panel: start
[canon_dr] read_panel: finish 0
[canon_dr] send_panel: start
[canon_dr] send_panel: unsupported, finishing
[canon_dr] init_panel: finish
[canon_dr] init_user: start
[canon_dr] init_user: finish
[canon_dr] init_options: start
[canon_dr] init_options: finish
[canon_dr] disconnect_fd: start
[canon_dr] disconnecting scsi device
[canon_dr] disconnect_fd: finish
[canon_dr] attach_one: finish
[canon_dr] sane_get_devices: setting "vendor-name" to CANON
[canon_dr] sane_get_devices: setting "model-name" to DR-2080C
[canon_dr] sane_get_devices: setting "version-name" to XXXX
[canon_dr] sane_get_devices: setting "padded-read" to 1
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x1601'
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x1602'
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x1603'
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x1604'
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x1606'
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x1607'
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x1608'
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x1609'
[canon_dr] sane_get_devices: setting "vendor-name" to CANON
[canon_dr] sane_get_devices: setting "model-name" to DR-2050C
[canon_dr] sane_get_devices: setting "version-name" to XXXX
[canon_dr] sane_get_devices: setting "padded-read" to 1
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x160a'
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x160b'
[canon_dr] sane_get_devices: looking for 'usb 0x1083 0x160c'
[canon_dr] sane_get_devices: looking for 'usb 0x1083 0x160f'
[canon_dr] sane_get_devices: looking for 'usb 0x04a9 0x2222'
[canon_dr] sane_get_devices: looking for 'usb 0x1083 0x1614'
[canon_dr] sane_get_devices: looking for 'usb 0x1083 0x1617'
[canon_dr] sane_get_devices: looking for 'usb 0x1083 0x1618'
[canon_dr] sane_get_devices: looking for 'usb 0x1083 0x161a'
[canon_dr] sane_get_devices: looking for 'usb 0x1083 0x161b'
[canon_dr] sane_get_devices: looking for 'usb 0x1083 0x161d'
[canon_dr] sane_get_devices: looking for 'usb 0x1083 0x1620'
[canon_dr] sane_get_devices: found scanner /dev/sg2
[canon_dr] sane_get_devices: found 1 scanner(s)
[canon_dr] sane_get_devices: finish
[canon_dr] sane_open: device /dev/sg2 requested
[canon_dr] sane_open: device /dev/sg2 found
[canon_dr] connect_fd: start
[canon_dr] connect_fd: opening SCSI device
[canon_dr] wait_scanner: start
[canon_dr] do_scsi_cmd: start
[canon_dr] do_scsi_cmd: finish
[canon_dr] wait_scanner: finish
[canon_dr] connect_fd: finish
[canon_dr] sane_open: finish
[canon_dr] sane_start: start
[canon_dr] started=0, side=0, source=1
[canon_dr] object_position: start
[canon_dr] object_position: eject
[canon_dr] do_scsi_cmd: start
[canon_dr] do_scsi_cmd: finish
[canon_dr] object_position: finish
[canon_dr] wait_scanner: start
[canon_dr] do_scsi_cmd: start
[canon_dr] do_scsi_cmd: finish
[canon_dr] wait_scanner: finish
[canon_dr] load_lut: start 0 0
[canon_dr] load_lut: 
[canon_dr] 000: 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f ................
[canon_dr] 010: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f ................
[canon_dr] 020: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f  !"#$%&'()*+,-./
[canon_dr] 030: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 0123456789:;<=>?
[canon_dr] 040: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f @ABCDEFGHIJKLMNO
[canon_dr] 050: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f PQRSTUVWXYZ[\]^_
[canon_dr] 060: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f `abcdefghijklmno
[canon_dr] 070: 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f pqrstuvwxyz{|}~.
[canon_dr] 080: 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f ................
[canon_dr] 090: 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f ................
[canon_dr] 0a0: a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af ................
[canon_dr] 0b0: b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf ................
[canon_dr] 0c0: c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf ................
[canon_dr] 0d0: d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df ................
[canon_dr] 0e0: e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef ................
[canon_dr] 0f0: f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff ................
[canon_dr] load_lut: finish
[canon_dr] calibrate_AFE: start
[canon_dr] calibrate_AFE: not required
[canon_dr] calibrate_fine: start
[canon_dr] calibrate_fine: not required
[canon_dr] calibrate_fine_buffer: start
[canon_dr] calibrate_fine_buffer: not required
[canon_dr] send_panel: start
[canon_dr] send_panel: unsupported, finishing
[canon_dr] update_params: start
[canon_dr] update_params: user params: w:2544 h:3300 m:0 f:0 b:1
[canon_dr] update_params: user params: B:318 vB:318 vw:2544
[canon_dr] update_params: user params: x b:10200 t:0 d:300 y b:13200 t:0 d:300
[canon_dr] update_params: scan params: w:2544 h:3300 m:0 f:0 b:1
[canon_dr] update_params: scan params: B:318 vB:318 vw:2544
[canon_dr] update_params: scan params: x b:10200 t:0 d:300 y b:13200 t:0 d:300
[canon_dr] update_params: i params: w:2544 h:3300 m:0 f:0 b:1
[canon_dr] update_params: i params: B:318 vB:318 vw:2544
[canon_dr] update_params: i params: x b:10200 t:0 d:300 y b:13200 t:0 d:300
[canon_dr] update_params: finish
[canon_dr] set_window: start
[canon_dr] do_scsi_cmd: start
[canon_dr] do_scsi_cmd: finish
[canon_dr] set_window: finish
[canon_dr] ssm_buffer: start
[canon_dr] do_scsi_cmd: start
[canon_dr] do_scsi_cmd: finish
[canon_dr] ssm_buffer: finish
[canon_dr] ssm_do: start
[canon_dr] do_scsi_cmd: start
[canon_dr] do_scsi_cmd: finish
[canon_dr] ssm_do: finish
[canon_dr] ssm_df: start
[canon_dr] do_scsi_cmd: start
[canon_dr] sense_handler: start
[canon_dr] Sense=0x5, ASC=0x26, ASCQ=00, EOM=0, ILI=0, info=00000000
[canon_dr] Illegal request: invalid field in parm list
[canon_dr] do_scsi_cmd: return 'Invalid argument'
[canon_dr] ssm_df: finish
[canon_dr] sane_start: ERROR: cannot ssm df
[canon_dr] sane_start: error 4
scanimage: sane_start: Invalid argument
[canon_dr] sane_cancel: start
[canon_dr] check_for_cancel: start
[canon_dr] check_for_cancel: already cancelled
[canon_dr] check_for_cancel: finish 2
[canon_dr] sane_cancel: finish
[canon_dr] sane_close: start
[canon_dr] disconnect_fd: start
[canon_dr] disconnecting scsi device
[canon_dr] disconnect_fd: finish
[canon_dr] image_buffers: start
[canon_dr] image_buffers: finish
[canon_dr] offset_buffers: start
[canon_dr] offset_buffers: finish
[canon_dr] gain_buffers: start
[canon_dr] gain_buffers: finish
[canon_dr] sane_close: finish
[canon_dr] sane_exit: start
[canon_dr] disconnect_fd: start
[canon_dr] disconnect_fd: finish
[canon_dr] sane_exit: finish
hugh at redace:~/CanonDR3080C$ exit



More information about the sane-devel mailing list