<div dir="ltr"><div><div>Joining the list to begin the process of developing a backend for an unlisted scanner.<br><br>Brother DSmobile 700D<br><br><a href="http://www.brother-usa.com/Scanners/ModelDetail/24/ds700d">http://www.brother-usa.com/Scanners/ModelDetail/24/ds700d</a><br>

<br></div><div>I am a competent C programmer. ;)<br><br>Any advice and/or direction is appreciated.<br></div><br></div>Here is the output<em> </em>of: <em>sudo sane-find-scanner -v -v<br></em><span style="font-family:courier new,monospace"><br>

This is sane-find-scanner from sane-backends 1.0.22<br><br>  # sane-find-scanner will now attempt to detect your scanner. If the<br>  # result is different from what you expected, first make sure your<br>  # scanner is powered up and properly connected to your computer.<br>

<br>searching for SCSI scanners:<br>checking /dev/scanner... failed to open (Invalid argument)<br>checking /dev/sg0... failed to open (Invalid argument)<br>checking /dev/sg1... failed to open (Invalid argument)<br>checking /dev/sg2... failed to open (Invalid argument)<br>

checking /dev/sg3... failed to open (Invalid argument)<br>checking /dev/sg4... failed to open (Invalid argument)<br>checking /dev/sg5... failed to open (Invalid argument)<br>checking /dev/sg6... failed to open (Invalid argument)<br>

checking /dev/sg7... failed to open (Invalid argument)<br>checking /dev/sg8... failed to open (Invalid argument)<br>checking /dev/sg9... failed to open (Invalid argument)<br>checking /dev/sga... failed to open (Invalid argument)<br>

checking /dev/sgb... failed to open (Invalid argument)<br>checking /dev/sgc... failed to open (Invalid argument)<br>checking /dev/sgd... failed to open (Invalid argument)<br>checking /dev/sge... failed to open (Invalid argument)<br>

checking /dev/sgf... failed to open (Invalid argument)<br>checking /dev/sgg... failed to open (Invalid argument)<br>checking /dev/sgh... failed to open (Invalid argument)<br>checking /dev/sgi... failed to open (Invalid argument)<br>

checking /dev/sgj... failed to open (Invalid argument)<br>checking /dev/sgk... failed to open (Invalid argument)<br>checking /dev/sgl... failed to open (Invalid argument)<br>checking /dev/sgm... failed to open (Invalid argument)<br>

checking /dev/sgn... failed to open (Invalid argument)<br>checking /dev/sgo... failed to open (Invalid argument)<br>checking /dev/sgp... failed to open (Invalid argument)<br>checking /dev/sgq... failed to open (Invalid argument)<br>

checking /dev/sgr... failed to open (Invalid argument)<br>checking /dev/sgs... failed to open (Invalid argument)<br>checking /dev/sgt... failed to open (Invalid argument)<br>checking /dev/sgu... failed to open (Invalid argument)<br>

checking /dev/sgv... failed to open (Invalid argument)<br>checking /dev/sgw... failed to open (Invalid argument)<br>checking /dev/sgx... failed to open (Invalid argument)<br>checking /dev/sgy... failed to open (Invalid argument)<br>

checking /dev/sgz... failed to open (Invalid argument)<br>  # No SCSI scanners found. If you expected something different, make sure that<br>  # you have loaded a kernel SCSI driver for your SCSI adapter.<br><br>searching for USB scanners:<br>

checking /dev/usb/scanner... failed to open (Invalid argument)<br>checking /dev/usb/scanner0... failed to open (Invalid argument)<br>checking /dev/usb/scanner1... failed to open (Invalid argument)<br>checking /dev/usb/scanner2... failed to open (Invalid argument)<br>

checking /dev/usb/scanner3... failed to open (Invalid argument)<br>checking /dev/usb/scanner4... failed to open (Invalid argument)<br>checking /dev/usb/scanner5... failed to open (Invalid argument)<br>checking /dev/usb/scanner5... failed to open (Invalid argument)<br>

checking /dev/usb/scanner7... failed to open (Invalid argument)<br>checking /dev/usb/scanner8... failed to open (Invalid argument)<br>checking /dev/usb/scanner9... failed to open (Invalid argument)<br>checking /dev/usb/scanner10... failed to open (Invalid argument)<br>

checking /dev/usb/scanner11... failed to open (Invalid argument)<br>checking /dev/usb/scanner12... failed to open (Invalid argument)<br>checking /dev/usb/scanner13... failed to open (Invalid argument)<br>checking /dev/usb/scanner14... failed to open (Invalid argument)<br>

checking /dev/usb/scanner15... failed to open (Invalid argument)<br>checking /dev/usbscanner... failed to open (Invalid argument)<br>checking /dev/usbscanner0... failed to open (Invalid argument)<br>checking /dev/usbscanner1... failed to open (Invalid argument)<br>

checking /dev/usbscanner2... failed to open (Invalid argument)<br>checking /dev/usbscanner3... failed to open (Invalid argument)<br>checking /dev/usbscanner4... failed to open (Invalid argument)<br>checking /dev/usbscanner5... failed to open (Invalid argument)<br>

checking /dev/usbscanner6... failed to open (Invalid argument)<br>checking /dev/usbscanner7... failed to open (Invalid argument)<br>checking /dev/usbscanner8... failed to open (Invalid argument)<br>checking /dev/usbscanner9... failed to open (Invalid argument)<br>

checking /dev/usbscanner10... failed to open (Invalid argument)<br>checking /dev/usbscanner11... failed to open (Invalid argument)<br>checking /dev/usbscanner12... failed to open (Invalid argument)<br>checking /dev/usbscanner13... failed to open (Invalid argument)<br>

checking /dev/usbscanner14... failed to open (Invalid argument)<br>checking /dev/usbscanner15... failed to open (Invalid argument)<br>trying libusb:<br><br><device descriptor of 0x04f9/0x2051 at 002:005 (Brother DSmobile 700D)><br>

bLength               18<br>bDescriptorType       1<br>bcdUSB                2.00<br>bDeviceClass          255<br>bDeviceSubClass       255<br>bDeviceProtocol       255<br>bMaxPacketSize0       64<br>idVendor              0x04F9<br>

idProduct             0x2051<br>bcdDevice             7.03<br>iManufacturer         10 (Brother)<br>iProduct              11 (DSmobile 700D)<br>iSerialNumber         12 (0)<br>bNumConfigurations    1<br> <configuration 0><br>

 bLength              9<br> bDescriptorType      2<br> wTotalLength         39<br> bNumInterfaces       1<br> bConfigurationValue  1<br> iConfiguration       0 ()<br> bmAttributes         160 (Remote Wakeup)<br> MaxPower             500 mA<br>

  <interface 0><br>   <altsetting 0><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   0<br>   bAlternateSetting  0<br>   bNumEndpoints      3<br>   bInterfaceClass    255<br>   bInterfaceSubClass 255<br>

   bInterfaceProtocol 255<br>   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      2 (bulk)<br>    wMaxPacketSize    512<br>

    bInterval         0 ms<br>    bRefresh          0<br>    bSynchAddress     0<br>    <endpoint 1><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x02 (out 0x02)<br>    bmAttributes      2 (bulk)<br>

    wMaxPacketSize    512<br>    bInterval         0 ms<br>    bRefresh          0<br>    bSynchAddress     0<br>    <endpoint 2><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x83 (in 0x03)<br>

    bmAttributes      3 (interrupt)<br>    wMaxPacketSize    1<br>    bInterval         8 ms<br>    bRefresh          0<br>    bSynchAddress     0<br><br><trying to find out which USB chip is used><br>    checking for GT-6801 ...<br>

    this is not a GT-6801 (bcdUSB = 0x200)<br>    checking for GT-6816 ...<br>    this is not a GT-6816 (bDeviceClass = 255, bInterfaceClass = 255)<br>    checking for GT-8911 ...<br>    this is not a GT-8911 (check 1, bDeviceClass = 255, bInterfaceClass = 255)<br>

    checking for MA-1017 ...<br>    this is not a MA-1017 (bDeviceClass = 255, bInterfaceClass = 255)<br>    checking for MA-1015 ...<br>    this is not a MA-1015 (bcdUSB = 0x200)<br>    checking for MA-1509 ...<br>    this is not a MA-1509 (bcdUSB = 0x200)<br>

    checking for LM983[1,2,3] ...<br>    this is not a LM983x (bcdUSB = 0x200)<br>    checking for GL646 ...<br>    this is not a GL646 (bDeviceClass = 255, bInterfaceClass = 255)<br>    checking for GL646_HP ...<br>    this is not a GL646_HP (bcdUSB = 0x200)<br>

    checking for GL660+GL646 ...<br>    this is not a GL660+GL646 (bDeviceClass = 255, bInterfaceClass = 255)<br>    checking for GL84x ...<br><This USB chip looks like a GL848+ (result from sane-backends 1.0.22)><br>

<br>found USB scanner (vendor=0x04f9 [Brother], product=0x2051 [DSmobile 700D], chip=GL848+) at libusb:002:005<br><br><device descriptor of 0x093a/0x2510 at 002:003><br>bLength               18<br>bDescriptorType       1<br>

bcdUSB                1.10<br>bDeviceClass          0<br>bDeviceSubClass       0<br>bDeviceProtocol       0<br>bMaxPacketSize0       8<br>idVendor              0x093A<br>idProduct             0x2510<br>bcdDevice             1.00<br>

iManufacturer         1 ()<br>iProduct              2 ()<br>iSerialNumber         0 ()<br>bNumConfigurations    1<br> <configuration 0><br> bLength              9<br> bDescriptorType      2<br> wTotalLength         34<br>

 bNumInterfaces       1<br> bConfigurationValue  1<br> iConfiguration       4 ()<br> bmAttributes         160 (Remote Wakeup)<br> MaxPower             100 mA<br>  <interface 0><br>   <altsetting 0><br>   bLength            9<br>

   bDescriptorType    4<br>   bInterfaceNumber   0<br>   bAlternateSetting  0<br>   bNumEndpoints      1<br>   bInterfaceClass    3<br>   bInterfaceSubClass 1<br>   bInterfaceProtocol 2<br>   iInterface         0 ()<br>    <endpoint 0><br>

    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      3 (interrupt)<br>    wMaxPacketSize    4<br>    bInterval         10 ms<br>    bRefresh          0<br>    bSynchAddress     0<br>

<br><device descriptor of 0x8087/0x0024 at 002:002><br>bLength               18<br>bDescriptorType       1<br>bcdUSB                2.00<br>bDeviceClass          9<br>bDeviceSubClass       0<br>bDeviceProtocol       1<br>

bMaxPacketSize0       64<br>idVendor              0x8087<br>idProduct             0x0024<br>bcdDevice             0.00<br>iManufacturer         0 ()<br>iProduct              0 ()<br>iSerialNumber         0 ()<br>bNumConfigurations    1<br>

 <configuration 0><br> bLength              9<br> bDescriptorType      2<br> wTotalLength         25<br> bNumInterfaces       1<br> bConfigurationValue  1<br> iConfiguration       0 ()<br> bmAttributes         224 (Self-poweredRemote Wakeup)<br>

 MaxPower             0 mA<br>  <interface 0><br>   <altsetting 0><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   0<br>   bAlternateSetting  0<br>   bNumEndpoints      1<br>   bInterfaceClass    9<br>

   bInterfaceSubClass 0<br>   bInterfaceProtocol 0<br>   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      3 (interrupt)<br>

    wMaxPacketSize    1<br>    bInterval         12 ms<br>    bRefresh          0<br>    bSynchAddress     0<br><br><device descriptor of 0x1d6b/0x0002 at 002:001 (Linux 3.0.0-32-generic-pae ehci_hcd EHCI Host Controller)><br>

bLength               18<br>bDescriptorType       1<br>bcdUSB                2.00<br>bDeviceClass          9<br>bDeviceSubClass       0<br>bDeviceProtocol       0<br>bMaxPacketSize0       64<br>idVendor              0x1D6B<br>

idProduct             0x0002<br>bcdDevice             3.00<br>iManufacturer         3 (Linux 3.0.0-32-generic-pae ehci_hcd)<br>iProduct              2 (EHCI Host Controller)<br>iSerialNumber         1 (0000:00:1d.0)<br>bNumConfigurations    1<br>

 <configuration 0><br> bLength              9<br> bDescriptorType      2<br> wTotalLength         25<br> bNumInterfaces       1<br> bConfigurationValue  1<br> iConfiguration       0 ()<br> bmAttributes         224 (Self-poweredRemote Wakeup)<br>

 MaxPower             0 mA<br>  <interface 0><br>   <altsetting 0><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   0<br>   bAlternateSetting  0<br>   bNumEndpoints      1<br>   bInterfaceClass    9<br>

   bInterfaceSubClass 0<br>   bInterfaceProtocol 0<br>   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      3 (interrupt)<br>

    wMaxPacketSize    4<br>    bInterval         12 ms<br>    bRefresh          0<br>    bSynchAddress     0<br><br><device descriptor of 0x0c45/0x6436 at 001:003 (LOEAAI10P2SF0181B605764 Sony Visual Communication Camera)><br>

bLength               18<br>bDescriptorType       1<br>bcdUSB                2.00<br>bDeviceClass          239<br>bDeviceSubClass       2<br>bDeviceProtocol       1<br>bMaxPacketSize0       64<br>idVendor              0x0C45<br>

idProduct             0x6436<br>bcdDevice             17.12<br>iManufacturer         2 (LOEAAI10P2SF0181B605764)<br>iProduct              1 (Sony Visual Communication Camera)<br>iSerialNumber         0 ()<br>bNumConfigurations    1<br>

 <configuration 0><br> bLength              9<br> bDescriptorType      2<br> wTotalLength         473<br> bNumInterfaces       2<br> bConfigurationValue  1<br> iConfiguration       0 ()<br> bmAttributes         128 ()<br>

 MaxPower             500 mA<br>  <interface 0><br>   <altsetting 0><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   0<br>   bAlternateSetting  0<br>   bNumEndpoints      1<br>   bInterfaceClass    14<br>

   bInterfaceSubClass 1<br>   bInterfaceProtocol 0<br>   iInterface         5 (Sony Visual Communication Camera)<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x83 (in 0x03)<br>

    bmAttributes      3 (interrupt)<br>    wMaxPacketSize    16<br>    bInterval         6 ms<br>    bRefresh          0<br>    bSynchAddress     0<br>  <interface 1><br>   <altsetting 0><br>   bLength            9<br>

   bDescriptorType    4<br>   bInterfaceNumber   1<br>   bAlternateSetting  0<br>   bNumEndpoints      0<br>   bInterfaceClass    14<br>   bInterfaceSubClass 2<br>   bInterfaceProtocol 0<br>   iInterface         5 (Sony Visual Communication Camera)<br>

   <altsetting 1><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   1<br>   bAlternateSetting  1<br>   bNumEndpoints      1<br>   bInterfaceClass    14<br>   bInterfaceSubClass 2<br>   bInterfaceProtocol 0<br>

   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      5 (isochronous)<br>    wMaxPacketSize    128<br>
    bInterval         1 ms<br>
    bRefresh          0<br>    bSynchAddress     0<br>   <altsetting 2><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   1<br>   bAlternateSetting  2<br>   bNumEndpoints      1<br>   bInterfaceClass    14<br>

   bInterfaceSubClass 2<br>   bInterfaceProtocol 0<br>   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      5 (isochronous)<br>

    wMaxPacketSize    256<br>    bInterval         1 ms<br>    bRefresh          0<br>    bSynchAddress     0<br>   <altsetting 3><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   1<br>

   bAlternateSetting  3<br>   bNumEndpoints      1<br>   bInterfaceClass    14<br>   bInterfaceSubClass 2<br>   bInterfaceProtocol 0<br>   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>

    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      5 (isochronous)<br>    wMaxPacketSize    800<br>    bInterval         1 ms<br>    bRefresh          0<br>    bSynchAddress     0<br>   <altsetting 4><br>

   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   1<br>   bAlternateSetting  4<br>   bNumEndpoints      1<br>   bInterfaceClass    14<br>   bInterfaceSubClass 2<br>   bInterfaceProtocol 0<br>   iInterface         0 ()<br>

    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      5 (isochronous)<br>    wMaxPacketSize    2848<br>    bInterval         1 ms<br>

    bRefresh          0<br>    bSynchAddress     0<br>   <altsetting 5><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   1<br>   bAlternateSetting  5<br>   bNumEndpoints      1<br>   bInterfaceClass    14<br>

   bInterfaceSubClass 2<br>   bInterfaceProtocol 0<br>   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      5 (isochronous)<br>

    wMaxPacketSize    4896<br>    bInterval         1 ms<br>    bRefresh          0<br>    bSynchAddress     0<br>   <altsetting 6><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   1<br>

   bAlternateSetting  6<br>   bNumEndpoints      1<br>   bInterfaceClass    14<br>   bInterfaceSubClass 2<br>   bInterfaceProtocol 0<br>   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>

    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      5 (isochronous)<br>    wMaxPacketSize    5120<br>    bInterval         1 ms<br>    bRefresh          0<br>    bSynchAddress     0<br><br><device descriptor of 0x8087/0x0024 at 001:002><br>

bLength               18<br>bDescriptorType       1<br>bcdUSB                2.00<br>bDeviceClass          9<br>bDeviceSubClass       0<br>bDeviceProtocol       1<br>bMaxPacketSize0       64<br>idVendor              0x8087<br>

idProduct             0x0024<br>bcdDevice             0.00<br>iManufacturer         0 ()<br>iProduct              0 ()<br>iSerialNumber         0 ()<br>bNumConfigurations    1<br> <configuration 0><br> bLength              9<br>

 bDescriptorType      2<br> wTotalLength         25<br> bNumInterfaces       1<br> bConfigurationValue  1<br> iConfiguration       0 ()<br> bmAttributes         224 (Self-poweredRemote Wakeup)<br> MaxPower             0 mA<br>

  <interface 0><br>   <altsetting 0><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   0<br>   bAlternateSetting  0<br>   bNumEndpoints      1<br>   bInterfaceClass    9<br>   bInterfaceSubClass 0<br>

   bInterfaceProtocol 0<br>   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      3 (interrupt)<br>    wMaxPacketSize    1<br>

    bInterval         12 ms<br>    bRefresh          0<br>    bSynchAddress     0<br><br><device descriptor of 0x1d6b/0x0002 at 001:001 (Linux 3.0.0-32-generic-pae ehci_hcd EHCI Host Controller)><br>bLength               18<br>

bDescriptorType       1<br>bcdUSB                2.00<br>bDeviceClass          9<br>bDeviceSubClass       0<br>bDeviceProtocol       0<br>bMaxPacketSize0       64<br>idVendor              0x1D6B<br>idProduct             0x0002<br>

bcdDevice             3.00<br>iManufacturer         3 (Linux 3.0.0-32-generic-pae ehci_hcd)<br>iProduct              2 (EHCI Host Controller)<br>iSerialNumber         1 (0000:00:1a.0)<br>bNumConfigurations    1<br> <configuration 0><br>

 bLength              9<br> bDescriptorType      2<br> wTotalLength         25<br> bNumInterfaces       1<br> bConfigurationValue  1<br> iConfiguration       0 ()<br> bmAttributes         224 (Self-poweredRemote Wakeup)<br>

 MaxPower             0 mA<br>  <interface 0><br>   <altsetting 0><br>   bLength            9<br>   bDescriptorType    4<br>   bInterfaceNumber   0<br>   bAlternateSetting  0<br>   bNumEndpoints      1<br>   bInterfaceClass    9<br>

   bInterfaceSubClass 0<br>   bInterfaceProtocol 0<br>   iInterface         0 ()<br>    <endpoint 0><br>    bLength           7<br>    bDescriptorType   5<br>    bEndpointAddress  0x81 (in 0x01)<br>    bmAttributes      3 (interrupt)<br>

    wMaxPacketSize    4<br>    bInterval         12 ms<br>    bRefresh          0<br>    bSynchAddress     0<br>  # Your USB scanner was (probably) detected. It may or may not be supported by<br>  # SANE. Try scanimage -L and read the backend's manpage.<br>

<br>  # Not checking for parallel port scanners.<br><br>  # Most Scanners connected to the parallel port or other proprietary ports<br>  # can't be detected by this program.<br>done<br></span><em><br></em></div>