[sane-devel] HP5590 and scanbd button recognition

Jared Hedegaard trailhead.jared at luthr.net
Mon Mar 5 07:07:17 UTC 2018


Main question: does the HP 5590 support button presses or am I just setting this up incorrectly? 

I'm been successful using scanbd with SANE backends to get scanning working over my network and locally on the host machine, but I can't seem to get it to recognize button presses, either running scanbd in foreground or background.

For past testing, it seems that actions defined in scanbd.conf are used to tie to the backend options? From searching /var/log/syslog, I expected to track button presses or get some sort of trigger feedback, and I didn't think I needed an action set up for it.

Any help on this one would be much appreciated. Thanks.

Jared H

Details Below:
======================
I've got an HP ScanJet 5590 connected via USB to my raspberry pi with Raspbian 9 (Stretch).
sane 1.0.14-12 armhf
scanbd 1.4.4-1+b1 armhf
Both provided by the package manager. I've tried to keep it as close to the way it is set up by default. I've changed dll.conf and net.conf in the /etc/sane.d folder.

$ cat /etc/sane.d/dll.conf
net

$ cat /etc/sane.d/net.conf 
connect_timeout = 5
localhost

I've copied saned.conf from /etc/sane.d and added a soft link to /usr/share/scanbd/scripts/ as scripts into /etc/scanbd. Adjusted dll.conf and minor edits on scanbd.conf

$ cat /etc/scanbd/dll.conf
hp5590

$ cat /etc/scanbd/saned.conf
localhost
laptop.luthr.net

$ cat /etc/scanbd/scanbd.conf
$ cat /etc/scanbd/scanbd.conf

global {

        debug   = true 
        debug-level = 7
        user    = saned
        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 = /etc/scanbd/scripts
        device_insert_script = "insert.script"

        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 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 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 button {
                filter = "^but.*"
                desc = "Testing a button press"
                script = "test.script"
        }
}

include(scanner.d/hp.conf)

------------

I can access the scanner from the local client and over the network using the the net: backend.

@pi$ pidof scanbd && SANE_CONFIG_DIR=/etc/sane.d scanimage -L
797
device `net:localhost:hp5590:libusb:001:008' is a HP 5590 Workgroup scanner

@pi$ SANE_CONFIG_DIR=/etc/scanbd scanimage -L
device `hp5590:libusb:001:008' is a HP 5590 Workgroup scanner

Running interactively:
$ SANE_CONFIG_DIR=/etc/scanbd scanbd -d7 -f -c /etc/scanbd/scanbd.conf

scanbd: foreground
scanbd: config-file: /etc/scanbd/scanbd.conf
scanbd: reading config file /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: pi
scanbd: jaredh
scanbd: dispatcher
scanbd: drop privileges to gid: 113
scanbd: Can't set the effective gid to 113
scanbd: drop privileges to uid: 109
scanbd: Can't set the effective uid to 109
scanbd: dbus_init
scanbd: dbus match type='signal',interface='org.freedesktop.Hal.Manager'
scanbd: SANE_CONFIG_DIR=/etc/scanbd
scanbd: sane version 1.0
scanbd: Scanning for local-only devices
scanbd: found device: hp5590:libusb:001:008 HP 5590 Workgroup scanner
scanbd: start_sane_threads
scanbd: Starting poll thread for hp5590:libusb:001:008
scanbd: Thread started for device hp5590:libusb:001:008
scanbd: start dbus thread
scanbd: sane_poll
scanbd: found 11 options for device hp5590:libusb:001:008
scanbd: sane_find_matching_options
scanbd: Not Primary Owner (-1)
scanbd: Name Error (Connection ":1.9" is not allowed to own the service "de.kmux.scanbd.server" due to security policies in the configuration file)
scanbd: udev init
scanbd: get udev monitor
scanbd: udev fd is non-blocking, now setting to blocking mode
scanbd: found 2 actions in section (null)
scanbd: checking action scan with filter: ^scan.*
scanbd: found active option[1] tl-x (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[2] tl-y (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[3] br-x (type: 2) for device hp5590:libusb:001:008
scanbd: start udev thread
scanbd: found active option[4] br-y (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[5] mode (type: 3) for device hp5590:libusb:001:008
scanbd: found active option[6] source (type: 3) for device hp5590:libusb:001:008
scanbd: found active option[7] resolution (type: 1) for device hp5590:libusb:001:008
scanbd: udev thread started
scanbd: found active option[8] extend-lamp-timeout (type: 0) for device hp5590:libusb:001:008
scanbd: found active option[9] wait-for-button (type: 0) for device hp5590:libusb:001:008
scanbd: found active option[10] preview (type: 0) for device hp5590:libusb:001:008
scanbd: checking action button with filter: ^but.*
scanbd: found active option[1] tl-x (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[2] tl-y (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[3] br-x (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[4] br-y (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[5] mode (type: 3) for device hp5590:libusb:001:008
scanbd: found active option[6] source (type: 3) for device hp5590:libusb:001:008
scanbd: found active option[7] resolution (type: 1) for device hp5590:libusb:001:008
scanbd: found active option[8] extend-lamp-timeout (type: 0) for device hp5590:libusb:001:008
scanbd: found active option[9] wait-for-button (type: 0) for device hp5590:libusb:001:008
scanbd: found active option[10] preview (type: 0) for device hp5590:libusb:001:008
scanbd: sane_find_matching_functions
scanbd: found 2 functions in section (null)
scanbd: checking function function_knob with filter: ^message.*
scanbd: found active option[1] tl-x (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[2] tl-y (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[3] br-x (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[4] br-y (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[5] mode (type: 3) for device hp5590:libusb:001:008
scanbd: found active option[6] source (type: 3) for device hp5590:libusb:001:008
scanbd: found active option[7] resolution (type: 1) for device hp5590:libusb:001:008
scanbd: found active option[8] extend-lamp-timeout (type: 0) for device hp5590:libusb:001:008
scanbd: found active option[9] wait-for-button (type: 0) for device hp5590:libusb:001:008
scanbd: found active option[10] preview (type: 0) for device hp5590:libusb:001:008
scanbd: checking function function_mode with filter: ^mode.*
scanbd: found active option[1] tl-x (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[2] tl-y (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[3] br-x (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[4] br-y (type: 2) for device hp5590:libusb:001:008
scanbd: found active option[5] mode (type: 3) for device hp5590:libusb:001:008
scanbd: installing function function_mode for hp5590:libusb:001:008, option[5]: mode as env: SCANBD_FUNCTION_MODE
scanbd: found active option[6] source (type: 3) for device hp5590:libusb:001:008
scanbd: found active option[7] resolution (type: 1) for device hp5590:libusb:001:008
scanbd: found active option[8] extend-lamp-timeout (type: 0) for device hp5590:libusb:001:008
scanbd: found active option[9] wait-for-button (type: 0) for device hp5590:libusb:001:008
scanbd: found active option[10] preview (type: 0) for device hp5590:libusb:001:008
scanbd: found 1 local device sections
scanbd: checking device section hp with filter: ^hpaio.*
scanbd: timeout: 500 ms
scanbd: Start the polling for device hp5590:libusb:001:008
scanbd: polling thread for hp5590:libusb:001:008 cancellation point
scanbd: polling device hp5590:libusb:001:008
scanbd: polling thread for hp5590:libusb:001:008 cancellation point
scanbd: polling device hp5590:libusb:001:008
scanbd: polling thread for hp5590:libusb:001:008 cancellation point
scanbd: polling device hp5590:libusb:001:008
scanbd: polling thread for hp5590:libusb:001:008 cancellation point
scanbd: polling device hp5590:libusb:001:008
scanbd: polling thread for hp5590:libusb:001:008 cancellation point
scanbd: polling device hp5590:libusb:001:008
^Cscanbd: sig_term/int_handler called with signal 2
scanbd: stop_sane_threads
scanbd: stopping poll thread for device hp5590:libusb:001:008
scanbd: waiting for poll thread for device hp5590:libusb:001:008
scanbd: sane_thread_cleanup_mutex
scanbd: closing device hp5590:libusb:001:008
scanbd: freeing opt resources for device hp5590:libusb:001:008 thread
scanbd: freeing function resources for device hp5590:libusb:001:008 thread
scanbd: stop dbus thread
scanbd: stop udev thread
scanbd: cleanup device handler
scanbd: join udev thread
scanbd: close udev monitor
scanbd: close udev
scanbd: exiting scanbd



More information about the sane-devel mailing list