[sane-devel] Epson Stylus CX5500 Scanner

2008-04-24 Thread Olaf Meeuwissen
Johannes Meixner jsmeix at suse.de writes:

 On Apr 23 21:01 Garry B wrote (shortened):
 I am running OpenSuse 10.3  can't get an Epson scanner to work.
 The scanner is an Epson CX5500 multi-function.

 See
 http://www.sane-project.org/cgi-bin/driver.pl?manu=epsonmodel=CX5500

 openSUSE 10.3 provides Iscan version 2.8.0.

Sorry, you need 2.9.0 (as mentioned in my other follow-up).

Hope this helps,
-- 
Olaf Meeuwissen   FLOSS Engineer -- AVASYS Corporation
FSF Associate Member #1962   sign up at http://member.fsf.org/



[sane-devel] Calling a script after USB scanner is plugged

2008-04-24 Thread Johannes Meixner

Hello,

On Apr 23 22:53 Rainer Dorsch wrote:
 Am Mittwoch, 23. April 2008 schrieb Julien BLACHE:
  Johannes Meixner jsmeix at suse.de wrote:
 
  Hi,
 
   umax1220u scripts are started in a sequence (i.e. not in parallel, when
   one is completed the next one starts).
 
  When troubleshooting udev rules, use udevmonitor to actually see
  what's happening in terms of udev events and their properties.
 
 
 That was a very good hint, thanks. A single scanimage -L causes these events:
 
 UEVENT[1208979136.171525] remove   /class/usb_endpoint/usbdev1.5_ep01 
 (usb_endpoint)
 UEVENT[1208979136.171696] remove   /class/usb_endpoint/usbdev1.5_ep82 
 (usb_endpoint)
 UEVENT[1208979136.171702] remove   /class/usb_endpoint/usbdev1.5_ep83 
 (usb_endpoint)
 UEVENT[1208979136.171707] add  /class/usb_endpoint/usbdev1.5_ep01 
 (usb_endpoint)
 UEVENT[1208979136.171712] add  /class/usb_endpoint/usbdev1.5_ep82 
 (usb_endpoint)
 UEVENT[1208979136.171717] add  /class/usb_endpoint/usbdev1.5_ep83 
 (usb_endpoint)
 UDEV  [1208979136.172276] remove   /class/usb_endpoint/usbdev1.5_ep01 
 (usb_endpoint)
 UDEV  [1208979136.172803] remove   /class/usb_endpoint/usbdev1.5_ep82 
 (usb_endpoint)
 UDEV  [1208979136.173239] remove   /class/usb_endpoint/usbdev1.5_ep83 
 (usb_endpoint)
 UDEV  [1208979136.174020] add  /class/usb_endpoint/usbdev1.5_ep01 
 (usb_endpoint)
 UDEV  [1208979136.174831] add  /class/usb_endpoint/usbdev1.5_ep82 
 (usb_endpoint)
 UDEV  [1208979136.175619] add  /class/usb_endpoint/usbdev1.5_ep83 
 (usb_endpoint)

I wonder how scanimage -L causes any add or remove event at all.
I cannot imagine that those add or remove events are the
same add or remove events which happen when the device
is plugged-in at the USB or plugged-off from the USB.

Do you know what those different usb_endpoints are?
Perhaps the different USB interfaces for the one USB device?

I wonder how one could specify a udev rule which matches
to the one add event for the one USB device instead of
whatever bulk of add events for whatever stuff which
is related to the one USB device.


   ACTION!=add, GOTO=end
   SYSFS{idVendor}==04b8, SYSFS{idProduct}==010b, RUN+=...
   LABEL=end
 
  Be careful with the labels you use. Always use a unique label name, or
  you're asking for troubles. (been there, done that, accidentally
  rendered a number of systems unbootable due to that ...)

Many thanks for this enlightening info!
Impressive: A thoroughly thought out fail-safe design!

Actually - just because of a queasy feeling - I used
ACTION!=add, GOTO=sane_backends_autoconfig_rules_end

Of course man udev does not mention that all labels
in all udev rules files must be unique.

I can only guess that what udev actually does is to
concatenate all udev rules files into one single set
of rules and then it is not surprising when arbitrary
nonsense happens depending on which individual udev rules
files exist on a particular system which depends on which
individual software packages are installed on this system.

Very nice to debug!
Very easy to help others!
Makes all users very happy of course - or so they say.

 
 I tried that before after I saw the z60_libsane.rules
 
 ACTION!=add, GOTO=post_lamp_off
 SYSFS{idVendor}==1606, SYSFS{idProduct}==0010, MODE=0664, 
 GROUP=scanner, NAME=umax%n, RUN+=/usr/local/bin/umax1220u start, 
 ENV{lamp_off}=yes
 LABEL=post_lamp_off
 
 But given the events, it is obvious not surprising that this is not working.
 
   Welcome in the hell of udev, HAL and whatever else sophisticated
   stuff which is required to make users happy or so they say...
 
  aol /
 
 I added now in my script a file system lock:
 
 if [ ! -e /tmp/umax1220u-plugged ]; then
 
   touch /tmp/umax1220u-plugged
 
 Is anybody aware of a more elegant solution for this problem?

You cannot have udev and elegant at the same time
and you cannot have HAL and elegant at the same time.

Just do whatever dirty hack fits at the moment for you
and be prepared that next version is sufficiently different
so that your stuff does no longer work.
Then just do whatever other dirty hack and so on ad nauseam
which makes you happy of course or so they say...


Kind Regards
Johannes Meixner
-- 
SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
AG Nuernberg, HRB 16746, GF: Markus Rex



[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Olaf Meeuwissen
Johannes Meixner jsmeix at suse.de writes:

 Hello,

Hi Johannes,

I've kept my quiet for a while on purpose.  You Cc:d the sane-devel
list and that means I have to watch out (even more) with what I say.
My activities on sane-devel are not always equally appreciated in all
quarters.  As always, all comments are my own and do neither reflect
my employer's nor my employer's customer's opinion/policy.  The latter
are the ones that fund the work on iscan so they do have a big say in
what does and does not happen.

Anyway, I have forwarded your mail and the thread that unsued up the
corporate food chain in hopes of improvement, again.  What will and
will not happen remains to be seen.  I have tried to explain your
gripes (most of which other people hanging out on sane-devel and I
personally share) the best I could.  Now let's hope other quarters
catch on and get to take note of *user* priorities.

 only by chance I detected on
 http://www.avasys.jp/english/linux_e/index.html
 that for certain models iscan-2.11.0 is used
 (at least when one selects the Perfection V500 Photo
 which requires iscan-plugin-gt-x770-2.1.0-0).
 For other models (e.g. Perfection 2480 Photo) there is
 still iscan-2.10.0 shown (with iscan-plugin-gt-f500-1.0.0-1).

Sorry for not putting out an announcement on sane-devel.  My bad.
Whatever iscan release announcements I make on sane-devel are really
just a courtesy (ditto with the diff's to epkowa.desc) and this time
it slipped.  Sorry!

 Unfortunately the iscan-2.11.0 NEWS file reads
 ---
 does not work with *any* of the plugins that have a version number
 less than 2.1.  Please use iscan-2.10.0 if you need such a plugin.
 ---

 The problem is not the actual incompatibility.
 The problem is that - as far as I see (*) - the other plugins
 are not available for iscan-2.11.0 (i.e. with a version
 number 2.1 or higher) - at least not for a 2480 Photo.

Not yet.  There are plans to at least provide updated plugins for the
more recent models.  Exactly which ones and when they will be released
is up in the air.



[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Olaf Meeuwissen
Julien BLACHE jb at jblache.org writes:

 Johannes Meixner jsmeix at suse.de wrote:

 Hi,

 Perhaps it leads to the solution that the Linux distributors
 agree to no longer distribute their proprietary stuff?

 That would be a good first step...

 That said, I have never distributed anything else beside the epkowa
 backend itself, so no changes on my side :)

 But now I have a real problem, that is there is a new iscan release,
 people know (or will know) about it and they're going to bug me to
 upgrade the backend. It's not possible to upgrade the backend without
 losing support for some scanners at least, and not upgrading means
 losing support for the other scanners, I guess.

Not saying this is an ideal solution, but you as the libsane-extras
package maintainer can upgrade.  Whether people will install the
upgraded or not is their choice.

Let's face it, the upgraded package is not going to go into stable
(etch).  It will make it into testing (lenny) and people running that
should know better than to upgrade without thinking.  If you add the
right conflicts to the package they should take note, one may assume.

I have added a long list of conflicts to our iscan RPM and (still
experimental) Debian packaging support so that people get notified
about the incompatibility.  I know it's a PITA to do the same to
libsane-extras, but without breaking backward compatibility (for a few
non-free plugins) there was just no way that I could add support for
independent X/Y resolutions that give access to resolutions over
3200dpi.  That was something people have been clamouring about several
times here wrt iscan.  You can't always and immediately have it both
ways.

 Can't imagine a better situation than this one...

I can, but just imagining it is not going to help anyone :-(
-- 
Olaf Meeuwissen   FLOSS Engineer -- AVASYS Corporation
FSF Associate Member #1962   sign up at http://member.fsf.org/



[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Olaf Meeuwissen
Julien BLACHE jb at jblache.org writes:

 Johannes Meixner jsmeix at suse.de wrote:

 But again it is only a
 proprietary model - shit happens - go to Epson Avasys
 issue.

 Unfortunately sooner or later it'll land in my mailbox :|

 I wonder how Epson Avasys supports this case.

 They don't is my guess. See how the download form gives you one
 version or the other is how they handle it.

For the time being, yes, that is how my employer supports this.  I
really hope we can get rid of this ugly situation quickly and provide
updated plugins that work with iscan-2.11.0 and later for all models.

Now, if I were a hardware manufacturer, I might be (very?) tempted to
drop support for some older models.  Especially those that are also
supported by alternative backends ...

Hope this helps,
-- 
Olaf Meeuwissen   FLOSS Engineer -- AVASYS Corporation
FSF Associate Member #1962   sign up at http://member.fsf.org/



[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Olaf Meeuwissen
Johannes Meixner jsmeix at suse.de writes:

 On Apr 23 17:04 m. allan noah wrote (shortened):
 On 4/23/08, Julien BLACHE jb at jblache.org wrote:
 
  Well, without the non-free bits it provides better support for some
   scanner, and supports devices no other backend supports :)
 
 which scanners are those? I wonder if the best course of action would
 be to update the epson or epson2 backends to support those scanners,
 then you could drop epkowa.

 Use something like

 egrep ':model|:comment' doc/descriptions-external/epkowa.desc \
  | grep -B1 ':comment.*non-free'

 and you get entries like
 [snip]

Johannes and I discussed the format of the comment entries after he
started using what I had started adding on a voluntary basis.  I was
happy to know that the information was useful.

 Unfortunately most models which require a non-free plugin
 are not supported by another (i.e. free) backend.

Very sad, but true.  Me not happy.

 Furthermore many of the proprietary models require firmware upload
 which is automatically done by the epkowa backend together with
 the matching non-free plugin.

To be precise the upload is done by the plugin, not by the backend.  I
wish I had the time for extract the upload bit into a separate utility
that can be started from udev ...

 Currently - as far as I found out (see below) - firmware files
 are only needed for the following scanners:
 [snip]

 To determine for which models the firmware files are:
 For each firmware file do strings $firmware-file | grep ^EPSON.
 At the moment this results the following models:
 esfw41.bin: GT-F500
 esfw32.bin: GT-9400
 esfw52.bin: GT-F520
 esfw43.bin: GT-F600
 esfw54.bin: GT-X750
 esfw66.bin: GT-S600
 esfw68.bin: GT-F700
 esfw7A.bin: GT-F670
 Then check epkowa.desc which other models require the same
 non-free plugin and assume that all those models require
 the respective firmware file too.

 By the way:
 I must know which models require firmware upload so that I can
 inform our users when they try out a free backend where the
 firmware upload must be configured manually.
 Again a nice example which awkward things I do to deal with
 Epson Avasys' proprietary stuff in particular because their
 official policy is to not help distributors to package their
 proprietary stuff well and easily.

Johannes, when did you ask?  I can add the firmware files to the
epkowa.desc file if you want but it would be nice if there were some
extra fields (or a mechanism for custom fields, something like the X-*
header with mail) where I could put them.  Adding everything to the
comment field gets a bit messy and kludgey.

As to the official policy bit, at least this developer here is not
aware of any such policy and wonders how you found out about it.
Griping about things you don't like is one thing, but (quite likely)
misrepresenting the state of affairs is another and it doesn't look
good on you.  Stick with the fact and let's see if something can be
worked out.

 Step by step Epson Avasys' official policy results what they
 actually ask for: do not actually realase it but keep it under
 Epson Avasys' full control - o.k. - they conviced me - they
 can get what they ask for...

About official policy I don't know, but I do know that you asked for
a couple of things in the past and got several of them.  The non-free
references in epkowa.desc is one of them, easy build support on
unsupported architectures is another.

Hope this helps,
-- 
Olaf Meeuwissen   FLOSS Engineer -- AVASYS Corporation
FSF Associate Member #1962   sign up at http://member.fsf.org/



[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Johannes Meixner

Hello Olaf,

first of all many thanks for your answers.
Of course I know that it is not and never was you who is
responsible for the mess with the proprietary parts in IScan.

I hope I made it sufficiently clear that the management
of Epson or Avaysy is responsible for the mess, in particular
because those managers seem to be either chicken-hearted or
arrogant because they just do not talk to the people who try
to provide out-of-the-box support for their proprietary crap
but finally this ordeal seems to come to an end soon.


On Apr 24 16:35 Olaf Meeuwissen wrote (shortened):
 Johannes Meixner jsmeix at suse.de writes:
 
  For example I would of course still distribute the free part
  of Iscan in our iscan-free package but drop the packages which
  contain proprietary stuff and add an explanatory message to
  the YaST scanner config to direct the user to the Epson Avasys
  web site if a proprietary model is used.
 
 You know what would be even better?  YaST being able
 to offer the user to download, install and configure
 that proprietary crap automatically.

Because of legal issues we cannot do anything automatically
with proprietary stuff.

For example when currently a proprietary model requires
our proprietary iscan package from our CD/DVD/repository,
I cannot install it via the YaST scanner configuration
because here the installation would happen somewhat
silently and automatically in the background.

All I can do is to show a message which tells the user
to install it manually (with the YaST installer module)
because only the manual installation makes sure that the
popup regarding the proprietary license is shown and that
possible conflicts (iscan conflicts with iscan-free)
are shown in full detail together with the matching
choices/buttons what to do regarding a proprietary
license and/or regarding conflicts.

Those are the messages that the YaST scanner config shows
for openSUSE 11.0 if the proprietary iscan is needed:
-
The package iscan should be installed
but it contains proprietary binary-only i386-only software.
Therefore it is only available for i386-compatible architectures.
Some scanners are also supported by another driver.
If you really want to install iscan, you must do it manually.
-

And an addendum if iscan is needed on AMD 64-bit systems:
---
Iscan is only available as 32-bit software.
On AMD 64-bit (x86_64) systems the scanner driver in
the iscan package works only if also the scanning user
frontend is 32-bit software.
You can use the special frontend /usr/bin/iscan for Epson
scanners which is included in the iscan package.
If you like to use a standard frontend like scanimage,
xscanimage, xsane, or kooka, you must explicitely install
the 32-bit package version (i.e. get the package from
the right media or repository).
---
see
https://bugzilla.novell.com/show_bug.cgi?id=337816

The 32-bit-only mess with the proprietary stuff is another
reason not to try to do anything automated here.


Compare for example the proprietary stuff in HPLIP
https://bugzilla.novell.com/show_bug.cgi?id=342704#c3

HP was in contact with me regarding how to provide support
for ZJStream printers in compliance to the free licenses.

In the end they do it the same way as IScan:
Via an optional external library (via dlopen).
The crucial point is that the HPLIP software works well in general
even without such a library. Only the ZJStream printers need it.

HP checked the third-party license stuff and all what is requird
is a EULA which must be accepted by the user.

The download functionality of hp-setup does the right thing
which is needed to support ZJStream printers.


We take only the perfectly free-software upstream HPLIP
package and distribute it.
We do not download and/or distribute any proprietray stuff
from HP.
We distribute the HP setup tool as is in the free-software
upstream package.
We rely on HP's setup tool as is to take care of everything
regarding their proprietray stuff (e.g. displaying the EULA,
downloading the right proprietray stuff from the right server,
install the proprietary stuff at the right place with the
right permissions, set up the printer accordingly,
whatever else...).


I think for future openSUSE versions (not for 11.0 which
provides iscan 2.10.0 packages as we did before) I will do
the same for IScan:
I distribute only the free parts of IScan.
I do not distribute and/or download and/or install
any proprietray stuff from Avasys (or elsewhere).

Because there is no iscan-setup tool available,
I can only show a message to the user to go to
the Avasys web site.

Perhaps a free iscan-setup tool in the IScan 

[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Alessandro Zummo
On Thu, 24 Apr 2008 16:50:45 +0900
Olaf Meeuwissen olaf.meeuwissen at avasys.jp wrote:

 Johannes, when did you ask?  I can add the firmware files to the
 epkowa.desc file if you want but it would be nice if there were some
 extra fields (or a mechanism for custom fields, something like the X-*
 header with mail) where I could put them.  Adding everything to the
 comment field gets a bit messy and kludgey.

 an extra field for firmware could be very helpful indeed. +1 :)
 
-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it




[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Alessandro Zummo
On Thu, 24 Apr 2008 16:05:32 +0900
Olaf Meeuwissen olaf.meeuwissen at avasys.jp wrote:

 Not yet.  There are plans to at least provide updated plugins for the
 more recent models.  Exactly which ones and when they will be released
 is up in the air.

 what's changed between the old and the new plugins that introduced
 incompatibilities? 
 

 BTW, as of 2008-04-01 our company changed its name, again.  It is now
 AVASYS Corporation, without the EPSON.

 :-D that's funny strategy :) 

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it




[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Olaf Meeuwissen
Alessandro Zummo azummo-lists at towertech.it writes:

 On Thu, 24 Apr 2008 16:05:32 +0900
 Olaf Meeuwissen olaf.meeuwissen at avasys.jp wrote:

 Not yet.  There are plans to at least provide updated plugins for the
 more recent models.  Exactly which ones and when they will be released
 is up in the air.

  what's changed between the old and the new plugins that introduced
  incompatibilities? 

Well, there's only one new plugin at the moment, but we've added
support for high resolutions (3200dpi) to iscan.  On the backend side
that means we are setting the horizontal and vertical resolutions
independently based on information from the 'ESC i' command.

The problem is that all those old plugin-requiring models don't accept
just any ole combination of the two.  In the new plugin, the one for
the Perfection V500 PHOTO (GT-X770), I've doctored it so that feeding
it an 'ESC i' returns only allowed combinations (depending on whether
you want to scan from the flatbed or TPU or ADF) and all is well.  The
old plugins return info that more often than not results in an invalid
argument, even for the lower resolutions.

The result is that trying to use iscan-2.11.0 with those old plugins
will make it just about impossible to scan anything.  All you get are
invalid argument errors.

 BTW, as of 2008-04-01 our company changed its name, again.  It is now
 AVASYS Corporation, without the EPSON.

  :-D that's funny strategy :) 

Hope this helps,
-- 
Olaf Meeuwissen   FLOSS Engineer -- AVASYS Corporation
FSF Associate Member #1962   sign up at http://member.fsf.org/



[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Johannes Meixner

Hello,

On Apr 24 16:50 Olaf Meeuwissen wrote (shortened):
 Johannes and I discussed the format of the comment entries after he
 started using what I had started adding on a voluntary basis.  I was
 happy to know that the information was useful.

Many thanks again!
Yes, such information is more than just useful, it is mandatory
so that I can provide good out-of-the-box support.


 To be precise the upload is done by the plugin, not by the backend.
 I wish I had the time for extract the upload bit into a separate
 utility that can be started from udev ...

I would appreciate it so have a free firmware upload utility
and the firmware files provided for download separated from
the proprietary plugin.

By the way:
Compare how HP does the firmware upload for their proprietary
crap models and see how happy I am about such bad hardware:
https://bugs.launchpad.net/hplip/+bug/187049
---
The /etc/udev/rules.d/86-hpmu-hp_laserjet_1020.rules file,
which is installed by hp-setup, controls the firmware download.
The firmware should be downloaded at every lj1020 plug-and-play
add event.
.
.
.
... the firmware upload happens while the printer
is in its internal startup procedure.
It seems this stupid peice of cheapest hardware becomes
totally confused if it gets data while it is in startup mode.
When this has happened, no further usage is possible...
---
The usual warm feeling in the udev plug-and-play hell...


  I must know which models require firmware upload so that I can
  inform our users when they try out a free backend where the
  firmware upload must be configured manually.
  Again a nice example which awkward things I do to deal with
  Epson Avasys' proprietary stuff in particular because their
  official policy is to not help distributors to package their
  proprietary stuff well and easily.
 
 Johannes, when did you ask?

See the mail which I appended at the bottom.


 I can add the firmware files to the epkowa.desc file
 if you want

Yes, please!
It is very much better to have explicite information
as a makeshift in a comment than no such info at all.


 but it would be nice if there were some extra fields

Of course.
I asked for firmware fields in *.desc some time ago here
on this list, see
http://lists.alioth.debian.org/pipermail/sane-devel/2006-January/015949.html


 As to the official policy bit, at least this developer here is not
 aware of any such policy and wonders how you found out about it.

What else could I do when nobody who is responsible at Avasys
talks to me than to deduce from what the actual results are
in the past years?

Whatever you may forward to those who are actually responsible
to make decissions, the results of their decissions show clearly
what their policy is and I just call this the official policy
even when such a policy will be of course never officially
announced by them.

If you get the feeling that the incompatible iscan-2.11.0
is the last drop which wears away the stone of my patience
and that I am at the end of my tether to care about the
proprietary mess in IScan, you are 100% right.


Kind Regards
Johannes Meixner
-- 
SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
AG Nuernberg, HRB 16746, GF: Markus Rex

##


[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Alessandro Zummo
On Thu, 24 Apr 2008 18:44:42 +0900
Olaf Meeuwissen olaf.meeuwissen at avasys.jp wrote:

 
 Well, there's only one new plugin at the moment, but we've added
 support for high resolutions (3200dpi) to iscan.  On the backend side
 that means we are setting the horizontal and vertical resolutions
 independently based on information from the 'ESC i' command.

 ack. One day I'll have to reverse engineer those new scanners and put
 and end to this nightmare. :(

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it




[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread m. allan noah
On Thu, Apr 24, 2008 at 2:20 AM, Johannes Meixner jsmeix at suse.de wrote:

  Hello,

  On Apr 23 17:04 m. allan noah wrote (shortened):

  On 4/23/08, Julien BLACHE jb at jblache.org wrote:
   

   Well, without the non-free bits it provides better support for some
 scanner, and supports devices no other backend supports :)
  
   which scanners are those? I wonder if the best course of action would
   be to update the epson or epson2 backends to support those scanners,
   then you could drop epkowa.

  Use something like

  egrep ':model|:comment' doc/descriptions-external/epkowa.desc \
   | grep -B1 ':comment.*non-free'


no- go back and re-read my question. i want to know what models are
supported by free software in epkowa backend, but not in epson/epson2
backend.

allan
--
The truth is an offense, but not a sin



[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Alessandro Zummo
On Thu, 24 Apr 2008 09:33:48 -0400
m. allan noah kitno455 at gmail.com wrote:

 
 no- go back and re-read my question. i want to know what models are
 supported by free software in epkowa backend, but not in epson/epson2
 backend.

 given that epkowa started from epson, I'd hope there is none.

-- 

 Best regards,

 Alessandro Zummo,
  Tower Technologies - Torino, Italy

  http://www.towertech.it




[sane-devel] (no subject)

2008-04-24 Thread Guillaume Gastebois
Hello,

Is there a possibility to determine a maximum of parameter like :

typedef struct
{
  int optical_res; (OK, for me 2400)
  int black_pixels;(don't know how to determine)
  int dummy_pixel; (content of 0x34 ?)
  int CCD_start_xoffset;   (test of page upper border ?)
  int sensor_pixels;   (just 216/2.54*2400 ?)
  int fau_gain_white_ref;  (don't know how to determine)
  int gain_white_ref;  (don't know how to determine)
  u_int8_t regs_0x08_0x0b[4];  (OK windows snoop)
  u_int8_t regs_0x10_0x1d[14]; (OK windows snoop)
  u_int8_t regs_0x52_0x5e[13]; (OK windows snoop)
  float red_gamma; (don't know how to determine)
  float green_gamma;   (don't know how to determine)
  float blue_gamma;(don't know how to determine)
  u_int16_t *red_gamma_table;  (OK NULL)
  u_int16_t *green_gamma_table;(OK NULL)
  u_int16_t *blue_gamma_table; (OK NULL)
} Genesys_Sensor;

or :

typedef struct
{
  SANE_Int base_ydpi;(4800 ? : Lide90 is 2400x4800)
  SANE_Int optical_ydpi; (4800 ? : Lide90 is 2400x4800)
  SANE_Int max_step_type;(don't know how to determine)
  SANE_Int power_mode_count; (don't know how to determine)
  Genesys_Motor_Slope slopes[2][3];  (don't know how to determine)
} Genesys_Motor;


Guillaume Gastebois schrieb:
 Hello,

 I remember that LiDE 90 is a 2400DPI scanner. And I did nothing in code to
port
 that. I backend ready for 2400dpi (I think so regarding portion of code) ?

I am not sure, as there could not happen any testing. But in theory, it
should work. In the future, there should be some afford made to make
other resolutions than 2400, 1200 and 600 work, but these 3 are trivial
with this chip.

 I write 2400 dpi in genesys_sensor for lide 90. But how to know pixel number
for
 CCD sensor ?

I guess the manufacturer is not lying about the density of the ccd, so
that should be enough. The rest of the settings is in real units. The
backend calculates the exact number of pixel from the density and the
width of the scanning area.

 After writing 2400 dpi in sensor, I get quarter sized images !!! Why ?

 With 600 dpi in sensor I get full sized images with (300dpi scanning) or
without
 half_ccd (1200dpi scanning) (with my code for gpio 14).

 Regards
 Guillaume

I'd first try to get the correct gpio setting for a full resolution
scan(i.E. at 2400dpi). If you cannot get a full-width-scan, look for the
DPISET register, and try half/twice the dpi there. Also, make sure the
DPIHW is set for the 2400dpi mode.
When that works, figure out how to setup gpios for half_ccd mode. From
the view of the current code base, you are done here. You can try to
find a quarter_ccd mode(which would show up as half-width in the
half_ccd modes), and leave a comment in the code, or even implement the
quarter_ccd mode for real.


Yes, DPIHW is 0x80 (2400dpi)
for 300dpi scanning dpiset is 0x258 (600). Is that good ?
I find that GPIO14 is quarter CCD but by testing all other unknown GPIOs I can't
find one for half CCD  Strange no ?

Regards,
   Pierre

I see too that If I is image and B is black, I get for 1200dpi, 600dpi, 300dpi
and 150dpi scanning :

1200 :
BIII
BIII
BIII
BIII
BIII
BIII
BIII
BIII
BIII
BIII
BIII

600 :
BBIIIBBB
BBIIIBBB
BBIIIBBB
BBIIIBBB
BBIIIBBB
BBIIIBBB
BBIIIBBB
BBIIIBBB
BBIIIBBB
BBIIIBBB
BBIIIBBB

300 :
BBBIIIBB
BBBIIIBB
BBBIIIBB
BBBIIIBB
BBBIIIBB
BBBIIIBB
BBBIIIBB
BBBIIIBB
BBBIIIBB
BBBIIIBB
BBBIIIBB

150 :
IIIB
IIIB
IIIB
IIIB
IIIB
IIIB
IIIB
IIIB
IIIB
IIIB
IIIB

Why ?

Regards
Guillaume



[sane-devel] Doubt about sane_get_devices

2008-04-24 Thread tobias alarcon
Hi all

Im just wanna know if this function retrives the list of devices at
every moment.
Let me explain, i launch my program with the scanner disconected, then
i conect it and
call this function. Doc say This function can be called repeatedly to
detect when
new devices become available but this is not my case, i get a null pointer.

thanks in advance
Tobias.



[sane-devel] Doubt about sane_get_devices

2008-04-24 Thread m. allan noah
this depends entirely on the backend. i have tried to make sure that
the backends i maintain will re-find scanners at every call, but other
backends may not.

allan

On 4/24/08, tobias alarcon extobias at gmail.com wrote:
 Hi all

  Im just wanna know if this function retrives the list of devices at
  every moment.
  Let me explain, i launch my program with the scanner disconected, then
  i conect it and
  call this function. Doc say This function can be called repeatedly to
  detect when
  new devices become available but this is not my case, i get a null pointer.

  thanks in advance
  Tobias.


  --
  sane-devel mailing list: sane-devel at lists.alioth.debian.org
  http://lists.alioth.debian.org/mailman/listinfo/sane-devel
  Unsubscribe: Send mail with subject unsubscribe your_password
  to sane-devel-request at lists.alioth.debian.org



-- 
The truth is an offense, but not a sin



[sane-devel] Doubt about sane_get_devices

2008-04-24 Thread tobias alarcon
So in the fujitsu backend should work?

On Thu, Apr 24, 2008 at 3:43 PM, m. allan noah kitno455 at gmail.com wrote:
 this depends entirely on the backend. i have tried to make sure that
  the backends i maintain will re-find scanners at every call, but other
  backends may not.

  allan



  On 4/24/08, tobias alarcon extobias at gmail.com wrote:
   Hi all
  
Im just wanna know if this function retrives the list of devices at
every moment.
Let me explain, i launch my program with the scanner disconected, then
i conect it and
call this function. Doc say This function can be called repeatedly to
detect when
new devices become available but this is not my case, i get a null 
 pointer.
  
thanks in advance
Tobias.
  
  
--
sane-devel mailing list: sane-devel at lists.alioth.debian.org
http://lists.alioth.debian.org/mailman/listinfo/sane-devel
Unsubscribe: Send mail with subject unsubscribe your_password
to sane-devel-request at lists.alioth.debian.org
  


  --
  The truth is an offense, but not a sin




[sane-devel] Calling a script after USB scanner is plugged

2008-04-24 Thread Rainer Dorsch
Johannes,

Am Donnerstag, 24. April 2008 schrieb Johannes Meixner:
 Hello,

 On Apr 23 22:53 Rainer Dorsch wrote:
  Am Mittwoch, 23. April 2008 schrieb Julien BLACHE:
   Johannes Meixner jsmeix at suse.de wrote:
  
   Hi,
  
umax1220u scripts are started in a sequence (i.e. not in parallel,
when one is completed the next one starts).
  
   When troubleshooting udev rules, use udevmonitor to actually see
   what's happening in terms of udev events and their properties.
 
  That was a very good hint, thanks. A single scanimage -L causes these
  events:
 
  UEVENT[1208979136.171525] remove   /class/usb_endpoint/usbdev1.5_ep01
  (usb_endpoint)
  UEVENT[1208979136.171696] remove   /class/usb_endpoint/usbdev1.5_ep82
  (usb_endpoint)
  UEVENT[1208979136.171702] remove   /class/usb_endpoint/usbdev1.5_ep83
  (usb_endpoint)
  UEVENT[1208979136.171707] add  /class/usb_endpoint/usbdev1.5_ep01
  (usb_endpoint)
  UEVENT[1208979136.171712] add  /class/usb_endpoint/usbdev1.5_ep82
  (usb_endpoint)
  UEVENT[1208979136.171717] add  /class/usb_endpoint/usbdev1.5_ep83
  (usb_endpoint)
  UDEV  [1208979136.172276] remove   /class/usb_endpoint/usbdev1.5_ep01
  (usb_endpoint)
  UDEV  [1208979136.172803] remove   /class/usb_endpoint/usbdev1.5_ep82
  (usb_endpoint)
  UDEV  [1208979136.173239] remove   /class/usb_endpoint/usbdev1.5_ep83
  (usb_endpoint)
  UDEV  [1208979136.174020] add  /class/usb_endpoint/usbdev1.5_ep01
  (usb_endpoint)
  UDEV  [1208979136.174831] add  /class/usb_endpoint/usbdev1.5_ep82
  (usb_endpoint)
  UDEV  [1208979136.175619] add  /class/usb_endpoint/usbdev1.5_ep83
  (usb_endpoint)

 I wonder how scanimage -L causes any add or remove event at all.
 I cannot imagine that those add or remove events are the
 same add or remove events which happen when the device
 is plugged-in at the USB or plugged-off from the USB.

Judging from the udevmonitor output it seems they are at least very similar. 
Apparently the /class/usb_endpoint/usbdev1.6_ep00 is not included in the 
events of the scanimage call but it is included when I replug the device.

This is the output of udevmonitor when replugging the device (commented out 
the udev rule which calls the script with scanimage):

UEVENT[1209064961.290600] remove   /class/usb_endpoint/usbdev1.6_ep01 
(usb_endpoint)
UEVENT[1209064961.290627] remove   /class/usb_endpoint/usbdev1.6_ep82 
(usb_endpoint)
UEVENT[1209064961.290633] remove   /class/usb_endpoint/usbdev1.6_ep83 
(usb_endpoint)
UEVENT[1209064961.290638] 
remove   /devices/pci:00/:00:1a.0/usb1/1-1/1-1:1.0 (usb)
UEVENT[1209064961.290643] remove   /class/usb_device/usbdev1.6 (usb_device)
UEVENT[1209064961.290648] remove   /class/usb_endpoint/usbdev1.6_ep00 
(usb_endpoint)
UEVENT[1209064961.290653] remove   /devices/pci:00/:00:1a.0/usb1/1-1 
(usb)
UDEV  [1209064961.291029] remove   /class/usb_endpoint/usbdev1.6_ep01 
(usb_endpoint)
UDEV  [1209064961.291540] remove   /class/usb_endpoint/usbdev1.6_ep82 
(usb_endpoint)
UDEV  [1209064961.291973] remove   /class/usb_endpoint/usbdev1.6_ep83 
(usb_endpoint)
UDEV  [1209064961.292349] 
remove   /devices/pci:00/:00:1a.0/usb1/1-1/1-1:1.0 (usb)
UDEV  [1209064961.292882] remove   /class/usb_device/usbdev1.6 (usb_device)
UDEV  [1209064961.293363] remove   /class/usb_endpoint/usbdev1.6_ep00 
(usb_endpoint)
UEVENT[1209064965.393967] add  /devices/pci:00/:00:1a.0/usb1/1-1 
(usb)
UEVENT[1209064965.394013] add  /class/usb_endpoint/usbdev1.7_ep00 
(usb_endpoint)
UEVENT[1209064965.398030] 
add  /devices/pci:00/:00:1a.0/usb1/1-1/1-1:1.0 (usb)
UEVENT[1209064965.398042] add  /class/usb_endpoint/usbdev1.7_ep01 
(usb_endpoint)
UEVENT[1209064965.398048] add  /class/usb_endpoint/usbdev1.7_ep82 
(usb_endpoint)
UEVENT[1209064965.398053] add  /class/usb_endpoint/usbdev1.7_ep83 
(usb_endpoint)
UEVENT[1209064965.398058] add  /class/usb_device/usbdev1.7 (usb_device)
UDEV  [1209064965.399964] add  /devices/pci:00/:00:1a.0/usb1/1-1 
(usb)
UDEV  [1209064965.401533] add  /class/usb_endpoint/usbdev1.7_ep00 
(usb_endpoint)
UDEV  [1209064965.401976] 
add  /devices/pci:00/:00:1a.0/usb1/1-1/1-1:1.0 (usb)
UDEV  [1209064965.437713] add  /class/usb_endpoint/usbdev1.7_ep01 
(usb_endpoint)
UDEV  [1209064965.437730] add  /class/usb_endpoint/usbdev1.7_ep82 
(usb_endpoint)
UDEV  [1209064965.437736] add  /class/usb_endpoint/usbdev1.7_ep83 
(usb_endpoint)
UDEV  [1209064965.448441] add  /class/usb_device/usbdev1.7 (usb_device)

These are the events from a scanimage -L:

UEVENT[1209064997.544063] remove   /class/usb_endpoint/usbdev1.7_ep01 
(usb_endpoint)
UEVENT[1209064997.544262] remove   /class/usb_endpoint/usbdev1.7_ep82 
(usb_endpoint)
UEVENT[1209064997.544301] remove   /class/usb_endpoint/usbdev1.7_ep83 
(usb_endpoint)
UEVENT[1209064997.544337] add  /class/usb_endpoint/usbdev1.7_ep01 
(usb_endpoint)
UEVENT[1209064997.544372] add  /class/usb_endpoint/usbdev1.7_ep82 

[sane-devel] incompatible iscan-2.11.0

2008-04-24 Thread Julien BLACHE
Johannes Meixner jsmeix at suse.de wrote:

 esfw41.bin:
 Perfection 2480 PHOTO / GT-F500, Perfection 2580 PHOTO / GT-F550

Supported by the snapscan backend, same for the 3490 and 3590 IIRC.

JB.

-- 
Julien BLACHE   http://www.jblache.org 
jb at jblache.org  GPG KeyID 0xF5D65169



[sane-devel] Calling a script after USB scanner is plugged

2008-04-24 Thread Julien BLACHE
Johannes Meixner jsmeix at suse.de wrote:

Hi,

 I wonder how scanimage -L causes any add or remove event at all.
 I cannot imagine that those add or remove events are the
 same add or remove events which happen when the device
 is plugged-in at the USB or plugged-off from the USB.

Not sure about this, but it's possible the endpoints are removed when
they're in use and readded once they're no longer used.

 Do you know what those different usb_endpoints are?

They're USB endpoints. An element of the USB interface/protocol.

 Perhaps the different USB interfaces for the one USB device?

They're the USB endpoints offered by the device :)

 I wonder how one could specify a udev rule which matches
 to the one add event for the one USB device instead of
 whatever bulk of add events for whatever stuff which
 is related to the one USB device.

See the top of the libsane udev rules ? :)

JB.

-- 
Julien BLACHE   http://www.jblache.org 
jb at jblache.org  GPG KeyID 0xF5D65169



[sane-devel] Question about Genesys_Frontend

2008-04-24 Thread Guillaume Gastebois
Hello,

In genesys backend, we can find :

typedef struct
{
   u_int8_t reg[4];
   u_int8_t sign[3];
   u_int8_t offset[3];
   u_int8_t gain[3];
   u_int8_t reg2[3];
} Genesys_Frontend;


but in WM8199 regs don't have the same name.
For me registers addresses are :

reg[0]=0x01,reg[1]=0x02,reg[2]=0x03,reg[3]=0x06,
sign[0]=?,sign[1]=?,sign[2]=?,
offset[0]=0x20,offset[1]=0x21,offset[2]=0x22,
gain[0]=0x28,gain[1]=0x29,gain[2]=0x2a,
reg2[0]=0x08,reg2[1]=0x09,reg2[2]=?,

I anybody able to replace ? and/or correct mistakes in text before ?

Thanks

Regards
Guillaume



[sane-devel] Calling a script after USB scanner is plugged

2008-04-24 Thread Julien BLACHE
Johannes Meixner jsmeix at suse.de wrote:

Hi,

  Be careful with the labels you use. Always use a unique label name, or
  you're asking for troubles. (been there, done that, accidentally
  rendered a number of systems unbootable due to that ...)

 Many thanks for this enlightening info!
 Impressive: A thoroughly thought out fail-safe design!

udev is an incredible piece of crap, but the good news is that this
piece of crap is mostly stable those days. Which is a big step forward
already.

(and I'll refrain from saying anything at all about the genius who
invented udev. I'll just mention that he's also the author of stable
API is a nonsense.)

 I can only guess that what udev actually does is to
 concatenate all udev rules files into one single set
 of rules and then it is not surprising when arbitrary
 nonsense happens depending on which individual udev rules
 files exist on a particular system which depends on which
 individual software packages are installed on this system.

You got it.

 Very nice to debug!

deWHAT?

 I tried that before after I saw the z60_libsane.rules
 
 ACTION!=add, GOTO=post_lamp_off
 SYSFS{idVendor}==1606, SYSFS{idProduct}==0010, MODE=0664, 
 GROUP=scanner, NAME=umax%n, RUN+=/usr/local/bin/umax1220u start, 
 ENV{lamp_off}=yes
 LABEL=post_lamp_off
 
 But given the events, it is obvious not surprising that this is not working.

 Is anybody aware of a more elegant solution for this problem?

You need to copy a bit more than that from. See the top of the file,
there's more to it than that, also the way to identify a USB device
event changed starting with 2.6.22 and the rules are
backward-compatible in this respect too.

 You cannot have udev and elegant at the same time

Actually, you can, but you need a bit of udev/uevent knowledge and
some time on your hands.

 and you cannot have HAL and elegant at the same time.

It's all HALegant, pff.


Welcome to udev-land, Johannes!

JB.

-- 
Julien BLACHE   http://www.jblache.org 
jb at jblache.org  GPG KeyID 0xF5D65169



[sane-devel] Doubt about sane_get_devices

2008-04-24 Thread m. allan noah
it should, but i take it from your question that it does not? :)

allan

On 4/24/08, tobias alarcon extobias at gmail.com wrote:
 So in the fujitsu backend should work?

  On Thu, Apr 24, 2008 at 3:43 PM, m. allan noah kitno455 at gmail.com wrote:

  this depends entirely on the backend. i have tried to make sure that
the backends i maintain will re-find scanners at every call, but other
backends may not.
  
allan
  
  
  
On 4/24/08, tobias alarcon extobias at gmail.com wrote:
 Hi all

  Im just wanna know if this function retrives the list of devices at
  every moment.
  Let me explain, i launch my program with the scanner disconected, then
  i conect it and
  call this function. Doc say This function can be called repeatedly to
  detect when
  new devices become available but this is not my case, i get a null 
 pointer.

  thanks in advance
  Tobias.


  --
  sane-devel mailing list: sane-devel at lists.alioth.debian.org
  http://lists.alioth.debian.org/mailman/listinfo/sane-devel
  Unsubscribe: Send mail with subject unsubscribe your_password
  to sane-devel-request at lists.alioth.debian.org

  
  
--
The truth is an offense, but not a sin
  



-- 
The truth is an offense, but not a sin



[sane-devel] Doubt about sane_get_devices

2008-04-24 Thread m. allan noah
ahh, but you dont just query the list again, you call sane_exit and
sane_init first. just call sane_get_devices, and see if that helps.

allan

On 4/24/08, tobias alarcon extobias at gmail.com wrote:
 Nop, doesnt work. Maybe im doing something wrong.
  I got this logs.

  Log 1

  ##Start the program with scanner disconnected
  [sanei_debug] Setting debug level of fujitsu to 30.
  [fujitsu] sane_init: start
  [fujitsu] sane_init: fujitsu backend 1.1.59, from sane-backends 1.1.0-cvs
  [fujitsu] sane_init: finish
  [fujitsu] sane_get_devices: start
  [fujitsu] find_scanners: start
  [fujitsu] find_scanners: reading config file fujitsu.conf
  [fujitsu] find_scanners: setting buffer-size to 65536
  [fujitsu] find_scanners: looking for 'scsi FUJITSU'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1041'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1042'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1095'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1096'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1097'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ad'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ae'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10af'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e0'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e1'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e2'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e7'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10f2'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10fe'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1135'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x114d'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1155'
  [fujitsu] find_scanners: found 0 scanner(s)
  [fujitsu] find_scanners: finish
  [fujitsu] sane_get_devices: finish
  ##Connect scanner and wait a seconds, query list
  [fujitsu] sane_exit: start
  [fujitsu] sane_exit: finish
  [sanei_debug] Setting debug level of fujitsu to 30.
  [fujitsu] sane_init: start
  [fujitsu] sane_init: fujitsu backend 1.1.59, from sane-backends 1.1.0-cvs
  [fujitsu] sane_init: finish
  [fujitsu] sane_get_devices: start
  [fujitsu] find_scanners: start
  [fujitsu] find_scanners: reading config file fujitsu.conf
  [fujitsu] find_scanners: setting buffer-size to 65536
  [fujitsu] find_scanners: looking for 'scsi FUJITSU'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1041'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1042'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1095'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1096'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1097'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ad'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ae'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10af'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e0'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e1'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e2'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e7'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10f2'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10fe'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1135'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x114d'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1155'
  [fujitsu] find_scanners: found 0 scanner(s)
  [fujitsu] find_scanners: finish
  [fujitsu] sane_get_devices: finish
  [fujitsu] sane_exit: start
  [fujitsu] sane_exit: finish

  Log 2

  [doors at localhost ~]$ export SANE_DEBUG_FUJITSU=30
  [doors at localhost ~]$ doors
  [sanei_debug] Setting debug level of fujitsu to 30.
  [fujitsu] sane_init: start
  [fujitsu] sane_init: fujitsu backend 1.1.59, from sane-backends 1.1.0-cvs
  [fujitsu] sane_init: finish
  [fujitsu] sane_get_devices: start
  [fujitsu] find_scanners: start
  [fujitsu] find_scanners: reading config file fujitsu.conf
  [fujitsu] find_scanners: setting buffer-size to 65536
  [fujitsu] find_scanners: looking for 'scsi FUJITSU'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1041'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1042'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1095'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1096'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x1097'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ad'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10ae'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10af'
  [fujitsu] find_scanners: looking for 'usb 0x04c5 0x10e0'
  [fujitsu] attach_one: start
  [fujitsu] attach_one: looking for 'libusb:003:003'
  [fujitsu] connect_fd: start
  [fujitsu] connect_fd: opening USB device
  [fujitsu] wait_scanner: start
  [fujitsu] do_usb_cmd: start
  [fujitsu] cmd: writing 31 bytes, timeout 500
  [fujitsu] cmd: 
  [fujitsu] 000: 43 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00