Gentoo Wiki


This article is part of the Hardware series.
Laptops TV Tuner Cards Wireless Servers Storage Other Hardware Motherboards Related



NOTE: This could use updating for systems without hotplug. If I get my scanner working again, I might do it,but until then...

I'm assuming a 2.6 kernel and kooka installed. Anyway this should work the same with xsane, since both of them are based on sane-backends and libusb. These two packages should be installed along with hotplug, they are dependencies (direct dependencies) for xsane and kooka, so there should be no trouble at all. :wink:

It takes a little effort to make it fully work the scanner (the printer works out of the box with gimp-print drivers). (You may use the CX-3200 driver)

NOTE: sane-backends-1.0.16-r4 == CX3650 works out of the box with sane-backends-1.0.16-r4.

Code: unmasking
echo "=media-gfx/sane-backends-1.0.16-r4" >> /etc/portage/package.keywords

NOTE: If the CX3650 is connected through a USB HUB the scanner may not be detected by sane-find-scanner! So connect it directly!

Remember that your user has to be in the scanner group to be able to access scanner devices.

The rest of the instructions should not be needed for CX3650 but are here for reference.

UPDATE: Some people say Epson DX3850 doesn't work with the gimp-driver for printing, but only with the turboprint-driver as Epson C66. However here the printer works fine with the Epson Stylus C64 driver from the Gutenprint project (formerly known as gimp-print).

The scanner works as described for the CX3650!


After this preliminary test you must make sure that your usb support is working, the best way to do this is to try first the printer, and I will not put that info here, since there are zillions of topics about that, for more info

If your printer is working, then the scanner is also, and the only issues here are about permissions, sane-backends and hotplug. Three categories only. If your printer is not working look elsewhere.

We do lsusb, and we see:

Code: lsusb
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 003: ID 04b8:080e Seiko Epson Corp.
Bus 001 Device 001: ID 0000:0000

That's our little friend.

Well, now let's see if the permissions are right...

Code: ls -l /proc/bus/usb/001
total 0
-rw-r--r--  1 root root    43 abr 26 21:11 001
-rw-r-----  1 root root    73 abr 26 21:12 002

Of course you have to be sure that 001 is the right port, if not look with ls into 002, 003, etc...

Well, seeing this we can say that surely, the root user can see the scanner from kooka or xsane. Try as root, if you see the scanner then we found our problem.

Now we need to modify some files from hotplug, libusb and sane configurations.

First we'll see the id and verdor numbers for our scanner:

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

found USB scanner (vendor=0x04b8 [EPSON], product=0x080e [USB MFP]) at libusb:001:003


We take note and now edit the relevant files, as root user, of course.

File: /etc/sane.d/epson.conf
# SCSI scanner:
#scsi EPSON
# Parallel port scanner:
#pio 0x278
#pio 0x378
#pio 0x3BC
# USB scanner:
# There are two different methods of configuring a USB scanner: libusb and the $
# For any system with libusb support (which is pretty much any recent Linux dis$
# following line is sufficient. This however assumes that the connected scanner$
# accurate, it's device ID) is known to the backend.
# For libusb support for unknown scanners use the following command
# usb <product ID> <device ID>
# e.g.:
usb 0x04b8 0x080e
# And for the scanner module, use the following configuration:
usb /dev/usbscanner0
usb /dev/usb/scanner0

We comment all the lines related to parallel port and scsi scanners, and, as the instructions on the file tells to us, we write down the numbers we saw in the previous step. We also need to uncomment the relevant lines, although I don't know if really there all are needed :wink:

File: /etc/hotplug/usb/libsane.usermap
# Sample entry (replace 0xVVVV and 0xPPPP with vendor ID and product ID respect.......
libusbscanner 0x0003 0x04b8 0x080e 0x0000 0x0000 0x00 0x00 0x00 0x00 0x00 0x........

Seeking the instructions in the beginning of the file we change the second and third numbers on that line to ours. In the example are mine, the rest of the numbers on that line remains untouched.

File: /etc/hotplug/usb/libusbscanner
if [ "$ACTION" = "add" -a "$TYPE" = "usb" ]; then
  chown root:scanner "$DEVICE"
  chmod 0660 "$DEVICE"

I had not to change this file, but, if you find a different permissions settings in that code change them to '066'.

//UPDATE: Specialy for the DX3850 (CX3700) scanner is a driver available at: (tested. Works fine with included software, but with printer driver have some trouble)

Last step

Add all the relevant users to the 'scanner' group. Shut off the device, now if you repeat the 'ls' you will get one less device.

Code: ls -l /proc/bus/usb/001
total 0
-rw-r--r--  1 root root    43 abr 26 21:11 001

Now turn on and if you did well you will see:

Code: ls -l /proc/bus/usb/001
total 0
-rw-r--r--  1 root root    43 abr 26 21:11 001
-rw-rw----  1 root scanner 73 abr 26 21:12 003

A new device has been plugged and now the permissions are OK and the group is scanner. All the user in that group should now be able to use that device correctlly from any sane based program, like kooka or xsane.

Suggestions, corrections, kicks and beers are all wellcome. :)

Retrieved from ""

Last modified: Mon, 25 Aug 2008 20:41:00 +0000 Hits: 31,126