[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