help with getting scanbd and interactive scanner tools working together

Ron Young via sane-devel <[email protected]>
Newsgroups gmane.comp.graphics.scanning.sane.devel
Message-ID <[email protected]>
Hi Everyone:

    I have been working on getting scanbd and sane working together on
    my x86 linuxmint 21.2 system with fujitsu snapscan ix500.

    How I want things to work is as follows:

    1) using scanbd, press the single start button on the ix500 scanner,
       the adf contents should be scanned in /var/spool/scan without any
       further action.

    2) Either as root or a normal user in the scanner group, using common
       tools (i.e. gscan2pdf, simple-scan, scanimage, etc)... scan the 
documents
       in the ix500.

    my current configuration works for either 1 or 2 but NOT at the same
    time. I would be very happy if I could do either of them as needed 
without
    having to change anything.

    I have attached two files that contain the detailed steps I used for 
each of the above configurations. sane-devel-saned is the configuration 
of saned without scanbd, and sane-devel-scanbd is the config with scanbd 
active.

    Of course they contain shell commands, that I cut and paste from my 
notes during testing, I don't run them directly as shell scripts.

Any help that you can give me would be appreciated!

-ron
sane-devel-saned (text/plain, 4.1 KB)
#
# linuxmint 21.2 (mate desktop) - fujitsu snapscan ix500
#
#restore system status to a clean state for scanner testing sane with scanbd
# with this configuration, currently, sane tools, gscan2pdf, and simple-scan doesn't work for
# interactive root and normal users. BUT it does work if the button is pushed through scanbd
#

rm -rf /etc/scanbd/*
apt-get purge -y scanbd sane libsane-common libsane1 sane-airscan sane-utils simple-scan gscan2pdf
apt-get install -y scanbd sane libsane-common libsane1 sane-airscan sane-utils simple-scan gscan2pdf

#
# create a separate network sane scanner in addition to a local scanner
#

mkdir /etc/scanbd/sane.d
cp -r /etc/sane.d/* /etc/scanbd/sane.d/

#
# Modify /etc/sane.d/dll.conf so that it includes only the "net" directive and the local scanner (for
#  simple-scan and other utilities)saned

cat > /etc/sane.d/saned.conf << EOF
192.168.0.0/16
127.0.0.0/8
EOF

cat >/etc/sane.d/dll.conf << EOF
net
fujitsu
EOF

cat > /etc/sane.d/net.conf <<EOF
connect_timeout = 3
localhost
EOF

ed /etc/scanbd/sane.d/dll.conf <<EOF
g/^net/s/^/#/p
w
q
EOF

ed /etc/inetd.conf <<EOF
g/^sane-port/s/^/#/p
w
q
EOF

ed /etc/scanbd/scanbd.conf  << EOF
/SANE_CONFIG_DIR/s/\/etc\/scanbd/\/etc\/scanbd\/sane.d/p
g/test.script/s//scan.sh/p
g/^  *user  *= saned/s/saned/root/p
w
q
EOF
mkdir /etc/scanbd/scripts && cp /home/ron/scan.sh /etc/scanbd/scripts

cat <etc/scanbd/scripts/scan.sh << EOF
#!/bin/bash

# Author: Rastislav David <[email protected]>

scan_dir=/var/spool/scan
datetime=`date +%F_%H%M%S`
filename="scan-$datetime"
[email protected]

case "$SCANBD_ACTION" in
 pdf)
  logger -t "scanbd: $0" "$SCANBD_ACTION - scanning and converting to ps"
  scanimage -d "$SCANBD_DEVICE" --mode Color --resolution 150 --depth 16 |
   convert -density 150 - "$scan_dir/$filename.ps"
  logger -t "scanbd: $0" "$SCANBD_ACTION - converting ps to pdf"
  ps2pdf  -sPAPERSIZE=a4 "$scan_dir/$filename.ps" "$scan_dir/$filename.pdf"
  rm "$scan_dir/$filename.ps"
  ;;
 scan)
  scanimage -d "$SCANBD_DEVICE" --resolution 300 --mode Gray --format=tiff > "$\
scan_dir/$filename.tiff"
  ;;
 copy)
  logger -t "scanbd: $0" "$SCANBD_ACTION - scanning"
  scanimage -d "$SCANBD_DEVICE" --resolution 300 --depth 16--format=tiff > "$sc\
an_dir/$filename.tiff"
# | convert -density 300 - $scan_dir/$filename.ps
  logger -t "scanbd: $0" "$SCANBD_ACTION - printing"
  lp "$scan_dir/$filename.tiff"
  rm "$scan_dir/$filename.tiff"
  ;;
email)
  logger -t "scanbd: $0" "$SCANBD_ACTION - scanning and converting to ps"
  scanimage -d "$SCANBD_DEVICE" --mode Color --resolution 150 --depth 16 |
   convert -density 150 - "$scan_dir/$filename.ps"
  logger -t "scanbd: $0" "$SCANBD_ACTION - converting ps to pdf"
  ps2pdf  -sPAPERSIZE=a4 "$scan_dir/$filename.ps" "$scan_dir/$filename.pdf"
  logger -t "scanbd: $0" "$SCANBD_ACTION - sending pdf"
  (cat <<EOCAT
Document scanned on Canon LiDE 110
EOCAT
uuencode "$scan_dir/$filename.pdf" "$scan_dir/$filename.pdf" ) | mail -a
"From: Canon scanner <[email protected]>" -s "Document $filename" "$send_to"
  rm "$scan_dir/$filename.ps"
  rm "$scan_dir/$filename.pdf"
  ;;
*)
  logger -t "scanbd: $0" "Unhandled action request."
  ;;
esac

exit 0
EOF
chmod 755 /etc/scanbd/scripts/scan.sh

#
# enable/disable udev rules for testing
#

# enable start
cat > /etc/udev/rules.d/40-scanner.rules << EOF
SUBSSTEMS=="usb", ATTRS{idVendor}="04c5". ATTRS{idProduct}=="132b", ENV{libsane_matched}="yes", GROUP="scanner"
EOF
# enable end

# disable start
cat > /etc/udev/rules.d/40-scanner.rules << EOF
# Fujitsu SnapScan ix500

SUBSSTEMS=="usb", ATTRS{idVendor}="04c5". ATTRS{idProduct}=="132b",
ENV{libsane_matched}="yes", GROUP="scanner",
ENV{ID_VENDOR_ID}=="04c5", ENV{ID_MODEL_ID}=="132b", ACTION=="add",
RUN+="/usr/sbin/service inetutils-inetd start",
RUN+="/usr/bin/scanimage -L", RUN+="/usr/sbin/service scanbd start"
ENV{ID_VENDOR_ID}=="04c5", ENV{ID_MODEL_ID}=="132b", ACTION=="remove",
RUN+="/usr/sbin/service scanbd stop", RUN+="/usr/sbin/service
inetutils-inetd stop"
EOF
#disable end
                              
sudo /etc/init.d/udev restart

systemctl stop scanbm.socket
systemctl disable scanbm.socket
systemctl daemon-reload
systemctl unmask scanbd
systemctl enable scanbd
systemctl restart scanbd
sane-devel-scanbd (text/plain, 4.1 KB)
#
# linuxmint 21.2 (mate desktop) - fujitsu snapscan ix500
#
#restore system status to a clean state for scanner testing sane with scanbd
# with this configuration, currently, sane tools, gscan2pdf, and simple-scan doesn't work for
# interactive root and normal users. BUT it does work if the button is pushed through scanbd
#

rm -rf /etc/scanbd/*
apt-get purge -y scanbd sane libsane-common libsane1 sane-airscan sane-utils simple-scan gscan2pdf
apt-get install -y scanbd sane libsane-common libsane1 sane-airscan sane-utils simple-scan gscan2pdf

#
# create a separate network sane scanner in addition to a local scanner
#

mkdir /etc/scanbd/sane.d
cp -r /etc/sane.d/* /etc/scanbd/sane.d/

#
# Modify /etc/sane.d/dll.conf so that it includes only the "net" directive and the local scanner (for
#  simple-scan and other utilities)saned

cat > /etc/sane.d/saned.conf << EOF
192.168.0.0/16
127.0.0.0/8
EOF

cat >/etc/sane.d/dll.conf << EOF
net
fujitsu
EOF

cat > /etc/sane.d/net.conf <<EOF
connect_timeout = 3
localhost
EOF

ed /etc/scanbd/sane.d/dll.conf <<EOF
g/^net/s/^/#/p
w
q
EOF

ed /etc/inetd.conf <<EOF
g/^sane-port/s/^/#/p
w
q
EOF

ed /etc/scanbd/scanbd.conf  << EOF
/SANE_CONFIG_DIR/s/\/etc\/scanbd/\/etc\/scanbd\/sane.d/p
g/test.script/s//scan.sh/p
g/^  *user  *= saned/s/saned/root/p
w
q
EOF
mkdir /etc/scanbd/scripts && cp /home/ron/scan.sh /etc/scanbd/scripts

cat <etc/scanbd/scripts/scan.sh << EOF
#!/bin/bash

# Author: Rastislav David <[email protected]>

scan_dir=/var/spool/scan
datetime=`date +%F_%H%M%S`
filename="scan-$datetime"
[email protected]

case "$SCANBD_ACTION" in
 pdf)
  logger -t "scanbd: $0" "$SCANBD_ACTION - scanning and converting to ps"
  scanimage -d "$SCANBD_DEVICE" --mode Color --resolution 150 --depth 16 |
   convert -density 150 - "$scan_dir/$filename.ps"
  logger -t "scanbd: $0" "$SCANBD_ACTION - converting ps to pdf"
  ps2pdf  -sPAPERSIZE=a4 "$scan_dir/$filename.ps" "$scan_dir/$filename.pdf"
  rm "$scan_dir/$filename.ps"
  ;;
 scan)
  scanimage -d "$SCANBD_DEVICE" --resolution 300 --mode Gray --format=tiff > "$\
scan_dir/$filename.tiff"
  ;;
 copy)
  logger -t "scanbd: $0" "$SCANBD_ACTION - scanning"
  scanimage -d "$SCANBD_DEVICE" --resolution 300 --depth 16--format=tiff > "$sc\
an_dir/$filename.tiff"
# | convert -density 300 - $scan_dir/$filename.ps
  logger -t "scanbd: $0" "$SCANBD_ACTION - printing"
  lp "$scan_dir/$filename.tiff"
  rm "$scan_dir/$filename.tiff"
  ;;
email)
  logger -t "scanbd: $0" "$SCANBD_ACTION - scanning and converting to ps"
  scanimage -d "$SCANBD_DEVICE" --mode Color --resolution 150 --depth 16 |
   convert -density 150 - "$scan_dir/$filename.ps"
  logger -t "scanbd: $0" "$SCANBD_ACTION - converting ps to pdf"
  ps2pdf  -sPAPERSIZE=a4 "$scan_dir/$filename.ps" "$scan_dir/$filename.pdf"
  logger -t "scanbd: $0" "$SCANBD_ACTION - sending pdf"
  (cat <<EOCAT
Document scanned on Canon LiDE 110
EOCAT
uuencode "$scan_dir/$filename.pdf" "$scan_dir/$filename.pdf" ) | mail -a
"From: Canon scanner <[email protected]>" -s "Document $filename" "$send_to"
  rm "$scan_dir/$filename.ps"
  rm "$scan_dir/$filename.pdf"
  ;;
*)
  logger -t "scanbd: $0" "Unhandled action request."
  ;;
esac

exit 0
EOF
chmod 755 /etc/scanbd/scripts/scan.sh

#
# enable/disable udev rules for testing
#

# enable start
cat > /etc/udev/rules.d/40-scanner.rules << EOF
SUBSSTEMS=="usb", ATTRS{idVendor}="04c5". ATTRS{idProduct}=="132b", ENV{libsane_matched}="yes", GROUP="scanner"
EOF
# enable end

# disable start
cat > /etc/udev/rules.d/40-scanner.rules << EOF
# Fujitsu SnapScan ix500

SUBSSTEMS=="usb", ATTRS{idVendor}="04c5". ATTRS{idProduct}=="132b",
ENV{libsane_matched}="yes", GROUP="scanner",
ENV{ID_VENDOR_ID}=="04c5", ENV{ID_MODEL_ID}=="132b", ACTION=="add",
RUN+="/usr/sbin/service inetutils-inetd start",
RUN+="/usr/bin/scanimage -L", RUN+="/usr/sbin/service scanbd start"
ENV{ID_VENDOR_ID}=="04c5", ENV{ID_MODEL_ID}=="132b", ACTION=="remove",
RUN+="/usr/sbin/service scanbd stop", RUN+="/usr/sbin/service
inetutils-inetd stop"
EOF
#disable end
                              
sudo /etc/init.d/udev restart

systemctl stop scanbm.socket
systemctl disable scanbm.socket
systemctl daemon-reload
systemctl unmask scanbd
systemctl enable scanbd
systemctl restart scanbd
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.