[sane-devel] Imageclass d530 scanner

Rolf Bensch rolf at bensch-online.de
Wed Jan 29 16:08:15 UTC 2014


Hi Gilad,

I prepared a patch for your scanner some weeks ago. But unfortunately
receiving USB data from the scanner stuck somewhere in the OS.
Fortunately you have a different OS. Pleae try the attached patch.

First you must install SANE from git as described here:
http://www.sane-project.org/README.linux.

Then patch the file backend/pixma_imageclass.c with attached
pixma_imageclass.c.patch4_all:
$ patch pixma_imageclass.c pixma_imageclass.c.patch4_all

and copy attached d530.rules to /etc/udev/rules.d/

After everything has been compiled and installed, please check if you
can access your scanner as described in README.linux.

If your scanner has problems, please enable debug output:
$ export SANE_DEBUG_PIXMA=11

and create a log file with (scan area of 5mm x 5mm in color @ 75dpi ):
$ scanimage -x 5 -y 5 2> pixma.log > pixma.pnm

Many thanks for your help.

Cheers,
Rolf


Am 24.01.2014 16:39, schrieb Giladsom:
> Hello there,
> I just bought an Imageclass d530 printer.
> I was able to activate the printer, but I cannot find any way to activate
> the scanner. The computer just doesn't recognize it.
> I am using UBUNTU 13.04.
>
> Can you please help me?
>
> Gilad
>
>
>

-------------- next part --------------
--- ./pixma_imageclass.c	2014-01-29 16:38:27.000000000 +0100
+++ ../sane-backends/backend/pixma_imageclass.c	2014-01-29 16:41:42.000000000 +0100
@@ -94,6 +94,7 @@
 #define MF6680_PID 0x26fa
 #define MF8030_PID 0x2707
 #define IR1133_PID 0x2742
+#define D530_PID   0x2775
 
 
 enum iclass_state_t
@@ -412,8 +413,9 @@
     return error;
   if (s->param->source == PIXMA_SOURCE_ADF && !has_paper (s))
     return PIXMA_ENO_PAPER;
-  /* activate only seen for generation 1 scanners */
-  if (mf->generation == 1)
+  /* activate only seen for generation 1 scanners
+   * but not for D530 */
+  if (mf->generation == 1 && s->cfg->pid != D530_PID)
     {
       if (error >= 0)
         error = activate (s, 0);
@@ -470,8 +472,9 @@
   mf->cb.cmd_header_len = 10;
   mf->cb.cmd_len_field_ofs = 7;
 
-  /* set generation = 2 for new multifunctionals */
-  mf->generation = (s->cfg->pid >= MF8030_PID) ? 2 : 1;
+  /* set generation = 2 for new multifunctionals
+   * except D530 is a generation 1 scanner */
+  mf->generation = (s->cfg->pid >= MF8030_PID && s->cfg->pid != D530_PID) ? 2 : 1;
   PDBG (pixma_dbg (3, "*iclass_open***** This is a generation %d scanner.  *****\n", mf->generation));
 
   PDBG (pixma_dbg (3, "Trying to clear the interrupt buffer...\n"));
@@ -563,6 +566,8 @@
   if (error >= 0)
     error = send_scan_param (s);
   if (error >= 0)
+    error = query_status (s);
+  if (error >= 0)
     error = request_image_block (s, 0, &ignore, &ignore2, &ignore, &ignore2);
   if (error < 0)
     {
@@ -785,5 +790,6 @@
   DEV ("Canon i-SENSYS MF5880dn", "MF5880", MF5880_PID, 600, 640, 877, PIXMA_CAP_ADFDUP),
   DEV ("Canon i-SENSYS MF6680dn", "MF6680", MF6680_PID, 600, 640, 877, PIXMA_CAP_ADFDUP),
   DEV ("Canon imageRUNNER 1133", "iR1133", IR1133_PID, 600, 637, 877, PIXMA_CAP_ADFDUP),
+  DEV ("Canon imageCLASS D530", "D530", D530_PID, 600, 640, 877, 0),
   DEV (NULL, NULL, 0, 0, 0, 0, 0)
 };
-------------- next part --------------
# Canon imageCLASS D530
ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="2775", MODE="0664", GROUP="scanner", ENV{libsane_matched}="yes"


More information about the sane-devel mailing list