[sane-devel] scanbd with old udev version
Wilhelm
wilhelm.meier at fh-kl.de
Wed Aug 21 06:22:31 UTC 2013
Am 21.08.2013 07:56, schrieb Sander Devrieze:
> 2013/8/21 Wilhelm <wilhelm.meier at fh-kl.de <mailto:wilhelm.meier at fh-kl.de>>
>
> Hi Sander,
>
> Am 21.08.2013 00:40, schrieb Sander Devrieze:
>
> Hello,
>
> I am trying to convert a WD MyBook into a scanner server. Sane
> detects
> the scanner and I was able to scan, but I cannot get scanbd to work.
>
>
> Which options did you use for configure?
>
>
> None, I just did a plain "./configure".
>
>
>
> May this be related to the fact that I am using a *very* old udev
> version (0.125-7+lenny3) which cannot be upgraded?
>
>
> On Lenny you should try usind hal instead of udev. But this is only
> resonsible for detecting removable devices. As a fallback scanbd can
> be signaled (using some udev-rule, e.g.), please check the docu.
>
>
> I am running Debian Squeeze. Only the udev package is from Lenny. This
> is needed because otherwise the special "MyBook Linux kernel" will not boot.
>
>
> Check the debug
> output below. How can I get scanbd running on my system?
>
>
> First of all scanbd doesn't detect any scanner. There may be various
> reasons. But most likely scanbd uses a wrong dll.conf.
>
> Did you
> export SANE_CONFIG_DIR=/usr/local/etc/scanbd ?
>
>
> Yes, and I also run scanbd like this to be sure:
> /usr/local/sbin/scanbd -d7 -f -c /usr/local/etc/scanbd/scanbd.conf
>
> When running scanbm, one of the lines reads like this:
>
> scanbm: Setting environment: SANE_CONFIG_DIR=/usr/local/etc/scanbd/sane.d
>
>
> please show your configs:
>
> /etc/sane/dll.conf
>
>
> # /etc/sane.d/dll.conf - Configuration file for the SANE dynamic backend
> loader
> #
> # Backends can also be enabled by configuration snippets under
> # /etc/sane.d/dll.d directory -- packages providing backends should drop
> # a config file similar to dll.conf in this directory, named after the
> package.
> #
>
> # The next line enables the network backend; comment it out if you don't
> need
> # to use a remote SANE scanner over the network - see sane-net(5) and
> saned(8)
> net
> #abaton
> #agfafocus
> #apple
> <snip all lines commented out below this>
>
> /usr/local/sbin/scanbd/dll.__conf
what is the contents of this file?
>
>
> Ok, that seems to help. Maybe the readme file should be more clear that
> you need to copy the config files and not the directory "sane.d" in
> here. scanbd seems to work. However, sane does not recognize the scanner:
>
> scanimage: no SANE devices found
>
> Any idea what can be wrong?
>
> /usr/local/etc/scanbd/scanbd.__conf
>
>
> # 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:
> # user = saned # root
> # *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 = saned
> # the saned executable for manager-mode
> saned = "/usr/sbin/saned"
> saned_opt = {} # string-list
> saned_env = { "SANE_CONFIG_DIR=/usr/local/etc/scanbd" } # list
> of environment vars for saned
>
> # Scriptdir specifies where scanbs 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/scripts.
> # scriptdir = /some/path
> # sets scriptdir to the specified absolute path
> # Default scriptdir is <path>/etc/scanbd, this is normally
> appropriate
> # scriptdir =
>
> # 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 a 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 aboslute
> # 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)
>
> and show the env-vars for the user starting the scanbd (root).
>
>
> TERM=xterm
> SHELL=/bin/bash
> OLDPWD=/root
> SSH_TTY=/dev/pts/0
> USER=root
> MAIL=/var/mail/root
> PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
> PWD=/usr/local/etc/scanbd
> LANG=en_US.UTF-8
> SHLVL=1
> HOME=/root
> LOGNAME=root
> SANE_CONFIG_DIR=/usr/local/etc/scanbd
> _=/usr/bin/env
>
>
>
>
> Thanks for helping me out!
>
> /usr/local/sbin/scanbd: foreground
> /usr/local/sbin/scanbd: config-file:
> /usr/local/etc/scanbd/scanbd.__conf
> /usr/local/sbin/scanbd: reading config file
> /usr/local/etc/scanbd/scanbd.__conf
> /usr/local/sbin/scanbd: debug on: level: 7
> /usr/local/sbin/scanbd: dropping privs to uid saned
> /usr/local/sbin/scanbd: dropping privs to gid saned
> /usr/local/sbin/scanbd: drop privileges to gid: 109
> /usr/local/sbin/scanbd: Running as effective gid 109
> /usr/local/sbin/scanbd: drop privileges to uid: 104
> /usr/local/sbin/scanbd: Running as effective uid 104
> /usr/local/sbin/scanbd: dbus_init
> /usr/local/sbin/scanbd: dbus match
> type='signal',interface='org.__freedesktop.Hal.Manager'
> /usr/local/sbin/scanbd: sane version 1.0
> /usr/local/sbin/scanbd: Scanning for local-only devices
> /usr/local/sbin/scanbd: start_sane_threads
> /usr/local/sbin/scanbd: start dbus thread
> /usr/local/sbin/scanbd: timeout: 500 ms
> /usr/local/sbin/scanbd: Iteration on dbus call
> /usr/local/sbin/scanbd: udev init
> /usr/local/sbin/scanbd: get udev monitor
> libudev: udev_monitor_enable_receiving: bind failed: Operation
> not permitted
> /usr/local/sbin/scanbd: Can't enable udev receiving
> /usr/local/sbin/scanbd: Can't init udev
> /usr/local/sbin/scanbd: Iteration on dbus call
> /usr/local/sbin/scanbd: Iteration on dbus call
> /usr/local/sbin/scanbd: Iteration on dbus call
>
> --
> Kind Regards,
> Sander Devrieze
>
>
>
>
> --
> Wilhelm
> w.meier at unix.net <mailto:w.meier at unix.net>
>
>
--
Wilhelm
w.meier at unix.net
More information about the sane-devel
mailing list