[sane-devel] [Scanbd] Set up for Canon PIXMA multifunction scanner - no button response
matt clark
liquefry at gmail.com
Tue Oct 25 04:31:57 UTC 2016
Hi again, after the last test I reinstalled sane without the scanbd
bits, want to see if I can get this working without it. The output
from the command above is at http://pastebin.com/1h6gDTQV
It looks from that as though sane is picking up both the network
connection to the scanner/printer and the USB connection. Not sure if
that helps diagnose? If I run the same command without sudo access it
doesn't pick up the USB version.
Cheers
Matt
On Tue, Oct 25, 2016 at 3:12 PM, matt clark <liquefry at gmail.com> wrote:
> Hi Rolf, thanks for replying - sorry I missed it last week. The
> response to that command (running as su) is
>
> scanimage: no SANE devices found
>
> I am guessing it's something wrong with the scanbd setup since I can
> see that it's installed using the /usr/local/etc/scanbd/sane.d config
> file. The only line that is not commented out in my
> /etc/sane.d/saned.conf file is
>
> localhost
>
> Would appreciate your thoughts.
>
> On Wed, Oct 19, 2016 at 9:13 PM, Rolf Bensch <rolf at bensch-online.de> wrote:
>> Hi Matt,
>>
>> Sorry for the late response.
>>
>> The command line must run without
>> 'SANE_CONFIG_DIR=/usr/local/etc/scanbd/sane.d'. Maybe you don't have the
>> user rights to access your scanner via USB. Please try following:
>> (1) push any button
>> (2) sudo su -c "SANE_DEBUG_PIXMA=11 scanimage -A"
>>
>> Please send me the complete log response.
>>
>> Cheers,
>> Rolf
>>
>> Am 13.10.2016 um 23:29 schrieb matt clark:
>>> Hi Rolf, the "buttons" section in the code shows this:
>>>
>>> Buttons:
>>> --button-update
>>> Update button state
>>> --button-1 <int> [0] [read-only]
>>> Button 1
>>> --button-2 <int> [0] [read-only]
>>> Button 2
>>> --original <int> [0] [read-only]
>>> Type of original to scan
>>> --target <int> [0] [read-only]
>>> Target operation type
>>> --scan-resolution <int> [0] [read-only]
>>> Scan resolution
>>>
>>> None of the binary code you mentioned. Does this mean there is no
>>> sane support for the buttons? Note that I had to use the command
>>> SANE_CONFIG_DIR=/usr/local/etc/scanbd/sane.d SANE_DEBUG_PIXMA=11
>>> scanimage -A to make it work. I pushing both buttons, and sending it
>>> via USB (yes it's connected) and the "localhost saned" option which is
>>> I assume sending via network.
>>>
>>> On Fri, Oct 14, 2016 at 7:16 AM, Rolf Bensch <rolf at bensch-online.de> wrote:
>>>> Hi Matt,
>>>>
>>>> Have you tested that your scanner resp. the backend sends data @ a push
>>>> button event?
>>>>
>>>> Please test on the console:
>>>> (1) push any button
>>>> (2) $ SANE_DEBUG_PIXMA=11 scanimage -A
>>>> (3) check the response; I'm especially interested in following lines:
>>>>
>>>> Buttons:
>>>> --button-update
>>>> Update button state
>>>> [pixma] INTR T=1.343 len=32
>>>> [pixma] 00000000:00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>> [pixma] 00000010:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>>>> [pixma]
>>>> --button-1 <int> [1] [read-only]
>>>> Button 1
>>>> --button-2 <int> [0] [read-only]
>>>> Button 2
>>>> --original <int> [0] [read-only]
>>>> Type of original to scan
>>>> --target <int> [2] [read-only]
>>>> Target operation type
>>>> --scan-resolution <int> [0] [read-only]
>>>> Scan resolution
>>>>
>>>> Please repeat (1) ... (3) for all scan buttons.
>>>>
>>>> Maybe you need to test your scanner USB connected to the pc. I haven't
>>>> tested push buttons wireless yet.
>>>>
>>>> If you don't get lines starting with [pixma], your scanner has no button
>>>> support from SANE.
>>>>
>>>> If you get lines starting with [pixma] with more data as shown above (I
>>>> have a different scanner) and without data output below at the
>>>> parameters --button-1 ... --scan-resolution, what I suppose, then please
>>>> send me your "Buttons:" logs and I'll fix the backend code.
>>>>
>>>> Hope this helps.
>>>>
>>>> Cheers,
>>>> Rolf
>>>>
>>>> Am 13.10.2016 um 13:23 schrieb Wilhelm:
>>>>> Oh, mixed the values ...
>>>>>
>>>>> action btest {
>>>>> filter = "^button.*"
>>>>> numerical-trigger {
>>>>> from-value = 0
>>>>> to-value = 1
>>>>> }
>>>>> desc = "Scan to file"
>>>>> script = "test.script"
>>>>> }
>>>>>
>>>>>
>>>>> Am 13.10.2016 um 11:16 schrieb Wilhelm:
>>>>>> Matt, you need something like this in your config:
>>>>>>
>>>>>> action btest {
>>>>>> filter = "^button.*"
>>>>>> numerical-trigger {
>>>>>> from-value = 1
>>>>>> to-value = 0
>>>>>> }
>>>>>> desc = "Scan to file"
>>>>>> script = "test.script"
>>>>>> }
>>>>>>
>>>>>> --
>>>>>> Wilhelm
>>>>>>
>>>>>> Am 13.10.2016 um 09:09 schrieb matt clark:
>>>>>>> Thanks Wilhelm. I had changed that while trying to debug the problem,
>>>>>>> not sure why this would be a problem. Have reverted to the
>>>>>>> scanbd.conf from source, with modifications to sane.d directory and
>>>>>>> comment out the unnecessary manufacturer scanner.d profiles. revised
>>>>>>> config is attached - apologies for the length of code.
>>>>>>>
>>>>>>> ---
>>>>>>>
>>>>>>> /*
>>>>>>> * $Id: scanbd.conf 213 2015-10-05 06:52:50Z wimalopaan $
>>>>>>> *
>>>>>>> * scanbd - KMUX scanner button daemon
>>>>>>> *
>>>>>>> * Copyright (C) 2008 - 2015 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
>>>>>>>
>>>>>>> # the saned executable for manager-mode
>>>>>>> saned = "/usr/sbin/saned"
>>>>>>> saned_opt = {} # string-list
>>>>>>> saned_env = { "SANE_CONFIG_DIR=/etc/scanbd/sane.d" } # 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)
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Oct 13, 2016 at 4:10 PM, Wilhelm <wilhelm.meier at fh-kl.de> wrote:
>>>>>>>> Looking at your log file it seems that action "globaltest" isn't
>>>>>>>> installed. There may be 2 reasons for this:
>>>>>>>>
>>>>>>>> 1) the regex doenst't match
>>>>>>>>
>>>>>>>> 2) there is no trigger definition for the action
>>>>>>>>
>>>>>>>> HtH
>>>>>>
>>>>>
>>>>
>>>>
>>>
More information about the sane-devel
mailing list