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:
- enable ‘sane-backends‘ in the root system configuration to be used by Buildroot to create the root file system
- create an overlay file saned.conf which determines who can access the network scanner
- 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.
- define the sane network port in a /etc/services overlay file
- then tell Buildroot to build me a new root file system.
- move the image to a micro-SD card and boot the RPi
- 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.