Scanner : Xerox Workcentre 6015 B

Hello,

I have a Xerox Workcentre 6015 B.
I install the driver for linux but it works only for the printer and not for the scanner.
I’m connected via USB.
My workcenter is certified as working under windows, mac and linux.
But for the scanner under linux, it’s a problem.
It is not in the SANE scanner list.

Thx,

I can only offer you a long shot really. Think of yourself as a pioneer :slight_smile:

Anyway, the sane-xerox_mfp SANE backend offers support for some Xerox models.

It is mentioned

If you own a scanner other than the ones listed above that works with
this backend, please let us know this by sending the scanner’s exact
model name and the USB vendor and device ids (e.g. from
/proc/bus/usb/devices, sane-find-scanner or syslog) to us. Even if the
scanner’s name is only slightly different from the models mentioned
above, please let us know.

IMHO, you have nothing to lose by trying.

The key configuration file is /etc/sane.d/xerox_mfp.conf, and it is possible to add a specific chipset there. The other file that needs editing is /etc/sane.d/dll.conf. Uncomment the ‘xerox_mfp’ entry (by removing the ‘#’ character there.)

Finally, add a udev rule for your scanner (so that the device is registered with libsane as a scanner).

# Xerox Workcentre 6015B
ATTR{idVendor}=="0924", ATTR{idProduct}=="xxxx", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"
  • Insert the correct vendor and product details for your scanner (using ‘lsusb’ to get them).

It will be interesting to see if this works. Even if it doesn’t, perhaps you can then liaise with the SANE developers:

Good luck. I’ll be following with interest.

I added :

#Xerox WorkCentre 6015B
usb 0x0924 0x3d69

It’s done.

I don’t understand what you mean (PS : I’m french).
I understand I have to add this :

# Xerox Workcentre 6015B
ATTR{idVendor}=="0924", ATTR{idProduct}=="3d69", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

but where ? and why group IP ?

My “lsusb” :

Bus 003 Device 003: ID 0924:3d69 Xerox 
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0924 Xerox
  idProduct          0x3d69 
  bcdDevice            0.01
  iManufacturer           1 
  iProduct                2 
  iSerial                 3 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           62
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower               10mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass    255 Vendor Specific Subclass
      bInterfaceProtocol    255 Vendor Specific Protocol
      iInterface              4 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x000c  1x 12 bytes
        bInterval              16
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         7 Printer
      bInterfaceSubClass      1 Printer
      bInterfaceProtocol      2 Bidirectional
      iInterface              5 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval              10


I don’t understand what you mean (PS : I’m french).
I understand I have to add this :

# Xerox Workcentre 6015B
ATTR{idVendor}=="0924", ATTR{idProduct}=="3d69", MODE="0664", GROUP="lp", ENV{libsane_matched}="yes"

but where ? and why group IP ?

Custom rules get added to the /etc/udev/rules.d/directory. For example, you could create a rule called 40-Xerox.rules. Create it with your favourite editor as root eg using nano

sudo nano /etc/udev/rules.d/40-Xerox.rules

The assigned group for scanners is ‘lp’ (that’s an L not I) as per the existing rules in 55-libsane.rules. So, don’t forget to add your user to that group (via YaST).

After this, you could try detecting the scanner with

sane-find-scanner
scanimage -L

Remember that this is an experiment, so it may not work.

I did read somewhere that someone mentioned that the 6015B is not a TWAIN (=SANE) scanner, but rather a WIA (Windows Image Acquisition device), and if that’s true SANE will not be able to support it ever. In that case, it would be up to Xerox to provide a scanner package for Linux. (However, other Workcentre models are TWAIN devices, so there is hope.)

Ok.
I created the /etc/udev/rules.d/40-Xerox.rules.
I added my user in the group lp with

usermod -aG lp myusername

The command “sane-find-scanner” return me :

# 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.

  # No SCSI scanners found. If you expected something different, make sure that
  # you have loaded a kernel SCSI driver for your SCSI adapter.

could not fetch string descriptor: Pipe error
could not fetch string descriptor: Pipe error
  # 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.

  # Not checking for parallel port scanners.

  # Most Scanners connected to the parallel port or other proprietary ports
  # can't be detected by this program.

and “scanimage -L” returned :

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).

So that did’nt work.
I will try to contact Xerox.

As I feared. It is probably a Windows Image Acquisition device, and if is not supported by Linux. (It would require a proprietary driver to operate at all.)

I will try to contact Xerox.

It’s about all you can do, though I don’t hold out much hope.