Network scanner with ‘sane’

Previously, I had sorted out my home printer to use a RaspberryPI as a print server and so offer shared printing services on my home wi-fi. However, my printer is a Canon MP630 which is a printer and scanner.

I have a need to scan some old photographs but do not want to mess around disconnecting the MP630 from the RPi and reconnecting it to my main computer. I need to turn my RPi into a network printer and scanner controller that can be built as an embedded system using Buildroot.  With this as my main requirement, I ‘googled’ ‘network scanner linux’ software and in the search result was the name ‘saned‘ .

A bit of investigation followed; could sane be easily configured in Buildroot? what supporting files did I need to create?. There is a ‘sane-backends’ directory in the Buildroot ‘package’ directory, so after 30 minutes or so of reading I decided to give it a try. The steps needed were:

  1. enable ‘sane-backends‘ in the root system configuration to be used by Buildroot to create the root file system
  2. create an overlay file saned.conf which determines who can access the network scanner
  3. create a startup file in /etc/init.d called S91scanner which starts/stops/restarts the sane network daemon to automatically start the network daemon at startup.
  4. define the sane network port in a /etc/services overlay file
  5. then tell Buildroot to build me a new root file system.
  6. move the image to a micro-SD card and boot the RPi
  7. On any client system install something like xsane which is a scanner front end.

Amazing, I was able to scan photographs in remotely on the scanner, and then print them from the remote printer/scanner using the RaspberryPi 0W as the print & scan server.