[sane-devel] scanbd and Canon LiDE 60: buttons not recognized ?
Wilhelm
wilhelm.wm.meier at googlemail.com
Sat Apr 15 15:32:37 UTC 2017
Am 15.04.2017 um 16:13 schrieb Florian Gagel:
> 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.
Yes, per default this was not included - I added it to trunk.
> - Then the LiDE-60 was recognized by the old backend, together with its
> four buttons !
> - However, scanbd finally stumbled on an assertion:/
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.
> root at 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:
>> 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:
>>> 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 "net:localhost:genesys:libusb:001:016".
>>> However, none of the four buttons seem to be recognized:
>>>
>>> root at 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 (wilhelm.meier at fh-kl.de)
>>> *
>>> * 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
>>>
>>>
>>>
>
>
>
More information about the sane-devel
mailing list