# sane and Canon PIXMA MG6620 over network?

## tld

I'm trying to get sane to see a networked Canon PIXMA MG6620 network scanner.  It very well might not be supported...I haven't figured that out yet.  However it doesn't seem to me that sane-find-scanner is even trying to find any network scanners.

In my make.conf I have:

```
SANE_BACKENDS="net hp pixma"
```

The hp is because of an hp all in one we're getting rid of.

I've recompiled sane-backends and have verified that "equery uses sane-backends" shows:

```
+ + sane_backends_net            : SANE_BACKENDS setting for building the net backend

+ + sane_backends_pixma          : SANE_BACKENDS setting for building the pixma backend
```

I also tried adding pixma to /etc/sane.d/dll.conf:

```
cat /etc/sane.d/dll.conf

net

#hpaio

pixma
```

...and as you see, I commented out the hp in case that was an issue.

I also tried adding this to /etc/sane.d/pixma.conf:

```
bjnp://192.168.1.56
```

That covers just about everything I can imagine.  Here's what I get:

```
scanimage -L

No scanners were identified. If you were expecting something different,

check that the scanner is plugged in, turned on and detected by the

sane-find-scanner tool (if appropriate). Please read the documentation

which came with this software (README, FAQ, manpages).
```

```
sane-find-scanner -v

This is sane-find-scanner from sane-backends 1.0.24

  # sane-find-scanner will now attempt to detect your scanner. If the

  # result is different from what you expected, first make sure your

  # scanner is powered up and properly connected to your computer.

searching for SCSI scanners:

checking /dev/scanner... failed to open (Invalid argument)

checking /dev/sg0... failed to open (Invalid argument)

checking /dev/sg1... failed to open (Invalid argument)

checking /dev/sg2... failed to open (Invalid argument)

checking /dev/sg3... failed to open (Invalid argument)

checking /dev/sg4... failed to open (Invalid argument)

checking /dev/sg5... failed to open (Invalid argument)

checking /dev/sg6... failed to open (Invalid argument)

checking /dev/sg7... failed to open (Invalid argument)

checking /dev/sg8... failed to open (Invalid argument)

checking /dev/sg9... failed to open (Invalid argument)

checking /dev/sga... failed to open (Invalid argument)

checking /dev/sgb... failed to open (Invalid argument)

checking /dev/sgc... failed to open (Invalid argument)

checking /dev/sgd... failed to open (Invalid argument)

checking /dev/sge... failed to open (Invalid argument)

checking /dev/sgf... failed to open (Invalid argument)

checking /dev/sgg... failed to open (Invalid argument)

checking /dev/sgh... failed to open (Invalid argument)

checking /dev/sgi... failed to open (Invalid argument)

checking /dev/sgj... failed to open (Invalid argument)

checking /dev/sgk... failed to open (Invalid argument)

checking /dev/sgl... failed to open (Invalid argument)

checking /dev/sgm... failed to open (Invalid argument)

checking /dev/sgn... failed to open (Invalid argument)

checking /dev/sgo... failed to open (Invalid argument)

checking /dev/sgp... failed to open (Invalid argument)

checking /dev/sgq... failed to open (Invalid argument)

checking /dev/sgr... failed to open (Invalid argument)

checking /dev/sgs... failed to open (Invalid argument)

checking /dev/sgt... failed to open (Invalid argument)

checking /dev/sgu... failed to open (Invalid argument)

checking /dev/sgv... failed to open (Invalid argument)

checking /dev/sgw... failed to open (Invalid argument)

checking /dev/sgx... failed to open (Invalid argument)

checking /dev/sgy... failed to open (Invalid argument)

checking /dev/sgz... failed to open (Invalid argument)

  # No SCSI scanners found. If you expected something different, make sure that

  # you have loaded a kernel SCSI driver for your SCSI adapter.

searching for USB scanners:

checking /dev/usb/scanner... failed to open (Invalid argument)

checking /dev/usb/scanner0... failed to open (Invalid argument)

checking /dev/usb/scanner1... failed to open (Invalid argument)

checking /dev/usb/scanner2... failed to open (Invalid argument)

checking /dev/usb/scanner3... failed to open (Invalid argument)

checking /dev/usb/scanner4... failed to open (Invalid argument)

checking /dev/usb/scanner5... failed to open (Invalid argument)

checking /dev/usb/scanner5... failed to open (Invalid argument)

checking /dev/usb/scanner7... failed to open (Invalid argument)

checking /dev/usb/scanner8... failed to open (Invalid argument)

checking /dev/usb/scanner9... failed to open (Invalid argument)

checking /dev/usb/scanner10... failed to open (Invalid argument)

checking /dev/usb/scanner11... failed to open (Invalid argument)

checking /dev/usb/scanner12... failed to open (Invalid argument)

checking /dev/usb/scanner13... failed to open (Invalid argument)

checking /dev/usb/scanner14... failed to open (Invalid argument)

checking /dev/usb/scanner15... failed to open (Invalid argument)

checking /dev/usbscanner... failed to open (Invalid argument)

checking /dev/usbscanner0... failed to open (Invalid argument)

checking /dev/usbscanner1... failed to open (Invalid argument)

checking /dev/usbscanner2... failed to open (Invalid argument)

checking /dev/usbscanner3... failed to open (Invalid argument)

checking /dev/usbscanner4... failed to open (Invalid argument)

checking /dev/usbscanner5... failed to open (Invalid argument)

checking /dev/usbscanner6... failed to open (Invalid argument)

checking /dev/usbscanner7... failed to open (Invalid argument)

checking /dev/usbscanner8... failed to open (Invalid argument)

checking /dev/usbscanner9... failed to open (Invalid argument)

checking /dev/usbscanner10... failed to open (Invalid argument)

checking /dev/usbscanner11... failed to open (Invalid argument)

checking /dev/usbscanner12... failed to open (Invalid argument)

checking /dev/usbscanner13... failed to open (Invalid argument)

checking /dev/usbscanner14... failed to open (Invalid argument)

checking /dev/usbscanner15... failed to open (Invalid argument)

libusb not available

  # No USB scanners found. If you expected something different, make sure that

  # you have loaded a kernel driver for your USB host controller and have setup

  # the USB system correctly. See man sane-usb for details.

  # SANE has been built without libusb support. This may be a reason

  # for not detecting USB scanners. Read README for more details.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports

  # can't be detected by this program.

done

```

Again, that's not specifically stated to be supported at all, but I see no evidence that sane-find-scanner is even trying to find anything on the network.

Any ideas?

Thanks

Tom

----------

## Fitzcarraldo

I don't think the SANE pixma driver supports the MG6620, at least it doesn't according to the list on the SANE Web site: SANE: Supported Devices.

However, have you got the package cups-bjnp installed? I'm not sure whether or not it is required for SANE's pixma backend, but I do have it installed and I am successfully using bjnp with my Canon PIXMA MP560 over my home network, and I can both print and scan via the network. You're correct in thinking you need to add 'bjnp://<ip address of printer>' to the configuration file /etc/sane.d/pixma.conf; that's what I have done, as well as configuring my home network's router to always use the same address for the printer.

----------

## tld

Thanks for the suggestion!  I just installed that.  The /usr/libexec/cups/backend/bjnp executable gives me a URI:

```
/usr/libexec/cups/backend/bjnp

network bjnp://Canon-MG6620:8611 "Canon MG6600 series" "Canon MG6600 series Canon-MG6620" "MFG:Canon;CMD:BJL,BJRaster3,BSCCe,NCCe,IVEC,IVECPLI;SOJ:BJNP2,BJNPe;MDL:MG6600 series;CLS:PRINTER;DES:Canon MG6600 series;VER:3.010;STA:10;FSI:00;HRI:2;MSI:AOFF,B240,DAT,E3,HFSF,JOFF,K21000700,LOFF;PDR:3;PSE:ADMY05021;CID:CA_IVEC1TYPE4_IJP;"
```

...and the cups "Find New Printers" found it and I was able to add it...but I don't think the existing printer drivers for PIXMA (CUPS+Gutenprint v5.2.9) work with this model.  When I print from this new printer, the printer display shows "Processing.  Please wait momentarily..." while it's spooling, and then goes back to the main menu.  Cups thinks it's compete but nothing prints.

When I tried to add this as a samba printer printing via a Windows machine here (also using the existing PIXMA drivers) the jobs go through as well, but the printer gets stuck on the above wait message forever, and the job needs to be canceled in Windows.  Not promising at all.

Oh...and the net-print/cups-bjnp had no affect on scanning either.

Things I'm reading seem to imply that the proprietary Canon drivers...apparently cnijfilter2-source-5.00-1.tar.gz and scangearmp2-source-3.00-1.tar.gz(??) may be required for this?  I was about to see if there was any sort of overlay anywhere related to that, unless someone's already familiar with any of that.

Thanks!

Tom

----------

## Fitzcarraldo

The most comprehensive Portage overlay I know for Canon closed-source printer drivers is tclover's bar overlay, but I cannot see an ebuild in it that includes the PIXMA MG6600 series printer, although he does have one for the 6500 Series. I wonder if it would work with your model?

However, the commercially-available TurboPrint 2.36-1 (18 March 2015) Linux driver does support the MG6600 Series printer (but not scanner), so I suppose you could try the 30-day free trial to see if it works with Gentoo if the official Canon drivers for printer and scanner do not install correctly outside of Portage.

----------

## tld

I'm going to see if I can compile this stiff from source.

However I just ran into something ugly:  The scanner stuff...that scangearmp2, requires these:

```
    You need the following libraries.

    * libcncpmslld2   (3.0.0  or above)

    * libcncpnet2     (1.2.3  or above)
```

I cannot find a trace of those in portage, or any reference anywhere for those in context with gentoo.

Anyone have any ideas on that?

I just can't win with this one.

Tom

----------

## tld

DO NOT UNDER ANY CIRCUMSTANCES buy one of these f****** doorstops.

Whatever those libcncpmslld2 and libcncpnet2 libraries are, they cannot be found anywhere on the Internet...I mean FFS!  I downloaded the Canon rpms for the scangearmp2 package, unpacked it, and was able to get the binaries.  I installed them in /usr/local/lib and ran ldconfig and was then able to build that package from source, but the scangearmp2 program just gets "Cannot find available scanners".  NOT a pretty picture at all.

My wife actually bought this all-in-one.  Looks like I won't be using it.  What really pisses me off is that that make install probably littered by machine with crap I'll never get rid of.

I'm not even sure I have the stomach to try compiling the cnijfilter2 bullshit...

----------

## Fitzcarraldo

Apparently the commercially-available scanner driver VueScan (Windows/Mac OS/Linux) supports the MG660 Series (see http://www.hamrick.com/vuescan/canon.html) and, like the commercially-available printer driver TurboPrint 2, offers a free trial according to its Web site, so you could try that to see if it works. Not ideal, I know, but something to try if all else fails and you're desperate.

----------

## tclover

 *tld wrote:*   

> I'm going to see if I can compile this stiff from source.
> 
> However I just ran into something ugly:  The scanner stuff...that scangearmp2, requires these:
> 
> ```
> ...

 

Welcome to... those unlucky ones who got Canon(tm) hw, first.

Normally Canon(tm) scaners should work out of the box with SNAE by enabling the appropriate USE flags, say, `SANE_BACKENDS="canon_{dr,pr} pixma net"'. Mine does out of the box without any particular hassle nor extra configuration step.

Now, you're double unlucky with a combined printer/scaner set up hw! Moreover, you want the net backend whcih could bring in extra hassle with the open source solution because Canon(tm) is well known to not give a $#@! about it.

So, try to enable *all* the right stuff and try again with a local configuration and then network. If this does not help...

Enter Canon(tm) package. Without network backend you could get only the GPL-2 part of it. Using network stuff pull in proprietary libraries. Those missing libraries are part of any `cnijfilter-source-VERSION.tar.gz'. Still, any VERSION won't do because you have to determine the VERSION supporting you'r hw. And canon(tm) web-site/support can help you determine which one to pick up--and here you'll learn that the exact model number is not necessary at all, MG6600 or MG6500 could have support for your hw.

This is where an ebuild would help. Try the latest version containing any series near yours and then merge scangearamp afterwards--the dependencies libraries would be satisfied at least in that order.

----------

## tld

 *tclover wrote:*   

> Welcome to... those unlucky ones who got Canon(tm) hw, first.
> 
> Normally Canon(tm) scaners should work out of the box with SNAE by enabling the appropriate USE flags, say, `SANE_BACKENDS="canon_{dr,pr} pixma net"'. Mine does out of the box without any particular hassle nor extra configuration step.
> 
> 

 

Whoa...what do you know.  You just made me realize that my SANE_BACKENDS has pixma but not either of the canon* settings!  I'm actually not sure which I'm supposed to have for this, but I'll give that a try.

Not holding out a lot of hope.  You can't imagine what I went through trying to compile the cnijfilter2 mess...dear lord.  The closest I got was a printer that reported a "filter failed" error.

Thanks!

Tom

----------

## tld

Nah...adding the various cannon* use stuff to SANE_BACKENDS and to the /etc/sane.d/dll.conf didn't help sane see this thing at all...a total doorstop so far.

Tom

----------

## Buffoon

You do not need all that, I have Brother for instance, it works with SANE_BACKENDS="net" and net and brother3 in dll.conf. brother3 is the binary driver I installed.

----------

## tld

Ideally I'd like an all-in-one that I can use without anyone's B.S. binary drivers.  It's disheartening how difficult that seems to be.  We've gone through many HP all-in-one printer/scanners.  They hplip support is good, but several things piss me off there:

First of all, the quality (especially lifespan) of the less expensive HP printers seems to have really declined.  Second of all, even though I've read that it's not supposed to, hplip requires dbus.  In fact, for me, scanning even segfaults if it's not actually running:

https://bugs.launchpad.net/hplip/+bug/1095783

...that's just inexcusable.

We may just give this all-in-one to relatives and get something else.  We sort of wanted to give Canon a try, but I'm having a hard time determining which, if any, might work with cups and sane without all their binary crap.

...and again...where the hell did they dig up all those library dependencies on libraries that can't even be found on the Internet...I mean FFS.

Tom

----------

## Fitzcarraldo

Just noticed that sane-backends in the SANE Git repository supports MG6600 Series. Have you tried installing the development version/daily snapshot? I renamed sane-backends-1.0.25_pre20150628.ebuild in my local overlay in order to merge the daily snapshot.

----------

## tld

 *Fitzcarraldo wrote:*   

> Just noticed that sane-backends in the SANE Git repository supports MG6600 Series. Have you tried installing the development version/daily snapshot? I renamed sane-backends-1.0.25_pre20150628.ebuild in my local overlay in order to merge the daily snapshot.

 Yes!  Thanks you!

That worked great.  I'm a little confused as to the purpose of sane-find-scanner, as that still didn't do anything, however scanimage -L saw it just find, and scanimage works.

Thanks again!  If I can make some headway with printing I'll be set!

Tom

----------

## Fitzcarraldo

\o/

According to 'man sane-find-scanner' the command only searches for scanners connected via SCSI or USB, so if you're connecting via your home network then sane-find-scanner will not detect it.

----------

