<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Wilhelm,<br>
      <br>
      thanks for your patch, works like a charm - I just had to made a
      small modification since<br>
      the backend name inside the wrapper actually is "Genesys USB" (see
      below).<br>
      A minor hint for those who tinker around like me: Do no forget to
      turn debugging off in <br>
      scanbd.conf when finished, otherwise syslog will overflow :-)<br>
      <br>
      Regards,<br>
      <br>
        Florian<br>
      <br>
      =============== cut here ================<br>
      <font face="Courier New, Courier, monospace">---
        /usr/local/src/tmp/1.5.0/src/scanbd/scanbuttond_wrapper.c   
        2017-04-05 05:46:59.000000000 +0000<br>
        +++ scanbuttond_wrapper.c    2017-04-16 13:41:07.140209953 +0000<br>
        @@ -1062,11 +1062,35 @@<br>
             assert(backend_name);<br>
             slog(SLOG_INFO, "scanbtnd_button_name, backend: %s",
        backend_name);<br>
         <br>
        -    if (strcmp("snapscan", backend_name)) {<br>
        -        assert(button <= 5);<br>
        +    if (strncmp("Genesys", backend_name,7) == 0) {<br>
                 switch(button) {<br>
                 case 0:<br>
        -            return NULL;<br>
        +            return "zero";<br>
        +            break;<br>
        +        case 1:<br>
        +            return "copy"; <br>
        +            break;<br>
        +        case 2:<br>
        +            return "scan"; <br>
        +            break;<br>
        +        case 3:<br>
        +            return "pdf"; <br>
        +            break;<br>
        +        case 4:<br>
        +            return "email"; <br>
        +            break;<br>
        +        case 5:<br>
        +            return "stop";<br>
        +            break;<br>
        +        default:<br>
        +            return "default";<br>
        +            break;<br>
        +        }<br>
        +    }<br>
        +    else {<br>
        +        switch(button) {<br>
        +        case 0:<br>
        +            return "zero";<br>
                     break;<br>
                 case 1:<br>
                     return "scan"; // "web";<br>
        @@ -1084,9 +1108,10 @@<br>
                     return "stop";<br>
                     break;<br>
                 default:<br>
        -            return NULL;<br>
        +            return "default";<br>
                     break;<br>
                 }<br>
        +        <br>
             }<br>
             return NULL;<br>
         }</font><br>
      <br>
      <br>
      Am 16.04.2017 um 11:59 schrieb Wilhelm:<br>
    </div>
    <blockquote
      cite="mid:0c629f96-be1c-0d79-2538-30e9dd4794cd@googlemail.com"
      type="cite">
      <pre wrap="">Am 15.04.2017 um 20:38 schrieb Florian Gagel:
</pre>
      <blockquote type="cite">
        <pre wrap="">Hi Wilhelm,

thanks, your modification made all four buttons work !
</pre>
      </blockquote>
      <pre wrap="">
Great!

</pre>
      <blockquote type="cite">
        <pre wrap="">This seems somewhat surprising to me at first glance, should  the
backend not be strcmp'ed using "==0", providing
an own section for each backend :-) ? Anyway, it works, even if the
buttons are somewhat scrambled:
</pre>
      </blockquote>
      <pre wrap="">
Please backout the last patch I sent and now apply the attached one.
This should mark your buttons with the right labels.

If thats ok for you, I'll check this into trunk.

Please report if teh patch is ok, or make your own modifications and
send the patch back to me to be inserted into trunk.

Thanks for using scanbd.

-- Wilhelm

</pre>
      <blockquote type="cite">
        <pre wrap=""> (Button press at scanner)  -> (Action)
--------------------
Email  -> PDF
PDF     -> Email
Scan   -> Copy
Copy   -> Scan.

I also used string-triggers only. The buttons may have to be pressed for
a short period exceeding the polling interval.
Some minor possible pitfalls using the installations defaults of
scanbd-1.5.0 under Ubuntu 16.04:
- I removed the default package and configured the newer scanbd 1.5.0 as
described in the previous mail. I also used xinetd instead of the ubuntu
default
   bsd-inetd for network scanner access although this should be of no
relevance.
- Wilhelms patch has to be applied to scanbuttond_wrapper.c (removed
assertion, return strings on any value of "button").
- In scanbd.conf: Group should be "saned". Make sure all paths refer to
/usr/local/etc/scanbd, scriptdir = /usr/local/etc/scanbd/scripts, ...
- The new path also enters into /lib/systemd/system/scanbd.service,
after changing that do "systemctl daemon-reload" and restart scanbd.

Now I am happy because of the four programmable buttons for my Odroid-U2
SoC which has no monitor attached to it :-)

Thanks again Wilhelm and Happy Easter !

  Florian

Am 15.04.2017 um 17:32 schrieb Wilhelm:
</pre>
        <blockquote type="cite">
          <pre wrap="">Am 15.04.2017 um 16:13 schrieb Florian Gagel:
</pre>
          <blockquote type="cite">
            <pre wrap="">Hi Wilhelm,

thanks for your reply -  I made some progress in this issue however
still did not fully succeed.

- First step as you told me: make clean, configure --enable-scanbuttond,
make, make install, copy manually the
old backends to /usr/local/lib/scanbd/scanbuttond as described in the
README (this all with the 1.5.0 version of scanbd).
- Starting scanbd -f -d7, I first got a "scanbd: Can't get the scbtn
device list" error.
- I edited /usr/local/lib/scanbd/scanbuttond/backends/meta.conf, making
it contain the single line "genesys" which was missing before.
</pre>
          </blockquote>
          <pre wrap="">Yes, per default this was not included - I added it to trunk.

</pre>
          <blockquote type="cite">
            <pre wrap="">- Then the LiDE-60 was recognized by the old backend, together with its
four buttons !
- However, scanbd finally stumbled on an assertion:/
</pre>
          </blockquote>
          <pre wrap="">Looks like you were the first one with an appropriate scanner to test
this ;-)

You can safely remove the mentioned assertion if you return non-null
string-literals in all switch cases including the default case:

--- scanbuttond_wrapper.c       (Revision 236)

+++ scanbuttond_wrapper.c       (Arbeitskopie)

@@ -1063,10 +1063,9 @@

      slog(SLOG_INFO, "scanbtnd_button_name, backend: %s", backend_name);



      if (strcmp("snapscan", backend_name)) {
-        assert(button <= 5);
          switch(button) {
          case 0:
-            return NULL;
+            return "zero";
              break;
          case 1:
              return "scan"; // "web";
@@ -1084,7 +1083,7 @@
              return "stop";
              break;
          default:
-            return NULL;
+            return "default";
              break;
          }
      }


If you don't mind please test this modification. I you succeed with it
I'll put it into trunk.

</pre>
          <blockquote type="cite">
            <pre wrap="">root@gandroid:/usr/local/etc/scanbd# scanbd -f -d7
scanbd: reading config file /usr/local/etc/scanbd/scanbd.conf
scanbd: debug on: level: 7
scanbd: dropping privs to uid saned
scanbd: dropping privs to gid scanner
scanbd: group scanner has member:
scanbd: saned
scanbd: drop privileges to gid: 121
scanbd: Running as effective gid 121
scanbd: drop privileges to uid: 120
scanbd: Running as effective uid 120
scanbd: dbus_init
scanbd: dbus match type='signal',interface='org.freedesktop.Hal.Manager'
scanbd: Loading /usr/local/lib/scanbd/scanbuttond/backends/meta.so
scanbd: Loading /usr/local/lib/scanbd/scanbuttond/backends/genesys.so
scanbd: Scanning for local-only devices
scanbd: found device: CanoScan LiDE 60 Canon genesys:libusb:001:016
scanbd: start_scbtn_threads
scanbd: start the threads (1)
scanbd: Starting poll thread for CanoScan LiDE 60
scanbd: Thread started for device CanoScan LiDE 60
scanbd: start dbus thread
scanbd: scbtn_poll
scanbd: udev init
scanbd: get udev monitor
scanbd: udev fd is non-blocking, now setting to blocking mode
scanbd: start udev thread
scanbd: udev thread started
scanbd: timeout: 500 ms
scanbd: Iteration on dbus call
scanbd: found 15 options for device CanoScan LiDE 60
scanbd: sane_find_matching_options
scanbd: found 3 actions in section (null)
scanbd: checking action scan with filter: ^scan.*
scanbd: scanbtnd_button_name (1)
scanbd: scanbtnd_button_name, backend: Genesys USB
scanbd: found active option[0] scan for device CanoScan LiDE 60
scanbd: installing action scan (0) for CanoScan LiDE 60, option[0]: scan
as: test.script
scanbd: multiple actions allowed
scanbd: scanbtnd_button_name (2)
scanbd: scanbtnd_button_name, backend: Genesys USB
scanbd: found active option[1] copy for device CanoScan LiDE 60
scanbd: scanbtnd_button_name (3)
scanbd: scanbtnd_button_name, backend: Genesys USB
scanbd: found active option[2] email for device CanoScan LiDE 60
scanbd: scanbtnd_button_name (4)
scanbd: scanbtnd_button_name, backend: Genesys USB
scanbd: found active option[3] pdf for device CanoScan LiDE 60
scanbd: scanbtnd_button_name (5)
scanbd: scanbtnd_button_name, backend: Genesys USB
scanbd: found active option[4] stop for device CanoScan LiDE 60
scanbd: scanbtnd_button_name (6)
scanbd: scanbtnd_button_name, backend: Genesys USB
scanbd: scanbuttond_wrapper.c:1066: scanbtnd_button_name: Assertion
`button <= 5' failed.
Aborted

Of course there are only 4 buttons physically, plus one hidden reset
button. Now i am unsure whether simply to edit the source code in
order to
remove the assertion. My feeling is it might work then.

Regards,
     Florian/

/Am 15.04.2017 um 12:26 schrieb Wilhelm Meier:
</pre>
            <blockquote type="cite">
              <pre wrap="">Hi Florian,

scanbd totally relies on libsane to read the option (button) values. It
is known, that some backends aren't capable doing this ...

For the Lide60 you can try uing the old scanbuttond backends
included in
the scanbd source tree. See the ReadMe.txt for instructions please.



Am 15.04.2017 um 10:44 schrieb Florian Gagel:
</pre>
              <blockquote type="cite">
                <pre wrap="">Hi,

my LiDE60 is working well, either directly using scanimage with scanbd
not running, as "genesys:libusb:001:016" or with running scanbd using
xinetd as <a class="moz-txt-link-rfc2396E" href="net:localhost:genesys:libusb:001:016">"net:localhost:genesys:libusb:001:016"</a>.
However, none of the four buttons seem to be recognized:

root@gandroid:/usr/local/etc/scanbd# scanbd -f -d7
scanbd: reading config file /usr/local/etc/scanbd/scanbd.conf
scanbd: debug on: level: 7
scanbd: dropping privs to uid saned
scanbd: dropping privs to gid scanner
scanbd: group scanner has member:
scanbd: saned
scanbd: drop privileges to gid: 121
scanbd: Running as effective gid 121
scanbd: drop privileges to uid: 120
scanbd: Running as effective uid 120
scanbd: dbus_init
scanbd: dbus match
type='signal',interface='org.freedesktop.Hal.Manager'
scanbd: SANE_CONFIG_DIR=/usr/local/etc/scanbd
scanbd: sane version 1.0
scanbd: Scanning for local-only devices
scanbd: found device: genesys:libusb:001:016 Canon LiDE 60 flatbed
scanner
scanbd: start_sane_threads
scanbd: Starting poll thread for genesys:libusb:001:016
scanbd: Thread started for device genesys:libusb:001:016
scanbd: sane_poll
scanbd: start dbus thread
scanbd: udev init
scanbd: get udev monitor
scanbd: udev fd is non-blocking, now setting to blocking mode
scanbd: start udev thread
scanbd: udev thread started
scanbd: timeout: 500 ms
scanbd: Iteration on dbus call
scanbd: Iteration on dbus call
scanbd: found 49 options for device genesys:libusb:001:016
scanbd: sane_find_matching_options
scanbd: found 5 actions in section (null)
scanbd: checking action scan with filter: ^scan.*
scanbd: found active option[2] mode (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[4] preview (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[5] depth (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[6] resolution (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[8] tl-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[9] tl-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[10] br-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[11] br-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[13] custom-gamma (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[18] swdeskew (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[19] swcrop (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[20] swdespeck (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[21] despeck (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[22] swskip (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[23] swderotate (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[24] brightness (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[25] contrast (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[27] lamp-off-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[28] lamp-off-scan (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[29] threshold (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[30] threshold-curve (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[31] disable-dynamic-lineart (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[32] disable-interpolation (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[33] color-filter (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[34] calibration-file (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[35] expiration-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[48] clear-calibration (type: 4) for device
genesys:libusb:001:016
scanbd: checking action email with filter: ^email$
scanbd: found active option[2] mode (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[4] preview (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[5] depth (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[6] resolution (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[8] tl-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[9] tl-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[10] br-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[11] br-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[13] custom-gamma (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[18] swdeskew (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[19] swcrop (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[20] swdespeck (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[21] despeck (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[22] swskip (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[23] swderotate (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[24] brightness (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[25] contrast (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[27] lamp-off-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[28] lamp-off-scan (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[29] threshold (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[30] threshold-curve (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[31] disable-dynamic-lineart (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[32] disable-interpolation (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[33] color-filter (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[34] calibration-file (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[35] expiration-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[48] clear-calibration (type: 4) for device
genesys:libusb:001:016
scanbd: checking action copy with filter: ^copy$
scanbd: found active option[2] mode (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[4] preview (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[5] depth (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[6] resolution (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[8] tl-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[9] tl-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[10] br-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[11] br-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[13] custom-gamma (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[18] swdeskew (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[19] swcrop (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[20] swdespeck (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[21] despeck (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[22] swskip (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[23] swderotate (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[24] brightness (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[25] contrast (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[27] lamp-off-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[28] lamp-off-scan (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[29] threshold (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[30] threshold-curve (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[31] disable-dynamic-lineart (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[32] disable-interpolation (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[33] color-filter (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[34] calibration-file (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[35] expiration-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[48] clear-calibration (type: 4) for device
genesys:libusb:001:016
scanbd: checking action preview with filter: ^preview$
scanbd: found active option[2] mode (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[4] preview (type: 0) for device
genesys:libusb:001:016
scanbd: installing action preview (0) for genesys:libusb:001:016,
option[4]: preview as: test.script
scanbd: multiple actions allowed
scanbd: get_sane_option_value
scanbd: Initial value of option preview is 0
scanbd: found active option[5] depth (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[6] resolution (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[8] tl-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[9] tl-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[10] br-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[11] br-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[13] custom-gamma (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[18] swdeskew (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[19] swcrop (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[20] swdespeck (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[21] despeck (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[22] swskip (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[23] swderotate (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[24] brightness (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[25] contrast (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[27] lamp-off-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[28] lamp-off-scan (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[29] threshold (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[30] threshold-curve (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[31] disable-dynamic-lineart (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[32] disable-interpolation (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[33] color-filter (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[34] calibration-file (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[35] expiration-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[48] clear-calibration (type: 4) for device
genesys:libusb:001:016
scanbd: checking action globaltest with filter: ^message.*
scanbd: found active option[2] mode (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[4] preview (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[5] depth (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[6] resolution (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[8] tl-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[9] tl-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[10] br-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[11] br-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[13] custom-gamma (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[18] swdeskew (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[19] swcrop (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[20] swdespeck (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[21] despeck (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[22] swskip (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[23] swderotate (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[24] brightness (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[25] contrast (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[27] lamp-off-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[28] lamp-off-scan (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[29] threshold (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[30] threshold-curve (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[31] disable-dynamic-lineart (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[32] disable-interpolation (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[33] color-filter (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[34] calibration-file (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[35] expiration-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[48] clear-calibration (type: 4) for device
genesys:libusb:001:016
scanbd: sane_find_matching_functions
scanbd: found 2 functions in section (null)
scanbd: checking function function_knob with filter: ^message.*
scanbd: option[1] has no name
scanbd: found active option[2] mode (type: 3) for device
genesys:libusb:001:016
scanbd: option[3] is not active
scanbd: found active option[4] preview (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[5] depth (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[6] resolution (type: 1) for device
genesys:libusb:001:016
scanbd: option[7] has no name
scanbd: found active option[8] tl-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[9] tl-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[10] br-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[11] br-y (type: 2) for device
genesys:libusb:001:016
scanbd: option[12] has no name
scanbd: found active option[13] custom-gamma (type: 0) for device
genesys:libusb:001:016
scanbd: option[14] is not active
scanbd: option[15] is not active
scanbd: option[16] is not active
scanbd: option[17] is not active
scanbd: found active option[18] swdeskew (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[19] swcrop (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[20] swdespeck (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[21] despeck (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[22] swskip (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[23] swderotate (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[24] brightness (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[25] contrast (type: 1) for device
genesys:libusb:001:016
scanbd: option[26] has no name
scanbd: found active option[27] lamp-off-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[28] lamp-off-scan (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[29] threshold (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[30] threshold-curve (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[31] disable-dynamic-lineart (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[32] disable-interpolation (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[33] color-filter (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[34] calibration-file (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[35] expiration-time (type: 1) for device
genesys:libusb:001:016
scanbd: option[36] has no name
scanbd: option[37] is not active
scanbd: option[38] is not active
scanbd: option[39] is not active
scanbd: option[40] is not active
scanbd: option[41] is not active
scanbd: option[42] is not active
scanbd: option[43] is not active
scanbd: option[44] is not active
scanbd: option[45] is not active
scanbd: option[46] has no name
scanbd: option[47] is not active
scanbd: found active option[48] clear-calibration (type: 4) for device
genesys:libusb:001:016
scanbd: checking function function_mode with filter: ^mode.*
scanbd: option[1] has no name
scanbd: found active option[2] mode (type: 3) for device
genesys:libusb:001:016
scanbd: installing function function_mode for genesys:libusb:001:016,
option[2]: mode as env: SCANBD_FUNCTION_MODE
scanbd: option[3] is not active
scanbd: found active option[4] preview (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[5] depth (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[6] resolution (type: 1) for device
genesys:libusb:001:016
scanbd: option[7] has no name
scanbd: found active option[8] tl-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[9] tl-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[10] br-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[11] br-y (type: 2) for device
genesys:libusb:001:016
scanbd: option[12] has no name
scanbd: found active option[13] custom-gamma (type: 0) for device
genesys:libusb:001:016
scanbd: option[14] is not active
scanbd: option[15] is not active
scanbd: option[16] is not active
scanbd: option[17] is not active
scanbd: found active option[18] swdeskew (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[19] swcrop (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[20] swdespeck (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[21] despeck (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[22] swskip (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[23] swderotate (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[24] brightness (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[25] contrast (type: 1) for device
genesys:libusb:001:016
scanbd: option[26] has no name
scanbd: found active option[27] lamp-off-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[28] lamp-off-scan (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[29] threshold (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[30] threshold-curve (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[31] disable-dynamic-lineart (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[32] disable-interpolation (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[33] color-filter (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[34] calibration-file (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[35] expiration-time (type: 1) for device
genesys:libusb:001:016
scanbd: option[36] has no name
scanbd: option[37] is not active
scanbd: option[38] is not active
scanbd: option[39] is not active
scanbd: option[40] is not active
scanbd: option[41] is not active
scanbd: option[42] is not active
scanbd: option[43] is not active
scanbd: option[44] is not active
scanbd: option[45] is not active
scanbd: option[46] has no name
scanbd: option[47] is not active
scanbd: found active option[48] clear-calibration (type: 4) for device
genesys:libusb:001:016
scanbd: found 6 local device sections
scanbd: checking device section avision with filter: ^avision.*
scanbd: checking device section fujitsu with filter: ^fujitsu.*
scanbd: checking device section hp with filter: ^hpaio.*
scanbd: checking device section pixma with filter: ^pixma.*
scanbd: checking device section snapscan with filter:
(.*snapscan.*|.*Perfection.*)
scanbd: checking device section canon with filter: ^genesys.*
scanbd: found 1 local action for device genesys:libusb:001:016 [canon]
scanbd: sane_find_matching_options
scanbd: found 1 actions in section canon
scanbd: checking action file with filter: ^file.*
scanbd: found active option[2] mode (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[4] preview (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[5] depth (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[6] resolution (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[8] tl-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[9] tl-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[10] br-x (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[11] br-y (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[13] custom-gamma (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[18] swdeskew (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[19] swcrop (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[20] swdespeck (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[21] despeck (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[22] swskip (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[23] swderotate (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[24] brightness (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[25] contrast (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[27] lamp-off-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[28] lamp-off-scan (type: 0) for device
genesys:libusb:001:016
scanbd: found active option[29] threshold (type: 2) for device
genesys:libusb:001:016
scanbd: found active option[30] threshold-curve (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[31] disable-dynamic-lineart (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[32] disable-interpolation (type: 0) for
device genesys:libusb:001:016
scanbd: found active option[33] color-filter (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[34] calibration-file (type: 3) for device
genesys:libusb:001:016
scanbd: found active option[35] expiration-time (type: 1) for device
genesys:libusb:001:016
scanbd: found active option[48] clear-calibration (type: 4) for device
genesys:libusb:001:016
scanbd: sane_find_matching_functions
scanbd: no matching functions in section canon
scanbd: timeout: 500 ms
scanbd: Start the polling for device genesys:libusb:001:016
scanbd: polling thread for genesys:libusb:001:016, before
cancellation point
scanbd: polling thread for genesys:libusb:001:016, after
cancellation point
scanbd: polling device genesys:libusb:001:016
scanbd: get_sane_option_value
scanbd: checking option preview number 4 (0) for device
genesys:libusb:001:016: value: 0
scanbd: polling thread for genesys:libusb:001:016, before
cancellation point
scanbd: polling thread for genesys:libusb:001:016, after
cancellation point
scanbd: polling device genesys:libusb:001:016
scanbd: get_sane_option_value
scanbd: checking option preview number 4 (0) for device
genesys:libusb:001:016: value: 0
scanbd: Iteration on dbus call
scanbd: polling thread for genesys:libusb:001:016, before
cancellation point
scanbd: polling thread for genesys:libusb:001:016, after
cancellation point
scanbd: polling device genesys:libusb:001:016
scanbd: get_sane_option_value
scanbd: checking option preview number 4 (0) for device
genesys:libusb:001:016: value: 0
scanbd: polling thread for genesys:libusb:001:016, before
cancellation point
scanbd: polling thread for genesys:libusb:001:016, after
cancellation point
scanbd: polling device genesys:libusb:001:016
scanbd: get_sane_option_value
scanbd: checking option preview number 4 (0) for device
genesys:libusb:001:016: value: 0
scanbd: Iteration on dbus call
scanbd: polling thread for genesys:libusb:001:016, before
cancellation point
scanbd: polling thread for genesys:libusb:001:016, after
cancellation point
scanbd: polling device genesys:libusb:001:016
scanbd: get_sane_option_value
scanbd: checking option preview number 4 (0) for device
genesys:libusb:001:016: value: 0
scanbd: polling thread for genesys:libusb:001:016, before
cancellation point
scanbd: polling thread for genesys:libusb:001:016, after
cancellation point
scanbd: polling device genesys:libusb:001:016
scanbd: get_sane_option_value
scanbd: checking option preview number 4 (0) for device
genesys:libusb:001:016: value: 0
scanbd: Iteration on dbus call
scanbd: polling thread for genesys:libusb:001:016, before
cancellation point
scanbd: polling thread for genesys:libusb:001:016, after
cancellation point
scanbd: polling device genesys:libusb:001:016
scanbd: get_sane_option_value


My scanbd.conf:

/*
  * $Id: scanbd.conf 237 2017-04-05 05:46:59Z wimalopaan $
  *
  *  scanbd - KMUX scanner button daemon
  *
  *  Copyright (C) 2008 - 2016 Wilhelm Meier (<a class="moz-txt-link-abbreviated" href="mailto:wilhelm.meier@fh-kl.de">wilhelm.meier@fh-kl.de</a>)
  *
  *  This program is free software; you can redistribute it and/or
modify
  *  it under the terms of the GNU General Public License as
published by
  *  the Free Software Foundation; either version 2 of the License, or
  *  (at your option) any later version.
  *
  *  This program is distributed in the hope that it will be useful,
  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  *  GNU General Public License for more details.
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
  */


# global settings
global {
         # turn on debugging
                 # log to console
         debug   = true

         # debug logging
         # 1=error, 2=warn, 3=info, 4-7=debug
         debug-level = 7
                 # drop priviliges to this user
         #=============================
         # Linux (most distributions use the saned user):
         # user    = saned
         # ArchLinux (ArchLinux doesn't have saned user)
         # user    = daemon
         # *BSD
         # user    = root
         user    = saned

         # Group to be used
         #=================
         # Linux (most distributions use the lp group to access
scanners)
         # group   = lp
         # ArchLinux (ArchLinux uses the scanner group)
         # group = scanner
         #
         # *BSD (no group lp here, use daemon instead)
         # group   = daemon # root
         #
         #group   = lp
         group   = scanner

         # the saned executable for manager-mode
         saned   = "/usr/sbin/saned"
         saned_opt  = {} # string-list
         saned_env  = { "SANE_CONFIG_DIR=/etc/scanbd" } # list of
environment vars for saned

         # Scriptdir specifies where scanbd normally looks for
scripts.
         # The scriptdir option can be defined as:
         #   - a path relative to the configuations
(<path>/etc/scanbd)
directory
         #   - an abosolute path
         # Examples:
         # scriptdir = scripts
         # sets scriptdir to <path>/etc/scanbd/scripts.
         # scriptdir = /some/path
         # sets scriptdir to the specified absolute path
         # Default scriptdir is <path>/etc/scanbd, this is normally
appropriate
         scriptdir = /etc/scanbd/scripts
                 # Scripts to execute upon device insertion/removal.
         # It can be necessary to load firmware into the device
when it
is first
         # inserted. For example, scanbuttond backend does not know
how
to load
         # scanner firmware, and it can be rectified by making a
custom
script.
         # A simple command like "scanimage -L" in an example
insert.script
         # invokes saned and it loads the appropriate firmware if
necessary.
         # These scripts receive environmental variables named in the
"environment" subsection:
         # SCANBD_DEVICE - device name (fixed string "dbus device" for
dbus notification)
         # SCANBD_ACTION - "insert" or "remove", so one script can
be used.
         # device_insert_script = "insert.script"
         # device_remove_script =

         # scanbuttond_backends_dir sets the path where scanbd
looks for
the scanbuttond backends
         # It can be defined as relative path, starting from the
scanbd
config directory or
         # as an absolute path
         # Default is <libdir>/scanbd/scanbutond/backends
         # Example
         # scanbuttond_backends_dir =
"/usr/local/lib/scanbd/scanbuttond/backends"

         # poll timeout in [ms]
         # (for polling the devices)
         timeout = 500
                 pidfile = "/var/run/scanbd.pid"
                 # env-vars for the scripts
         environment {
                 # pass the device label as below in this env-var
                 device = "SCANBD_DEVICE"
                 # pass the action label as below in this env-var
                 action = "SCANBD_ACTION"
         }

         # function definitions
         # values of the options are simply passed via env-vars

         function function_knob {
                 filter = "^message.*"
                 desc   = "The value of the function knob / wheel /
selector"
                 env    = "SCANBD_FUNCTION"
         }
         function function_mode {
                 filter = "^mode.*"
                 desc   = "Color mode"
                 env    = "SCANBD_FUNCTION_MODE"
         }

         multiple_actions = true # allow multiple actions per
option (up
to the total amount of options)

         # action definitions
         # if the filter matches and the value changes
         # from from-value to to-value,
         # <script> is executed
         # <script> is the full pathname (do not include any
parameters)
         # if parameters are needed, write a script
                 # since we can have only at most one action for
each option, the
action-script
         # can use the function definition (see above) to distinguish
different tasks
         # (e.g. use the env-var SCANBD_FUNCTION defined above)
                 action scan {
                 filter = "^scan.*"
                 numerical-trigger {
                         from-value = 1
                         to-value   = 0
                 }
                 desc   = "Scan to file"
                 # script must be an relative path starting from
scriptdir (see above),
                 # or an absolute pathname.
                 # It must contain the path to the action script
without
arguments
                 # Absolute path example: script =
"/some/path/foo.script
                 script = "test.script"
         }
         action email {
                 filter = "^email$"
                 string-trigger {
                         from-value  = ""
                         to-value    = "^email.*"
                 }
                 desc   = "Scan to email"
                 # script must be an relative path starting from
scriptdir (see above),
                 # or an absolute pathname.
                 # It must contain the path to the action script
without
arguments
                 # Absolute path example: script =
"/some/path/foo.script
                 script = "test.script"
         }
         action copy {
                 filter = "^copy$"
                 string-trigger {
                         from-value  = ""
                         to-value    = "^copy.*"
                 }
                 desc   = "Copy to printer"
                 # script must be an relative path starting from
scriptdir (see above),
                 # or an absolute pathname.
                 # It must contain the path to the action script
without
arguments
                 # Absolute path example: script =
"/some/path/foo.script
                 script = "test.script"
         }
         action preview {
                 filter = "^preview$"
                 numerical-trigger {
                         from-value = 1
                         to-value   = 0
                 }
                 desc   = "Preview"
                 # script must be an relative path starting from
scriptdir (see above),
                 # or an absolute pathname.
                 # It must contain the path to the action script
without
arguments
                 # Absolute path example: script =
"/some/path/foo.script
                 script = "test.script"
         }
         action globaltest {
                 filter = "^message.*"
                 desc   = "Test (print all env vars)"
                 # script must be an relative path starting from
scriptdir (see above),
                 # or an absolute pathname.
                 # It must contain the path to the action script
without
arguments
                 # Absolute path example: script =
"/some/path/foo.script
                 script = "test.script"
         }
}

# include
# include another file at this point. This may only occur outside
general and devices blocks.
# an include statement may be relative to the direcory where
scanbd.conf
is located or absolute
# include("scanner.d/myscanner.conf")
# include("/my/long/path/myscanner.conf")

# devices
# each device can have actions and functions, you can disable not
relevant devices
include(scanner.d/avision.conf)
include(scanner.d/fujitsu.conf)
include(scanner.d/hp.conf)
include(scanner.d/pixma.conf)
include(scanner.d/snapscan.conf)
include(scanner.d/canon.conf)
#include(scanner.d/plustek.conf)


I also commented out the include statements for the devices, tested
different sections for the options such as "preview", tried the
default
Ubuntu-Package for 16.04 as well as the newest version 1.5.0 of
scanbd.

Syslog contains essentially the same output as scanbd -f -d7, no
events
registered at all on button press. Scanimage -A also gave no evidence
for the presence of scanner buttons.

For me it seems that the problem might be the scanner button
options not
being recognized, strangely there are options "with no name" ?!

Thanks very much for any hint !


Regards,


   Florian



</pre>
              </blockquote>
            </blockquote>
            <pre wrap="">

</pre>
          </blockquote>
          <pre wrap="">
</pre>
        </blockquote>
        <pre wrap="">

</pre>
      </blockquote>
      <pre wrap="">
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>