Sunday, April 11, 2010

Sharing a network scanner

This tip will explain how to share a scanner among computers in a network. The scanner is connected to a Linux-based server, and is shared between all computers in the local network (both Windows- and Linux-based computers).

Server
I've used Ubuntu 9.10 as server-OS. This auto-detects my Epson scanner. All that is necessary is to make it available to all users:

# sudo nano -w /lib/udev/rules.d/50-udev-default.rules

Locate the usb subsystem, and change the mode to "0666". Note that this allows full access to all USB-devices for all users on your system. There are other ways to fix the permissions for the scanner, but this is out of scope.

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666"

Now the scanner must be made available on the network. Open the file /etc/sane.d/saned.conf:

# sudo nano -w /etc/sane.d/saned.conf

Add the IP-address or the subnet-address of the computer(s) that shall be able to access the scanner. In my case the following line is added to allow all computers with IP-address 10.x.x.x access:

10.0.0.1/8

In addition, saned (the Sane daemon) shoul be started automatically. To ensure this, edit /etc/inetd.conf:

# sudo nano -w /etc/inetd.conf

Add the following line to the file:

sane-port stream tcp nowait saned.saned /usr/sbin/saned saned

Now start the scanner interface:

# sudo invoke-rc.d saned start

The server-side should be ready now. For additional info, see http://www.linux.com/archive/feed/57798.


Client
A Windows client can be downloaded here: http://sanetwain.ozuzo.net/#download

Unzip the download to c:\sanetwain (other locations should also work), and then double-click the ScanImage  application. A setup dialog appears:


Add the IP-address of your scanner-server in the field Hostname, and you should be ready to scan.


To scan from a Linux-based client, just add the IP-addres of the scanner-server to /etc/sane.d/net.conf:

10.0.1.41

Start Xsane, and it should locate the network scanner.