----- Wilhelm <wilhelm.meier at fh-kl.de> wrote: > Hi Rastislav, > > (sorry for calling you wrong last time) > > Am 25.11.2011 10:35, schrieb Rastislav David: > > Hello Wilhelm, > > > > thank You for responding so quickly. > > you're welcome > > > > > I've closed point 2) where I've found that button called Pdf is found with > > filter file. > > good to here! > > > > I've attached scanbd.conf in my last email but I guess it didn't go through. > > looks good. > > I think there problem is, that with debian-testing we get a new libudev > with a non-blocking behaviour for the udev_monitor_receive_device() > function. > > I'll fix that upstream, when I discover how to switch back to the > blocking behaviour. > > In the mean time you can compile sanbd without libudev as said in the > last email.
Yes. Compiled without UDEV and HAL now scanbd works as expected. scanbd is now behaving nicely with prety low CPU utilization :) Your guess at libdev was most likely correct. > > So, stay tuned. Fingers crossed. > > > > > Here is scanbd.conf I'm using now: > > > > global { > > debug = true > > debug-level = 1 > > user = saned > > group = scanner > > saned = "/usr/sbin/saned" > > saned_opt = {} > > saned_env = { "SANE_CONFIG_DIR=/etc/scanbd" } > > scanbuttond_backends_dir = > > "/usr/local/etc/scanbd/scanbuttond/backends" > > timeout = 400 > > pidfile = "/var/run/scanbd.pid" > > environment { > > device = "SCANBD_DEVICE" > > 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 > > action scan { > > filter = "^scan.*" > > numerical-trigger { > > from-value = 1 > > to-value = 0 > > } > > desc = "Scan to file" > > script = "/etc/scanbd/action.script" > > } > > action email { > > filter = "^email$" > > string-trigger { > > from-value = "" > > to-value = "^email.*" > > } > > desc = "Scan to email" > > script = "/etc/scanbd/action.script" > > } > > action copy { > > filter = "^copy$" > > string-trigger { > > from-value = "" > > to-value = "^copy.*" > > } > > desc = "Copy to printer" > > script = "/etc/scanbd/test.script" > > } > > action pdf { > > filter = "^file$" > > numerical-trigger { > > from-value = 1 > > to-value = 0 > > } > > desc = "Pdf" > > script = "/etc/scanbd/action.script" > > } > > action preview { > > filter = "^preview$" > > numerical-trigger { > > from-value = 1 > > to-value = 0 > > } > > desc = "Preview" > > script = "/etc/scanbd/action.script" > > } > > action globaltest { > > filter = "^message.*" > > desc = "Test (print all env vars)" > > script = "/etc/scanbd/test.script" > > } > > } > > device fujitsu { > > filter = "^fujitsu.*" > > desc = "Fujitsu: Test" > > function function_knob { > > filter = "^function.*" > > desc = "The value of the function knob / wheel / > > selector" > > env = "SCANBD_FUNCTION" > > } > > action paperload { > > filter = "^page-loaded.*" > > desc = "page loaded" > > numerical-trigger { > > from-value = 0 > > to-value = 1 > > } > > script = "" > > } > > action paperunload { > > filter = "^page-loaded.*" > > desc = "page unloaded" > > numerical-trigger { > > from-value = 1 > > to-value = 0 > > } > > script = "" > > } > > action coveropen { > > filter = "^cover-open.*" > > desc = "cover open" > > numerical-trigger { > > from-value = 0 > > to-value = 1 > > } > > script = "" > > } > > action powersave { > > filter = "^power-save.*" > > desc = "power save" > > numerical-trigger { > > from-value = 0 > > to-value = 1 > > } > > script = "" > > } > > } > > device snapscan { > > filter = "(.*snapscan.*|.*Perfection.*)" > > desc = "Epson" > > action test { > > filter = "^message.*" > > desc = "Test" > > script = "/usr/local/etc/scanbd/example.script" > > } > > action web { > > filter = "^web.*" > > desc = "Web" > > script = "/usr/local/etc/scanbd/example.script" > > } > > action send { > > filter = "^send.*" > > desc = "Send" > > script = "/usr/local/etc/scanbd/example.script" > > } > > } > > device hp { > > filter = "^hpaio.*" > > desc = "HP" > > action test { > > filter = ".*scan.*" > > desc = "Test" > > script = "/usr/local/etc/scanbd/example.script" > > } > > } > > device avision { > > filter = "^avision.*" > > desc = "Avision Scanner" > > action duplex-test { > > filter = "^message.*" > > desc = "Avision: Duplex Test" > > script = "/usr/local/etc/scanbd/test.script" > > string-trigger { > > from-value = "" > > to-value = "^.:duplex" > > } > > } > > } > > > > ----- Original Message ----- > > From: Wilhelm<wilhelm.meier at fh-kl.de> > > To: Rastislav David<rasto at ynet.sk> > > Cc: sane-devel at lists.alioth.debian.org > > Sent: Fri, 25 Nov 2011 07:45:58 +0100 (CET) > > Subject: Re: [sane-devel] Scanner Button Daemon [scanbd]: high CPU > > utilization > > > > Hi David, > > > > Am 24.11.2011 21:49, schrieb Rastislav David: > >> Hello all, > >> > >> I've succesfully compiled scanbd for my Canon CanoScan LiDE 110 on my > >> ARM powered NAS Linksys DNS-323 running Debian Wheezy. > >> > >> It works :) however there are few issues. > >> 1) scanbd is using 100% of CPU load and thus misses some button presses > > > > looks like a config problem: please post your scanbd.conf > > > >> 2) does not react on Pdf button (nothing logged into console when > >> pressed) There are 4 buttons. [Pdf Auto-Scan Copy Email] > > > > we must check the log-file to find out the name of the pdf-button > > > >> > >> If I start daemon with: ./scanbd -df -c scanbd.conf > >> > >> I see: > >> > >> ./scanbd: debug on: level: 7 > >> ./scanbd: dropping privs to uid saned > >> ./scanbd: dropping privs to uid scanner > >> ./scanbd: group scanner has member: > >> ./scanbd: saned > >> ./scanbd: drop privileges to gid: 104 > >> ./scanbd: Running as effective gid 104 > >> ./scanbd: drop privileges to uid: 110 > >> ./scanbd: Running as effective uid 110 > >> ./scanbd: dbus_init > >> ./scanbd: dbus match type='signal',interface='org.freedesktop.Hal.Manager' > >> ./scanbd: sane version 1.0 > >> ./scanbd: Scanning for local-only devices > >> ./scanbd: found device: genesys:libusb:001:011 Canon LiDE 110 flatbed > >> scanner > >> ./scanbd: start_sane_threads > >> ./scanbd: Starting poll thread for genesys:libusb:001:011 > >> ./scanbd: Thread started for device genesys:libusb:001:011 > >> ./scanbd: sane_poll > >> ./scanbd: start udev thread > >> ./scanbd: timeout: 400 ms > >> ./scanbd: udev thread started > >> ./scanbd: Iteration on dbus call > >> ./scanbd: no device from udev > >> ./scanbd: no device from udev > >> .... > >> 300x / second > >> ./scanbd: no device from udev > >> ./scanbd: no device from udev > >> ./scanbd: no device from udev > >> ./scanbd: no device from udev > >> ./scanbd: no device from udev > >> ./scanbd: found 41 options for device genesys:libusb:001:011 > >> ./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:01 > >> 1 > >> ./scanbd: found active option[4] preview (type: 0) for device > >> genesys:libusb:001 > >> :011 > >> ./scanbd: found active option[5] depth (type: 1) for device > >> genesys:libusb:001:0 > >> 11 > >> ./scanbd: found active option[6] resolution (type: 1) for device > >> genesys:libusb: > >> 001:011 > >> ./scanbd: found active option[8] tl-x (type: 2) for device > >> genesys:libusb:001:01 > >> 1 > >> ./scanbd: found active option[9] tl-y (type: 2) for device > >> genesys:libusb:001:01 > >> 1 > >> ./scanbd: found active option[10] br-x (type: 2) for device > >> genesys:libusb:001:011 > >> ./scanbd: found active option[11] br-y (type: 2) for device > >> genesys:libusb:001:011 > >> > >> > >> these "no device from udev" messages are generated about 300/s which I > >> think is causing high CPU utilization. > > > > That's strange: did not see this before :-( > > > >> > >> in scandb.conf I left all devices as they were and for actions scan > >> email and copy I've changed script to /etc/scanbd/action.script. > >> This script works fine for said 3 buttons. > >> > >> Can You help where could be the issue with High CPU utilization? > >> Is there some problem with configuration? > > > > I think this has to to with the libudev. You can disable libudev at > > compile-time (and using hald if you want) loosing the capability to > > dynamically add scanners. Can you give this a try, please? > > > >> > >> Rastislav > >> > >> P.S: for scanbd to compile I had to change > >> -I/usr/local/include/dbus-1.0/include to > >> -I/usr/lib/arm-linux-gnueabi/dbus-1.0/include > >> > >> > >> > > > > > > > -- > Wilhelm >