# Help make a USB scanner work



## roger85 (Nov 21, 2013)

Hi all,

I try to install a Canon "CanoScan 9000F" USB scanner using a USB-2 port on my box (Intel quadcore) running fine FreeBSD9.2-REL (GENERIC kernel). sane-backends and xsane were compiled from ports ("with libusb"). Both the sane-backends man page and the SANE website confirm that the proper driver for such a device is "pixma".

According to the Handbook's 8.2 Section, the group for related /dev is "operator".

Now:

```
$ sudo sane-find-scanner
  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.

found USB scanner (vendor=0x04a9 [Canon], product=0x190d [CanoScan]) at libusb:/dev/usb:/dev/ugen7.3
  # Your USB scanner was (probably) detected. It may or may not be supported by
  # SANE. Try scanimage -L and read the backend's manpage.
```


```
$ ls -l /dev/ugen7.*
lrw-rw----  1 root  operator  9 20 nov 08:31 /dev/ugen7.1 -> usb/7.1.0
lrw-rw----  1 root  operator  9 20 nov 08:31 /dev/ugen7.2 -> usb/7.2.0
lrw-rw----  1 root  operator  9 20 nov 08:38 /dev/ugen7.3 -> usb/7.3.0
```

Editing /usr/local/etc/sane.d/pixma.conf:

```
# pixma.conf configuration for the sane pixma backend
# CanoScan 9000F Mk2
usb 0x04a9 0x190d
/dev/ugen7.3
#
```

and then:

```
$ sudo scanimage -L
Password:

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).
$
```
As well, xscane doesn't detect any scanner.

Further investigations:

 that device run just fine on a different box, running Windows
 a HP Photosmart C5280 "all-in-one" connected on the same port does not work as scanner, instead the printer-part is properly detected and driven.
 an old SCSI scanner had all time worked fine on that box
 unfortunately, trying to install the scanner in a VirtualBox emulating Windows fails: VirtualBox-ose needs VirtualBox-ose-additions to manage with USB 2.0 stuff; "additions" is said to conflict with VirtualBox-ose (installs files in the same place) and fails to install.

Could we have a work-around to make the given 2.0 USB port be seen as a 1.0 port (then under control of VirtualBox)?

Help (and comments) are welcome,

Roger85


----------



## wblock@ (Nov 21, 2013)

roger85 said:
			
		

> Editing /usr/local/etc/sane.d/pixma.conf:
> 
> ```
> # pixma.conf configuration for the sane pixma backend
> ...



Just the usb line should be enough.



> and then:
> 
> ```
> $ sudo scanimage -L
> ...



sudo is not the same as logging in as root with `su -`.  There are places where it matters, although I'm not sure if this is one.



> unfortunately, trying to install the scanner in a VirtualBox emulating Windows fails: VirtualBox-ose needs VirtualBox-ose-additions to manage with USB 2.0 stuff; "additions" is said to conflict with VirtualBox-ose (installs files in the same place) and fails to install.



The additions are installed inside the VM, not on the host.

The sane-project.org web site has been down for a while (don't know why), so I was not able to check support for that scanner.


----------



## roger85 (Nov 22, 2013)

Hi Warren,

Thanks for your reply.

I logged in using su instead of sudo, but unsuccessfully.

Sorry, I had mistaken virtualbox-additions for virtualbox-extensions; unluckily, the latter one is only available (as binary, not as source) for Linux (and not in ports/emulators). Thus the way using the proprietary Canon driver in a Virtualbox running Windows does not succeed, as all the USB ports in my box are USB 2.0!

So I'll investigate further!

Best regards

Roger


----------



## Deleted member 9563 (Nov 22, 2013)

The USB 2.0 specification is supposed to be backwards-compatible with USB 1.x.


----------



## wblock@ (Nov 22, 2013)

The extensions and additions are the same thing.  While running the VM, go to the Devices menu.  "Install guest additions is at the bottom.  That mounts a CD image with the drivers.  It may even auto-run.  After installing those drivers, and possibly restarting the VM, USB devices will be available in the same menu for pass-through.  

The USB 1.0 thing is not a problem.  The original USB pass-through just used the USB 1.0 protocol, it was not a restriction on the type of port.


----------



## roger85 (Dec 1, 2013)

Hello Warren,

Just to say that I found a workaround and will close that thread.

For those concerned by a similar issue, here are few details:

The scanner Canon 9000F is supported by the pixma backend, part of the graphics/sane-backends port; the provided version is sane-backends-1.0.23.
The Canon 9000F MkII is technically similar, but differs only from a limited bundled software (i.e. no OCR); but he has a different product ID; as the product ID is embedded in the backend, the device appears as unsupported. (This is obvious when digging in the pixma_mp810.c source code.)
Yes, the SANE website seems sleeping for a while, but sane-backends are regularly updated; now a version sane-backends-1.0.24 is available, including support for the 9000F MkII. (Note that xsane keep the same stable version.)
Uninstalling sane-backends from port, compiling separately sane-backends-1.0.24 allows you to install the libraries in the proper place and make the device supported.
Please edit the /etc/devd/saned.conf file according to the hint provided in work/pkg-message.
*Depending on the physical port* the scanner is connected to, *on the possible USB-sticks connected or not* at boot up, and *wether the scanner is powered before or after* boot up, the numbering of the /dev/ugen.*.* *could be different*. (In my box, it could be /dev/ugen7.2 or /dev/ugen7.3 ; that could be an issue?)
Thank you again for your involvement.

_(I apologize for my approximative English language, but you are lucky: you don't hear the pronunciation!)_

Best regards,

Roger


----------

