Page 1 of 2 12 LastLast
Results 1 to 10 of 14

Thread: Suse 13.2 - scanner no longer working on 64-bit version

Hybrid View

  1. #1

    Exclamation Suse 13.2 - scanner no longer working on 64-bit version

    Hello,

    I recently changed my old 32-bit machine (which was running suse 13.2) for a new x86_64 machine on which I installed 13.2, and ever since I can't get my old Brother DCP-135C scanner to work. (It's a multi-purpose device, the printer part is working). I used the described procedure in the Brother pages, as well as my notes on what I did on the 32-bit version to get everything working correctly in 13.2.

    I've done all the pre-requisites including udev rules etc. and scanimage is recognizing the scanner (scanimage -L), but trying to actually use the scanner (scanimage -T) doesn't work "Invalid argument". I have the output of strace etc. available, if I figure out how to attach it to this post.

    # Turn scanner off, wait 30sec, turn back on = 1st initialization
    root# export SANE_DEBUG_DLL=4
    root# scanimage -T
    [sanei_debug] Setting debug level of dll to 4.
    [dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.24
    [dll] sane_init/read_dlld: attempting to open directory `./dll.d'
    [dll] sane_init/read_dlld: attempting to open directory `/etc/sane.d/dll.d'
    [dll] sane_init/read_dlld: opendir failed: No such file or directory
    [dll] add_backend: adding backend `brother2'
    [dll] sane_get_devices
    [dll] load: searching backend `brother2' in `/usr/lib64/sane'
    [dll] load: trying to load `/usr/lib64/sane/libsane-brother2.so.1'
    [dll] load: dlopen()ing `/usr/lib64/sane/libsane-brother2.so.1'
    [dll] init: initializing backend `brother2'
    [dll] init: backend `brother2' is version 1.0.1
    [dll] sane_get_devices: found 1 devices
    [dll] sane_open: trying to open `brother2:bus4;dev1'
    [dll] sane_open: open successful
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=0)
    [dll] sane_control_option(handle=0xff19e0,option=0,action=0,value=0x7fff38c3eefc,info=(nil))
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=0)
    [dll] sane_control_option(handle=0xff19e0,option=0,action=0,value=0x7fff38c3ee38,info=(nil))
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=1)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=2)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=3)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=4)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=5)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=6)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=7)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=8)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=9)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=10)
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=11)
    [dll] sane_control_option(handle=0xff19e0,option=10,action=0,value=0x60b584,info=(nil))
    [dll] sane_control_option(handle=0xff19e0,option=8,action=0,value=0x7fff38c3ee3c,info=(nil))
    [dll] sane_control_option(handle=0xff19e0,option=11,action=0,value=0x60b588,info=(nil))
    [dll] sane_control_option(handle=0xff19e0,option=9,action=0,value=0x7fff38c3ee3c,info=(nil))
    [dll] sane_control_option(handle=0xff19e0,option=8,action=0,value=0x7fff38c3ef10,info=(nil))
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=10)
    [dll] sane_control_option(handle=0xff19e0,option=10,action=1,value=0x7fff38c3ef30,info=0x7fff38c3ee3c)
    scanimage: rounded value of br-x from 215.9 to 215.88
    [dll] sane_control_option(handle=0xff19e0,option=9,action=0,value=0x7fff38c3ef10,info=(nil))
    [dll] sane_get_option_descriptor(handle=0xff19e0,option=11)
    [dll] sane_control_option(handle=0xff19e0,option=11,action=1,value=0x7fff38c3ef30,info=0x7fff38c3ee3c)
    scanimage: rounded value of br-y from 355.6 to 355.567
    [dll] sane_start(handle=0xff19e0)
    scanimage: sane_start: Invalid argument
    [dll] sane_cancel(handle=0xff19e0)
    [dll] sane_close(handle=0xff19e0)
    [dll] sane_exit: exiting
    [dll] sane_exit: calling backend `brother2's exit function
    [dll] sane_exit: finished

    Is this something to do with 32/64 bit, is it to do with Sane, with Suse, with brother drivers? I'm stuck here, any help is appreciated.

  2. #2
    Join Date
    Jun 2008
    Location
    Auckland, NZ
    Posts
    21,949
    Blog Entries
    1

    Default Re: Suse 13.2 - scanner no longer working on 64-bit version

    Starting from the top. Did you install the 64-bit RPM that is available for this model?

    http://support.brother.com/g/b/downl...c_eu_as&os=127

  3. #3

    Default Re: Suse 13.2 - scanner no longer working on 64-bit version

    Yes, I did install the 64-bit packages. Here's the list of installed packages, the brscan packages are from brother:

    root# rpm -qa | grep -i -e sane -e brscan | sort

    brscan-skey-0.2.4-1.x86_64
    brscan2-0.2.5-1.x86_64
    hplip-sane-3.14.6-2.2.4.x86_64
    libksane0-14.12.3-16.1.x86_64
    sane-backends-1.0.24-2.1.10.x86_64
    sane-backends-32bit-1.0.24-2.1.10.x86_64
    sane-backends-autoconfig-1.0.24-2.1.10.x86_64
    xsane-0.998-22.1.5.x86_64

  4. #4
    Join Date
    Jun 2008
    Location
    Auckland, NZ
    Posts
    21,949
    Blog Entries
    1

    Default Re: Suse 13.2 - scanner no longer working on 64-bit version

    Is the scanner connected to a USB 3.0 or USB 2.0 port? (Just in case this is affecting the behaviour somehow)

    This is definitely concerning and it may require a bug report to help resolve
    Code:
    [dll] sane_start(handle=0xff19e0)
    scanimage: sane_start: Invalid argument'

  5. #5

    Default Re: Suse 13.2 - scanner no longer working on 64-bit version

    Looking at the back of the PC it appears to be USB 2.0 (the symbol doesn't mention SS as the USB ports on the front do). I don't think the USB version is directly related. However, since checking the back of the PC is rather difficult, I first checked with lsusb. It did make me notice something else (bold stuff): scanimage and lsusb don't report the same bus:device descriptor!

    lsusb -v output for version numbers:
    Code:
    ... stuf omitted ...
    
    Bus 003 Device 015: ID 04f9:01ce Brother Industries, Ltd DCP-135C
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               1.00
      bDeviceClass            0 (Defined at Interface level)
      bDeviceSubClass         0 
      bDeviceProtocol         0 
      bMaxPacketSize0         8
      idVendor           0x04f9 Brother Industries, Ltd
      idProduct          0x01ce DCP-135C
      bcdDevice            1.00
      iManufacturer           0 
      iProduct                0 
      iSerial                 3 BROJ8F733644
      bNumConfigurations      1
    
    ... stuf omitted ...
    whereas scanimage -L

    Code:
    [sanei_debug] Setting debug level of dll to 4.
    [dll] sane_init: SANE dll backend version 1.0.13 from sane-backends 1.0.24
    [dll] sane_init/read_dlld: attempting to open directory `./dll.d'
    [dll] sane_init/read_dlld: attempting to open directory `/etc/sane.d/dll.d'
    [dll] sane_init/read_dlld: opendir failed: No such file or directory
    [dll] add_backend: adding backend `brother2'
    [dll] sane_get_devices
    [dll] load: searching backend `brother2' in `/usr/lib64/sane'
    [dll] load: trying to load `/usr/lib64/sane/libsane-brother2.so.1'
    [dll] load: dlopen()ing `/usr/lib64/sane/libsane-brother2.so.1'
    [dll] init: initializing backend `brother2'
    [dll] init: backend `brother2' is version 1.0.1
    [dll] sane_get_devices: found 1 devices
    device `brother2:bus4;dev1' is a Brother DCP-135C USB scanner
    [dll] sane_exit: exiting
    [dll] sane_exit: calling backend `brother2's exit function
    [dll] sane_exit: finished
    I thus moved the scanner to a different port on the back, resulting in:

    Code:
    Bus 002 Device 002: ID 8087:8001 Intel Corp. 
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 8087:8009 Intel Corp. 
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 016: ID 04f9:01ce Brother Industries, Ltd DCP-135C
    Bus 003 Device 002: ID 04f2:0420 Chicony Electronics Co., Ltd 
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    scanimage -L continues to report

    Code:
    device `brother2:bus4;dev1' is a Brother DCP-135C USB scanner
    similar for all other ports a I tried on the back. The two ports on the front are USB 3.0, I tried both, but they too are on Bus3 at device 18 and 19 respectively.

  6. #6

    Default Re: Suse 13.2 - scanner no longer working on 64-bit version

    As it turns out all the USB ports on my computer are on Bus 3 and the lowest device ID = 15 and going up in the 20s.

    But whatever I do scanimage -L always lists it as "bus4:dev1"

    A bug somewhere?

  7. #7

    Default Re: Suse 13.2 - scanner no longer working on 64-bit version

    small correction, the device IDs seem to be allocated dynamically, hence physically putting a device on another USB port will always increase the device ID number on Bus 3. By rebooting I did manage to get:

    Code:
    Bus 003 Device 003: ID 04f9:01ce Brother Industries, Ltd DCP-135C
    no different though. Scanimage -L reports

    Code:
    device `brother2:bus4;dev1' is a Brother DCP-135C USB scanner
    Looking in the output of strace (result of strace -o strace.out scanimage -T), the whole scanimage false reports may be just a display bug, because the open call does use 003/003

    Code:
    ... stuff omitted ...
    open("/dev/bus/usb/003/003", O_RDWR)    = 189
    ioctl(189, SNDRV_CTL_IOCTL_TLV_READ or USBDEVFS_GET_CAPABILITIES, 0x12b9ba0) = 0
    write(7, "\1", 1)                       = 1
    read(6, "\1", 1)                        = 1
    ioctl(189, USBDEVFS_SETCONFIGURATION, 0x7fff3c862bbc) = -1 EBUSY (Device or resource busy)
    ioctl(189, SNDRV_CTL_IOCTL_ELEM_UNLOCK or USBDEVFS_CLEAR_HALT, 0x7fff3c862bbc) = 0
    ... stuff omitted ...
    if I
    Code:
    grep 189 strace.out
    I get

    Code:
    open("/dev/bus/usb/003/003", O_RDWR)    = 189
    ioctl(189, SNDRV_CTL_IOCTL_TLV_READ or USBDEVFS_GET_CAPABILITIES, 0x12b9ba0) = 0
    ioctl(189, USBDEVFS_SETCONFIGURATION, 0x7fff3c862bbc) = -1 EBUSY (Device or resource busy)
    ioctl(189, SNDRV_CTL_IOCTL_ELEM_UNLOCK or USBDEVFS_CLEAR_HALT, 0x7fff3c862bbc) = 0
    ioctl(189, USBDEVFS_CLAIMINTERFACE, 0x7fff3c862aec) = 0
    ioctl(189, USBDEVFS_SUBMITURB, 0x12b9e10) = 0
    poll([{fd=6, events=POLLIN}, {fd=8, events=POLLIN}, {fd=10, events=POLLIN}, {fd=189, events=POLLOUT}], 4, 60000) = 1 ([{fd=189, revents=POLLOUT}])
    ioctl(189, USBDEVFS_REAPURBNDELAY, 0x7fff3c862998) = 0
    ioctl(189, USBDEVFS_REAPURBNDELAY, 0x7fff3c862998) = -1 EAGAIN (Resource temporarily unavailable)
    ioctl(189, USBDEVFS_SUBMITURB, 0x12b9e10) = 0
    poll([{fd=6, events=POLLIN}, {fd=8, events=POLLIN}, {fd=10, events=POLLIN}, {fd=189, events=POLLOUT}], 4, 60000) = 1 ([{fd=189, revents=POLLOUT}])
    ... pattern in bold repeats another 312 times to end with ...
    ioctl(189, USBDEVFS_REAPURBNDELAY, 0x7fff3c862aa8) = -1 EAGAIN (Resource temporarily unavailable)
    ioctl(189, SNDRV_CTL_IOCTL_ELEM_LIST or USBDEVFS_RELEASEINTERFACE, 0x7fff3c862bdc) = 0
    close(189)                              = 0

  8. #8
    Join Date
    Jun 2008
    Location
    Auckland, NZ
    Posts
    21,949
    Blog Entries
    1

    Default Re: Suse 13.2 - scanner no longer working on 64-bit version

    I think a bug report with the scanimage debug and strace output will be required to help resolve this. It would be interesting to see whether the 32-bit drivers can work. (I think 'sane-backends-32bit' is required for this.)

  9. #9
    Join Date
    Jun 2008
    Location
    Auckland, NZ
    Posts
    21,949
    Blog Entries
    1

    Default Re: Suse 13.2 - scanner no longer working on 64-bit version

    Quote Originally Posted by deano_ferrari View Post
    I think a bug report with the scanimage debug and strace output will be required to help resolve this. It would be interesting to see whether the 32-bit drivers can work. (I think 'sane-backends-32bit' is required for this.)
    ....and I still wonder about whether this is perhaps related to USB 3.0 (XHCI) communication failure?

  10. #10
    Join Date
    Nov 2009
    Location
    West Virginia Sector 13
    Posts
    15,982

    Default Re: Suse 13.2 - scanner no longer working on 64-bit version

    The device number is immaterial. We are speaking about the USB protocol used. The error report indicate you were using a USB3 protocol but you need to try a USB2 protocol. Most machines will still have both. Sometimes the USB 3's are coloured different. There have been some problems reported with some hardware USB3 ports

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •