Setup a shared scanner
Last update
2021-03-22
2021-03-22
« — »
1 2 3 4 5 6 7 8 9 10 11 12 | apt-get install sane sane-utils scanimage -L # check if a local scanner is found # add hostnames and/or IP addresses/subnets pico /etc/sane.d/saned.conf # eg: localhost, 127.0.0.1 and 192.168.1.0/24 # enable local users to see the scanner adduser username scanner systemctl enable saned.socket systemctl start saned.socket |
Configure a client host:
1 2 3 4 | # edit /etc/sane.d/net.conf: # - uncomment the net backend entry # - and add the IP address/hostname of the sane server scanimage -L # check the remote scanner is found |
On windows you can use SaneTwain, on Android the SaneDroid app.
Note: If your sane-utils
< 1.0.25
is broken under systemd
, fix it with these steps:
1 | apt-get install libsystemd-dev |
In /lib/systemd/system/saned@.service
set StandardInput/Output/Error=socket
and append Alias=saned.service
to [Install]
section:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # /lib/systemd/system/saned@.service [Unit] Description=Scanner Service Requires=saned.socket [Service] ExecStart=/usr/sbin/saned User=saned Group=saned StandardInput=socket StandardOutput=socket StandardError=socket Environment=SANE_CONFIG_DIR=/etc/sane.d # Environment=SANE_CONFIG_DIR=/etc/sane.d SANE_DEBUG_DLL=255 [Install] Also=saned.socket Alias=saned.service |
1 2 3 | systemctl daemon-reload
systemctl enable saned.socket
systemctl restart saned.socket
|
fix permissions on USB device
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # FIX for /lib/udev/rules.d/60-libsane.rules missing setfacl command # # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918358 # libsane:amd64: Missing permissions for scanner group on usb device # # reload rules: udevadm control --reload-rules && udevadm trigger # # modified version of 60-libsane.rules from debian 9-10 ACTION!="add" , GOTO="libsane_rules_end" ENV{DEVTYPE}=="usb_device", GOTO="libsane_usb_rules_begin" SUBSYSTEM=="usb_device" , GOTO="libsane_usb_rules_begin" SUBSYSTEM!="usb_device" , GOTO="libsane_usb_rules_end" LABEL="libsane_usb_rules_begin" # Canon CanoScan LiDE 220 ATTRS{idVendor}=="04a9", ATTRS{idProduct}=="190f", ENV{libsane_matched}="yes" # The following rule will disable USB autosuspend for the device ENV{DEVTYPE}=="usb_device", ENV{libsane_matched}=="yes", TEST=="power/control", ATTR{power/control}="on" LABEL="libsane_usb_rules_end" ENV{libsane_matched}=="yes", RUN+="/bin/setfacl -m g:scanner:rw $env{DEVNAME}" LABEL="libsane_rules_end" |
Source: debian wiki, std* fix