Provided by: libsane-common_1.0.22-7ubuntu1_i386 bug


       sane-pixma - SANE backend for Canon PIXMA Multi-Functions Printers
                    MP, MX, ImageCLASS and I-SENSYS series


       The  sane-pixma  library  implements  a  SANE (Scanner Access Now Easy)
       backend that provides access  to  Canon  PIXMA  multi-function  devices
       (All-in-one  printers).   The backend implements both USB interface and
       Network LAN interface using  Canon's  BJNP  protocol.   Currently,  the
       following models work with this backend:

              PIXMA MP140, MP150, MP160, MP170, MP180, MP190
              PIXMA MP210, MP220, MP240, MP250, MP260, MP270
              PIXMA MP360, MP370, MP390
              PIXMA MP450, MP460, MP470, MP480, MP490
              PIXMA MP500, MP510, MP520, MP530, MP540, MP550, MP560
              PIXMA MP600, MP600R, MP610, MP620, MP630, MP640, MP710
              PIXMA MP800, MP800R, MP810, MP830, MP960, MP970, MP980, MP990
              PIXMA MX300, MX310, MX330, MX340, MX350
              PIXMA MX700, MX850, MX860, MX870, MX7600
              PIXMA MP700, MP730, PIXMA MP750 (no grayscale)
              ImageCLASS MF3110, MF3240, MF4010, MF4018, MF4120, MF4122
              ImageCLASS MF4140, MF4150, MF4270, MF4350d, MF4370dn, MF4380dn
              ImageCLASS MF4660, MF4690, MF5770, MF6550, D480
              I-SENSYS MF4320d, MF4330d
              CanoScan 8800F

       The  following  models are not well tested and/or the scanner sometimes
       hangs and must be switched off and on.

              PIXMA PIXMA MP760, PIXMA MP780

       The following models may use the same Pixma protocol  as  those  listed
       above,  but  have  not  yet  been  reported  to work (or not). They are
       declared in the backend so that  they  get  recognized  and  activated.
       Feedback in the Sane-dev mailing list welcome.

              PIXMA MP375R, MP740
              PIXMA MX320
              ImageCLASS MF5630, MF5650, MF5730, MF5750, MF8170c

       The backend supports:

              *  resolutions  of  75,  150, 300, 600, 1200, 2400, and 4800 DPI
              (some maybe buggy),
              * color and grayscale  mode,  as  well  as  lineart  on  certain
              * a custom gamma table,
              * Automatic Document Feeder, Simplex and Duplex.
              * Transparency Unit, 24 or 48 bits depth.

       The  device  name  for  USB devices is in the form pixma:xxxxyyyy_zzzzz
       where x,  y  and  z  are  vendor  ID,  product  ID  and  serial  number
       respectively.  Example: pixma:04A91709_123456 is a MP150.

       Device  names  for  BJNP  devices is in the form pixma:aaaa_bbbbb where
       aaaa is the scanners model and bbbb is the hostname or ip-adress.

       This backend, based on cloning original Canon drivers protocols, is  in
       a   production  stage.  Designed  has  been  carried  out  without  any
       applicable  manufacturer  documentation,  probably   never   available.
       However,  we have tested it as well as we could, but it may not work in
       every situations. You will find an up-to-date  status  at  the  project
       homepage.  (See  below).   Users  feedback is essential to help improve
       features and performances.


       Besides "well-known" options (e.g. resolution, mode etc.) pixma backend
       also  provides  the  following  options  for  button handling, i.e. the
       options might change in the future.
       Button scan is disabled on MAC OS X due to darwin libusb  not  handling
       timeouts in usb interrupt reads.

              This  option  can  be  used  in  combination with scanadf(1) and
              scanimage(1) in batch mode, for example when you  want  to  scan
              many  photos  or multiple-page documents. If it is enabled (i.e.
              is set to true or yes), the  backend  waits  before  every  scan
              until  the  user  presses  the  "SCAN" button (for MP150) or the
              color-scan button (for other models). Just put the first page in
              the  scanner,  press  the  button, then the next page, press the
              button and so on. When you finished, press the gray-scan button.
              (For  MP150 you have to stop the frontend by pressing Ctrl-C for

       button-update button-1 button-2
              These options are interesting for developers.  To  check  button
              status:  (1)  set button-1 and button-2 to zero, (2) set button-
              update (Its type is SANE_TYPE_BUTTON.),  (3)  get  button-1  and
              button-2.   If  the result is not zero, the corresponding button
              was pressed.


              The static library implementing this backend.

              The shared library implementing this backend (present on systems
              that support dynamic loading).

              The   backend   configuration  file  (see  also  description  of
              SANE_CONFIG_DIR below). The files contains an optional  list  of
              scanners.  Normally  only scanners that can not be auto-detected
              because they are on a different subnet shall be listed here.  If
              your  OS  does not allow enumeration of interfaces (i.e. it does
              not support the getifaddrs() function) you may need to add  your
              scanner here as well.  Scanners shall be listed as:

              where  host  is  the hostname or IP address of the scanner, e.g.
              bjnp:// or  bjnp://  Define  each
              scanner on a new line.


       USB scanners will be auto-detected and require no configuration.


       The  pixma  backend supports network scanners using the so called Canon
       BJNP protocol.  Configuration is  normally  not  required.   The  pixma
       backend  will  auto-detect your scanner if it is within the same subnet
       as your computer if your OS does support this.

       If your scanner can not be auto-detected, you can add it to  the  pixma
       configuration file (see above).


       The  sane  pixma backend communicates with port 8612 on the scanner. So
       you will have to allow outgoing traffic TO  port  8612  on  the  common
       subnet for scanning.

       Scanner detection is slightly more complicated. The pixma backend sends
       a broadcast on all direct connected subnets it can find (provided  your
       OS  allows  for  enumeration  of all interfaces). The broadcast is sent
       FROM port 8612 TO port 8612 on the broadcast address of each interface.
       The  outgoing  packets  will  be  allowed  by the rule described above.
       Responses from the scanner are sent back to the computer TO port  8612.
       Connection  tracking  however does not see a match as the response does
       not come from the broadcast address but from the scanners own  address.
       You  will therefore have to allow incoming packets TO port 8612 on your

       So in short: open the firewall for all traffic from  your  computer  to
       port 8612 AND to port 8612 to your computer.

       With  the  firewall  rules above there is no need to add the scanner to
       the pixma.conf file, unless the scanner is on a  network  that  is  not
       directly connected to your computer.


              If  the  library  was  compiled with debug support enabled, this
              environment variable controls the debug level for this  backend.
              Higher value increases the verbosity.

              0  print nothing (default)
              1  print error and warning messages (recommended)
              2  print informational messages
              3  print debug-level messages
              11 dump USB/BJNP traffics
              21 full dump USB/BJNP traffic

              Setting  to  a  non-zero  value  will  enable  the  support  for
              experimental models.  You should also  set  SANE_DEBUG_PIXMA  to

              This environment variable specifies the list of directories that
              may contain the configuration file.  Under UNIX, the directories
              are  separated  by a colon (`:'), under OS/2, they are separated
              by a semi-colon  (`;').   If  this  variable  is  not  set,  the
              configuration  file  is  searched  in  two  default directories:
              first,  the  current  working  directory  (".")  and   then   in
              /etc/sane.d.  If the value of the environment variable ends with
              the directory separator character, then the default  directories
              are  searched  after  the explicitly specified directories.  For
              example, setting SANE_CONFIG_DIR to "/tmp/config:" would  result
              in   directories  "tmp/config",  ".",  and  "/etc/sane.d"  being
              searched (in this order).


       sane(7),       sane-dll(5),,

       In  case  of trouble with a recent Pixma model, try the latest code for
       the pixma backend, available in the Sane git repository at:

       You can also post into the Sane-devel mailing list for support.


       Wittawat Yamwong, Nicolas Martin, Dennis Lou, Louis Lagendijk

       We would like to thank all testers and helpers. Without them  we  could
       not  be able to write subdrivers for models we don't have. See also the
       project homepage.

                                  8 Jan 2010                     sane-pixma(5)